@rxap/schematics-ts-morph
Version:
This package provides utilities for manipulating TypeScript code using ts-morph, particularly for Angular and NestJS projects. It offers functions to add, coerce, and modify code elements like classes, methods, decorators, and imports. The package also in
45 lines • 2.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AddNestProviderToArray = AddNestProviderToArray;
const schematics_utilities_1 = require("@rxap/schematics-utilities");
const ts_morph_1 = require("ts-morph");
/**
* @deprecated import from @rxap/ts-morph as CoerceNestProviderToArray
*/
function AddNestProviderToArray(providerObject, providerArray, overwrite = false) {
if (typeof providerObject === 'string') {
if (!providerArray.getElements().some(element => element.getText().trim() === providerObject)) {
providerArray.addElement(providerObject);
}
}
else {
let index = providerArray.getElements().findIndex(element => {
var _a;
if (element.isKind(ts_morph_1.SyntaxKind.ObjectLiteralExpression)) {
const provideProperty = element.getProperty('provide');
if (provideProperty === null || provideProperty === void 0 ? void 0 : provideProperty.isKind(ts_morph_1.SyntaxKind.PropertyAssignment)) {
return ((_a = provideProperty.getInitializer()) === null || _a === void 0 ? void 0 : _a.getText().trim()) === providerObject.provide;
}
}
return false;
});
if ((overwrite === true || (Array.isArray(overwrite) && overwrite.includes('provider'))) && index !== -1) {
providerArray.removeElement(index);
index = -1;
}
if (index === -1) {
providerArray.addElement(ts_morph_1.Writers.object((0, schematics_utilities_1.DeleteUndefinedProperties)({
provide: providerObject.provide,
useClass: providerObject.useClass,
useFactory: providerObject.useFactory,
useExisting: providerObject.useExisting,
useValue: providerObject.useValue,
scope: providerObject.scope,
inject: providerObject.inject ?
Array.isArray(providerObject.inject) ? `[ ${providerObject.inject.join(',')} ]` : providerObject.inject :
undefined,
})));
}
}
}
//# sourceMappingURL=add-nest-provider-to-array.js.map