"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildInstanceBinding = buildInstanceBinding;
const getClassMetadata_1 = require("../../metadata/calculations/getClassMetadata");
const getBindingId_1 = require("../actions/getBindingId");
const BindingType_1 = require("../models/BindingType");
function buildInstanceBinding(autobindOptions, serviceIdentifier) {
    const classMetadata = (0, getClassMetadata_1.getClassMetadata)(serviceIdentifier);
    const scope = classMetadata.scope ?? autobindOptions.scope;
    return {
        cache: {
            isRight: false,
            value: undefined,
        },
        id: (0, getBindingId_1.getBindingId)(),
        implementationType: serviceIdentifier,
        isSatisfiedBy: () => true,
        moduleId: undefined,
        onActivation: undefined,
        onDeactivation: undefined,
        scope,
        serviceIdentifier,
        type: BindingType_1.bindingTypeValues.Instance,
    };
}
//# sourceMappingURL=buildInstanceBinding.js.map