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

79 lines 3.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CoerceTableHeaderButtonMethodRule = CoerceTableHeaderButtonMethodRule; const schematics_1 = require("@angular-devkit/schematics"); const path_1 = require("path"); const ts_morph_1 = require("ts-morph"); const coerce_decorator_1 = require("../ts-morph/coerce-decorator"); const coerce_imports_1 = require("../ts-morph/coerce-imports"); const add_component_provider_1 = require("./add-component-provider"); const coerce_component_1 = require("./coerce-component"); const coerce_method_class_1 = require("./coerce-method-class"); function CoerceTableHeaderButtonMethodRule(options) { let { refresh, confirm, tooltip, errorMessage, successMessage, tsMorphTransformComponent, tableName, project, feature, shared, overwrite, directory, tsMorphTransform, } = options; tsMorphTransform !== null && tsMorphTransform !== void 0 ? tsMorphTransform : (tsMorphTransform = () => ({})); tsMorphTransformComponent !== null && tsMorphTransformComponent !== void 0 ? tsMorphTransformComponent : (tsMorphTransformComponent = () => ({})); return (0, schematics_1.chain)([ (0, coerce_method_class_1.CoerceMethodClass)({ project, feature, shared, overwrite, directory: (0, path_1.join)(directory !== null && directory !== void 0 ? directory : '', 'methods'), name: 'header-button', tsMorphTransform: (project, sourceFile, classDeclaration) => { (0, coerce_imports_1.CoerceImports)(sourceFile, [ { moduleSpecifier: '@rxap/material-table-system', namedImports: ['TableHeaderButtonMethod'], }, ]); const buttonOptions = {}; if (refresh) { buttonOptions['refresh'] = 'true'; } if (confirm) { buttonOptions['confirm'] = 'true'; } if (tooltip) { buttonOptions['tooltip'] = `$localize\`${tooltip}\``; } if (errorMessage) { buttonOptions['errorMessage'] = `$localize\`${errorMessage}\``; } if (successMessage) { buttonOptions['successMessage'] = `$localize\`${successMessage}\``; } (0, coerce_decorator_1.CoerceDecorator)(classDeclaration, 'TableHeaderButtonMethod', { arguments: [ts_morph_1.Writers.object(buttonOptions)], }); return Object.assign({}, tsMorphTransform(project, sourceFile, classDeclaration)); }, }), (0, coerce_component_1.CoerceComponentRule)({ project, feature, shared, name: tableName, directory, overwrite, tsMorphTransform: (project, [sourceFile], [componentClass], options) => { (0, add_component_provider_1.AddComponentProvider)(sourceFile, { provide: 'TABLE_HEADER_BUTTON_METHOD', useClass: 'HeaderButtonMethod', }, [ { moduleSpecifier: '@rxap/material-table-system', namedImports: ['TABLE_HEADER_BUTTON_METHOD'], }, { moduleSpecifier: './methods/header-button.method', namedImports: ['HeaderButtonMethod'], }, ]); tsMorphTransformComponent(project, [sourceFile], [componentClass], options); }, }), ]); } //# sourceMappingURL=coerce-table-header-button-method.js.map