UNPKG

kapix-typegraphql-prisma

Version:

![integration logo](https://raw.githubusercontent.com/MichalLytek/typegraphql-prisma/main/img/integration.png)

67 lines 4.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generate = void 0; const tslib_1 = require("tslib"); const internals_1 = require("@prisma/internals"); const fs_1 = require("fs"); const path_1 = tslib_1.__importDefault(require("path")); const generate_code_1 = tslib_1.__importDefault(require("../generator/generate-code")); const removeDir_1 = tslib_1.__importDefault(require("../utils/removeDir")); const emit_block_1 = require("../generator/emit-block"); const helpers_1 = require("./helpers"); async function generate(options) { var _a, _b, _c; const outputDir = (0, internals_1.parseEnvValue)(options.generator.output); await fs_1.promises.mkdir(outputDir, { recursive: true }); await (0, removeDir_1.default)(outputDir, true); const prismaClientProvider = options.otherGenerators.find(it => (0, internals_1.parseEnvValue)(it.provider) === "prisma-client-js"); const prismaClientPath = (0, internals_1.parseEnvValue)(prismaClientProvider.output); const prismaClientDmmf = await (0, internals_1.getDMMF)({ datamodel: options.datamodel, previewFeatures: prismaClientProvider.previewFeatures, }); const generatorConfig = options.generator.config; // TODO: make this type `?-` and `| undefined` const externalConfig = { debugGenerateCode: (0, helpers_1.parseStringBoolean)(generatorConfig.debugGenerateCode), lodashImportName: generatorConfig.lodashImportName, emitDMMF: (0, helpers_1.parseStringBoolean)(generatorConfig.emitDMMF), emitTranspiledCode: (0, helpers_1.parseStringBoolean)(generatorConfig.emitTranspiledCode), simpleResolvers: (0, helpers_1.parseStringBoolean)(generatorConfig.simpleResolvers), useOriginalMapping: (0, helpers_1.parseStringBoolean)(generatorConfig.useOriginalMapping), useUncheckedScalarInputs: (0, helpers_1.parseStringBoolean)(generatorConfig.useUncheckedScalarInputs), emitIdAsIDType: (0, helpers_1.parseStringBoolean)(generatorConfig.emitIdAsIDType), emitOnly: (0, helpers_1.parseStringArray)(generatorConfig.emitOnly, "emitOnly", emit_block_1.ALL_EMIT_BLOCK_KINDS), useSimpleInputs: (0, helpers_1.parseStringBoolean)(generatorConfig.useSimpleInputs), emitRedundantTypesInfo: (_a = (0, helpers_1.parseStringBoolean)(generatorConfig.emitRedundantTypesInfo)) !== null && _a !== void 0 ? _a : true, customPrismaImportPath: generatorConfig.customPrismaImportPath, contextPrismaKey: generatorConfig.contextPrismaKey, omitInputFieldsByDefault: (0, helpers_1.parseStringArray)(generatorConfig.omitInputFieldsByDefault, "omitInputFieldsByDefault"), omitOutputFieldsByDefault: (0, helpers_1.parseStringArray)(generatorConfig.omitOutputFieldsByDefault, "omitOutputFieldsByDefault"), formatGeneratedCode: (_b = (0, helpers_1.parseStringBoolean)(generatorConfig.formatGeneratedCode)) !== null && _b !== void 0 ? _b : (0, helpers_1.parseStringEnum)(generatorConfig.formatGeneratedCode, "formatGeneratedCode", ["prettier", "tsc"]), emitIsAbstract: (_c = (0, helpers_1.parseStringBoolean)(generatorConfig.emitIsAbstract)) !== null && _c !== void 0 ? _c : false, mutationActions: (0, helpers_1.parseStringArray)(generatorConfig.mutationActions, "mutationActions"), queryActions: (0, helpers_1.parseStringArray)(generatorConfig.queryActions, "queryActions"), }; const internalConfig = { outputDirPath: outputDir, prismaClientPath, }; if (externalConfig.emitDMMF) { await Promise.all([ fs_1.promises.writeFile(path_1.default.resolve(outputDir, "./dmmf.json"), JSON.stringify(options.dmmf, null, 2)), fs_1.promises.writeFile(path_1.default.resolve(outputDir, "./prisma-client-dmmf.json"), JSON.stringify(prismaClientDmmf, null, 2)), ]); } // TODO: replace with `options.dmmf` when the spec match prisma client output await (0, generate_code_1.default)(prismaClientDmmf, { ...externalConfig, ...internalConfig, }, (externalConfig.debugGenerateCode && typeof console != undefined && console.log) || undefined); return ""; } exports.generate = generate; //# sourceMappingURL=prisma-generator.js.map