UNPKG

@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
"use strict"; 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