UNPKG

typegraphql-prisma-nestjs

Version:

This project is a fork of another with minor changes, created for personal use.

56 lines 2.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = generateArgsTypeClassFromArgs; const tslib_1 = require("tslib"); const ts_morph_1 = require("ts-morph"); const path_1 = tslib_1.__importDefault(require("path")); const config_1 = require("./config"); const imports_1 = require("./imports"); function generateArgsTypeClassFromArgs(project, generateDirPath, fields, argsTypeName, dmmfDocument, inputImportsLevel = 3) { const dirPath = path_1.default.resolve(generateDirPath, config_1.argsFolderName); const filePath = path_1.default.resolve(dirPath, `${argsTypeName}.ts`); const sourceFile = project.createSourceFile(filePath, undefined, { overwrite: true, }); (0, imports_1.generateTypeGraphQLImport)(sourceFile); (0, imports_1.generateGraphQLScalarsImport)(sourceFile); (0, imports_1.generateInputsImports)(sourceFile, fields .map(arg => arg.selectedInputType) .filter(argInputType => argInputType.location === "inputObjectTypes") .map(argInputType => argInputType.type), inputImportsLevel); (0, imports_1.generateEnumsImports)(sourceFile, fields .map(field => field.selectedInputType) .filter(argType => argType.location === "enumTypes") .map(argType => argType.type), 4); sourceFile.addClass({ name: argsTypeName, isExported: true, decorators: [ { name: "ArgsType", arguments: [], }, ], properties: fields.map(arg => { return { name: arg.typeName, type: arg.fieldTSType, hasExclamationToken: arg.isRequired, hasQuestionToken: !arg.isRequired, trailingTrivia: "\r\n", decorators: [ { name: "Field", arguments: [ `_type => ${arg.typeGraphQLType}`, ts_morph_1.Writers.object({ nullable: `${!arg.isRequired}`, }), ], }, ], }; }), }); } //# sourceMappingURL=args-class.js.map