@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
29 lines • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AddComponentImport = AddComponentImport;
const get_coerce_array_literal_form_object_literal_1 = require("../get-coerce-array-literal-form-object-literal");
const coerce_imports_1 = require("../ts-morph/coerce-imports");
const get_component_options_object_1 = require("./get-component-options-object");
/**
* Adds a provided class to the imports array of the component.
*
* @param sourceFile - The source file where the component class is located.
* @param namedImport - The name of the class that should be added to the imports array of the component.
* @param [moduleSpecifier] - The module specifier to import the class into the source file.
*
* @returns {void}
*/
function AddComponentImport(sourceFile, namedImport, moduleSpecifier) {
if (moduleSpecifier) {
(0, coerce_imports_1.CoerceImports)(sourceFile, {
moduleSpecifier,
namedImports: [namedImport],
});
}
const ngModuleOptions = (0, get_component_options_object_1.GetComponentOptionsObject)(sourceFile);
const importsArray = (0, get_coerce_array_literal_form_object_literal_1.GetCoerceArrayLiteralFromObjectLiteral)(ngModuleOptions, 'imports');
if (!importsArray.getElements().some(element => element.getText().trim() === namedImport)) {
importsArray.addElement(namedImport);
}
}
//# sourceMappingURL=add-component-import.js.map