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

46 lines 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CoerceTableActionProviderRule = CoerceTableActionProviderRule; const schematics_utilities_1 = require("@rxap/schematics-utilities"); const ts_morph_1 = require("ts-morph"); const add_provider_to_array_1 = require("../add-provider-to-array"); const coerce_source_file_1 = require("../coerce-source-file"); const coerce_variable_declaration_1 = require("../coerce-variable-declaration"); const ts_morph_transform_1 = require("../ts-morph-transform"); const coerce_imports_1 = require("../ts-morph/coerce-imports"); function CoerceTableActionProviderRule(options) { const { type, tableName, } = options; return (0, ts_morph_transform_1.TsMorphAngularProjectTransformRule)(options, project => { const sourceFile = (0, coerce_source_file_1.CoerceSourceFile)(project, 'index.ts'); const variableDeclaration = (0, coerce_variable_declaration_1.CoerceVariableDeclaration)(sourceFile, 'TABLE_ROW_ACTION_METHODS', { initializer: `[]`, }); const formProviderArray = variableDeclaration.getInitializer(); if (!(formProviderArray === null || formProviderArray === void 0 ? void 0 : formProviderArray.isKind(ts_morph_1.SyntaxKind.ArrayLiteralExpression))) { throw new Error('FormProviders initializer is not an array literal expression'); } const className = (0, schematics_utilities_1.CoerceSuffix)((0, schematics_utilities_1.classify)(type), 'TableRowActionMethod'); (0, add_provider_to_array_1.AddProviderToArray)({ provide: 'RXAP_TABLE_ROW_ACTION_METHOD', useClass: className, multi: true, }, formProviderArray, false, (ole, po) => { var _a; const provideProperty = ole.getProperty('useClass'); if (provideProperty === null || provideProperty === void 0 ? void 0 : provideProperty.isKind(ts_morph_1.SyntaxKind.PropertyAssignment)) { return ((_a = provideProperty.getInitializer()) === null || _a === void 0 ? void 0 : _a.getText().trim()) === po.useClass; } return false; }); (0, coerce_imports_1.CoerceImports)(sourceFile, { moduleSpecifier: `./${(0, schematics_utilities_1.CoerceSuffix)(type, '-table-row-action')}.method`, namedImports: [className], }); (0, coerce_imports_1.CoerceImports)(sourceFile, { moduleSpecifier: '@rxap/material-table-system', namedImports: ['RXAP_TABLE_ROW_ACTION_METHOD'], }); }); } //# sourceMappingURL=coerce-table-action-provider.js.map