@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
40 lines • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CoerceDialogTableActionRule = CoerceDialogTableActionRule;
const schematics_utilities_1 = require("@rxap/schematics-utilities");
const ts_morph_1 = require("@rxap/ts-morph");
const ts_morph_2 = require("ts-morph");
const coerce_table_action_1 = require("./coerce-table-action");
function CoerceDialogTableActionRule(options) {
let { tsMorphTransform, tableName, type, } = options;
tsMorphTransform !== null && tsMorphTransform !== void 0 ? tsMorphTransform : (tsMorphTransform = () => ({}));
return (0, coerce_table_action_1.CoerceTableActionRule)(Object.assign(Object.assign({}, options), { tsMorphTransform: (project, sourceFile, classDeclaration) => {
(0, ts_morph_1.CoerceDependencyInjection)(sourceFile, {
injectionToken: 'MatDialog',
parameterName: 'dialog',
scope: ts_morph_2.Scope.Private,
module: ts_morph_1.Module.ANGULAR,
});
(0, ts_morph_1.CoerceImports)(sourceFile, {
namedImports: ['MatDialog'],
moduleSpecifier: '@angular/material/dialog',
});
(0, ts_morph_1.CoerceImports)(sourceFile, {
namedImports: ['firstValueFrom'],
moduleSpecifier: 'rxjs',
});
(0, ts_morph_1.CoerceImports)(sourceFile, {
namedImports: [`${(0, schematics_utilities_1.classify)(type)}DialogComponent`],
moduleSpecifier: `../../${(0, schematics_utilities_1.dasherize)(type)}-dialog/${(0, schematics_utilities_1.dasherize)(type)}-dialog.component`,
});
return Object.assign({ statements: [
`console.log(\`action row type: ${type}\`, parameters);`,
`const ref = this.dialog.open(`,
` ${(0, schematics_utilities_1.classify)(type)}DialogComponent,`,
` { data: parameters }`,
');',
'return firstValueFrom(ref.afterClosed());',
], returnType: `Promise<void>` }, tsMorphTransform(project, sourceFile, classDeclaration));
} }));
}
//# sourceMappingURL=coerce-dialog-table-action.js.map