@rxap/ts-morph
Version:
Provides utilities for manipulating TypeScript code using the ts-morph library. It offers a fluent API to add, modify, and remove code elements such as classes, decorators, imports, and properties in both Angular and NestJS projects. This package simplifi
28 lines • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CoerceNestModuleImport = CoerceNestModuleImport;
const coerce_imports_1 = require("../coerce-imports");
const get_coerce_array_literal_form_object_literal_1 = require("../get-coerce-array-literal-form-object-literal");
const get_nest_module_metadata_1 = require("./get-nest-module-metadata");
function CoerceNestModuleImport(sourceFile, options) {
const { moduleName, importWriter, overwrite, moduleSpecifier, } = options;
let { structures } = options;
structures !== null && structures !== void 0 ? structures : (structures = []);
if (moduleSpecifier) {
structures.push({
moduleSpecifier,
namedImports: [moduleName],
});
}
(0, coerce_imports_1.CoerceImports)(sourceFile, structures !== null && structures !== void 0 ? structures : []);
const metadata = (0, get_nest_module_metadata_1.GetNestModuleMetadata)(sourceFile);
const importsArray = (0, get_coerce_array_literal_form_object_literal_1.GetCoerceArrayLiteralFromObjectLiteral)(metadata, 'imports');
const index = importsArray.getElements().findIndex(element => element.getText().trim().startsWith(moduleName));
if (index === -1 || overwrite) {
if (index !== -1) {
importsArray.removeElement(index);
}
importsArray.addElement(importWriter !== null && importWriter !== void 0 ? importWriter : moduleName);
}
}
//# sourceMappingURL=coerce-nest-module-import.js.map