@clawject/di
Version:
<p align="center"> <a href="https://clawject.com/" target="_blank"><img src="https://clawject.com/img/logo.svg" align="center" alt="Clawject Logo" width="120" height="120" /></a> </p>
31 lines (30 loc) • 1.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Import = void 0;
const RuntimeErrors_1 = require("./RuntimeErrors");
const Utils_1 = require("../Utils");
/**
* *Import* function allows you
* to import a {@link Configuration @Configuration} class into the target {@link Configuration @Configuration} class
* to use beans that is provided by imported configuration.
*
* @public
* */
const Import = (configurationClass, constructorParameters) => {
if (Utils_1.Utils.isPromise(configurationClass)) {
return configurationClass.then((resolvedConfigurationClass) => {
return {
constructor: resolvedConfigurationClass,
constructorParameters: constructorParameters ?? [],
};
});
}
if (typeof configurationClass === 'function') {
return {
constructor: configurationClass,
constructorParameters: constructorParameters ?? [],
};
}
throw new RuntimeErrors_1.RuntimeErrors.IllegalArgumentError('Argument must be a class constructor or a promise of a class constructor');
};
exports.Import = Import;