@objectivity/angular-schematic-utils
Version:
Utilities for working with Schematics.
40 lines • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.importAndExportModule = exports.addModuleToCoreModule = exports.coreModuleExists = exports.getCoreModulePath = void 0;
const schematics_1 = require("@angular-devkit/schematics");
const schematics_utilities_1 = require("schematics-utilities");
function getCoreModulePath(host, workspaceProject) {
const projectPath = schematics_utilities_1.buildDefaultPath(workspaceProject);
const coreModulePath = `${projectPath}/core/core.module.ts`;
if (host.exists(coreModulePath)) {
return coreModulePath;
}
return undefined;
}
exports.getCoreModulePath = getCoreModulePath;
function coreModuleExists(host, workspaceProject) {
return !!getCoreModulePath(host, workspaceProject);
}
exports.coreModuleExists = coreModuleExists;
function addModuleToCoreModule(host, moduleName, src, workspaceProject) {
const coreModulePath = getCoreModulePath(host, workspaceProject);
importAndExportModule(host, moduleName, src, coreModulePath);
}
exports.addModuleToCoreModule = addModuleToCoreModule;
function importAndExportModule(host, moduleName, src, coreModulePath) {
if (!coreModulePath) {
throw new schematics_1.SchematicsException(`Module not found: ${coreModulePath}`);
}
const moduleSource = schematics_utilities_1.getSourceFile(host, coreModulePath);
let changes = [
...schematics_utilities_1.addImportToModule(moduleSource, coreModulePath, moduleName, src),
...schematics_utilities_1.addSymbolToNgModuleMetadata(moduleSource, coreModulePath, 'exports', moduleName)
];
const recorder = host.beginUpdate(coreModulePath);
changes.forEach(change => {
recorder.insertLeft(change.pos, change.toAdd);
});
host.commitUpdate(recorder);
}
exports.importAndExportModule = importAndExportModule;
//# sourceMappingURL=core-module.js.map