@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
39 lines • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BuildGetRootDtoDataMapperImplementation = BuildGetRootDtoDataMapperImplementation;
exports.CoerceGetRootOperation = CoerceGetRootOperation;
const ts_morph_1 = require("@rxap/ts-morph");
const utilities_1 = require("@rxap/utilities");
const coerce_get_by_id_operation_1 = require("./coerce-get-by-id-operation");
const table_query_list_1 = require("./table-query-list");
function BuildGetRootDtoDataMapperImplementation(classDeclaration, moduleSourceFile, dto, options) {
const { isArray, } = options;
return () => {
// TODO : implement the data mapper
return isArray ? '[]' : '{}';
};
}
function CoerceGetRootOperation(options) {
const { tsMorphTransform = utilities_1.noop, propertyList = [], operationName = 'get-root', builtDtoDataMapperImplementation = BuildGetRootDtoDataMapperImplementation, idProperty = null, dtoClassNameSuffix = '-item', isArray = true, } = options;
(0, utilities_1.CoerceArrayItems)(propertyList, [
{
name: 'hasChildren',
type: 'boolean',
},
{
name: 'children',
type: ts_morph_1.TypeNames.Self,
isArray: true,
isOptional: true,
isType: true,
},
], (a, b) => a.name === b.name);
return (0, coerce_get_by_id_operation_1.CoerceGetByIdOperation)(Object.assign(Object.assign({}, options), { operationName,
idProperty,
dtoClassNameSuffix,
isArray,
builtDtoDataMapperImplementation, tsMorphTransform: (project, sourceFile, classDeclaration, controllerName, moduleSourceFile, dto) => {
return Object.assign({ queryList: table_query_list_1.TABLE_QUERY_LIST }, tsMorphTransform(project, sourceFile, classDeclaration, controllerName, moduleSourceFile, dto, options));
} }));
}
//# sourceMappingURL=coerce-get-root-operation.js.map