@snailycad/prisma-generator-redundant-types
Advanced tools
Comparing version 2.0.2 to 2.1.0
@@ -16,29 +16,29 @@ "use strict"; | ||
onGenerate: async (options) => { | ||
let modelStr = ""; | ||
options.dmmf.datamodel.models.forEach((model) => { | ||
const type = `export interface ${model.name} { | ||
${model.fields | ||
.filter((v) => ["scalar", "enum"].includes(v.kind)) | ||
.map((field) => { | ||
let exportedTypes = ""; | ||
const dataModel = options.dmmf.datamodel; | ||
// Convert Prisma models to TypeScript interfaces | ||
for (const model of dataModel.models) { | ||
exportedTypes += `export interface ${model.name} {\n`; | ||
// Only convert fields with kind "scalar" and "enum | ||
const scalarAndEnumFields = model.fields.filter((field) => ["scalar", "enum"].includes(field.kind)); | ||
for (const field of scalarAndEnumFields) { | ||
// A utility function to convert Prisma types to TypeScript types | ||
// We'll create this function later. | ||
const typeScriptType = getTypeScriptType(field.type); | ||
const nullable = field.isRequired ? "" : "| null"; | ||
// Whether the field should be optional | ||
const nullability = field.isRequired ? "" : "| null"; | ||
// Whether the field should be an array | ||
const list = field.isList ? "[]" : ""; | ||
return `${field.name}: ${typeScriptType}${nullable}${list}`; | ||
}) | ||
.join("\n")} | ||
}`; | ||
modelStr += `${type}\n\n`; | ||
}); | ||
options.dmmf.datamodel.enums.forEach((enumType) => { | ||
const type = `const ${enumType.name} = { | ||
${enumType.values | ||
.map((value) => { | ||
return `${value.name}: "${value.name}",`; | ||
}) | ||
.join("\n")} | ||
} as const; | ||
export type ${enumType.name} = (typeof ${enumType.name})[keyof typeof ${enumType.name}];`; | ||
modelStr += `${type}\n\n`; | ||
}); | ||
exportedTypes += `${field.name}: ${typeScriptType}${nullability}${list}\n`; | ||
} | ||
exportedTypes += `}\n\n`; | ||
} | ||
for (const enumType of dataModel.enums) { | ||
exportedTypes += `export const ${enumType.name} = {`; | ||
for (const enumValue of enumType.values) { | ||
exportedTypes += `${enumValue.name}: "${enumValue.name}",\n`; | ||
} | ||
exportedTypes += "} as const;\n"; | ||
exportedTypes += `export type ${enumType.name} = (typeof ${enumType.name})[keyof typeof ${enumType.name}];\n\n`; | ||
} | ||
const outputDir = options.generator.output?.value; | ||
@@ -48,3 +48,3 @@ if (!outputDir) { | ||
} | ||
await (0, utils_1.writeFileSafely)(node_path_1.default.join(outputDir, "index.ts"), modelStr); | ||
await (0, utils_1.writeFileSafely)(node_path_1.default.join(outputDir, "types.ts"), exportedTypes); | ||
}, | ||
@@ -51,0 +51,0 @@ }); |
{ | ||
"name": "@snailycad/prisma-generator-redundant-types", | ||
"description": "Provide a description about your generator", | ||
"version": "2.0.2", | ||
"version": "2.1.0", | ||
"main": "dist/generator.js", | ||
@@ -24,16 +24,15 @@ "license": "MIT", | ||
"dependencies": { | ||
"@prisma/generator-helper": "5.2.0", | ||
"@prisma/internals": "5.2.0" | ||
"@prisma/generator-helper": "5.6.0" | ||
}, | ||
"devDependencies": { | ||
"@casperiv/eslint-config": "^8.0.0", | ||
"@prisma/client": "5.2.0", | ||
"@prisma/client": "5.6.0", | ||
"@prisma/sdk": "3.15.2", | ||
"@types/node": "20.5.4", | ||
"eslint": "^8.47.0", | ||
"@types/node": "20.9.2", | ||
"eslint": "^8.54.0", | ||
"husky": "^8.0.3", | ||
"lint-staged": "^14.0.1", | ||
"prettier": "^3.0.2", | ||
"prisma": "5.2.0", | ||
"typescript": "5.1.6" | ||
"lint-staged": "^15.1.0", | ||
"prettier": "^3.1.0", | ||
"prisma": "5.6.0", | ||
"typescript": "5.2.2" | ||
}, | ||
@@ -40,0 +39,0 @@ "lint-staged": { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
70371
1
2222
+ Added@prisma/debug@5.6.0(transitive)
+ Added@prisma/generator-helper@5.6.0(transitive)
+ Added@types/cross-spawn@6.0.5(transitive)
+ Added@types/debug@4.1.12(transitive)
- Removed@prisma/internals@5.2.0
- Removed@antfu/ni@0.21.5(transitive)
- Removed@babel/code-frame@7.24.7(transitive)
- Removed@babel/helper-validator-identifier@7.24.7(transitive)
- Removed@babel/highlight@7.24.7(transitive)
- Removed@nodelib/fs.scandir@2.1.5(transitive)
- Removed@nodelib/fs.stat@2.0.5(transitive)
- Removed@nodelib/fs.walk@1.2.8(transitive)
- Removed@opentelemetry/api@1.4.1(transitive)
- Removed@prisma/debug@5.2.0(transitive)
- Removed@prisma/engines@5.2.0(transitive)
- Removed@prisma/fetch-engine@5.2.0(transitive)
- Removed@prisma/generator-helper@5.2.0(transitive)
- Removed@prisma/get-platform@5.2.0(transitive)
- Removed@prisma/internals@5.2.0(transitive)
- Removed@prisma/prisma-schema-wasm@5.2.0-25.2804dc98259d2ea960602aca6b8e7fdc03c1758f(transitive)
- Removed@types/cross-spawn@6.0.2(transitive)
- Removed@types/debug@4.1.8(transitive)
- Removed@types/normalize-package-data@2.4.4(transitive)
- Removed@types/retry@0.12.0(transitive)
- Removedagent-base@7.1.1(transitive)
- Removedaggregate-error@3.1.0(transitive)
- Removedansi-escapes@4.3.2(transitive)
- Removedansi-styles@3.2.14.3.0(transitive)
- Removedarchiver@5.3.1(transitive)
- Removedarchiver-utils@2.1.03.0.4(transitive)
- Removedarg@5.0.2(transitive)
- Removedarray-union@2.1.0(transitive)
- Removedastral-regex@2.0.0(transitive)
- Removedasync@3.2.6(transitive)
- Removedbalanced-match@1.0.2(transitive)
- Removedbase64-js@1.5.1(transitive)
- Removedbl@4.1.0(transitive)
- Removedbrace-expansion@1.1.112.0.1(transitive)
- Removedbraces@3.0.3(transitive)
- Removedbuffer@5.7.1(transitive)
- Removedbuffer-crc32@0.2.13(transitive)
- Removedchalk@2.4.2(transitive)
- Removedcheckpoint-client@1.1.27(transitive)
- Removedci-info@3.8.0(transitive)
- Removedclean-stack@2.2.0(transitive)
- Removedcli-truncate@2.1.0(transitive)
- Removedcolor-convert@1.9.32.0.1(transitive)
- Removedcolor-name@1.1.31.1.4(transitive)
- Removedcommondir@1.0.1(transitive)
- Removedcompress-commons@4.1.2(transitive)
- Removedconcat-map@0.0.1(transitive)
- Removedcore-util-is@1.0.3(transitive)
- Removedcrc-32@1.2.2(transitive)
- Removedcrc32-stream@4.0.3(transitive)
- Removedcrypto-random-string@2.0.0(transitive)
- Removeddel@6.1.1(transitive)
- Removeddir-glob@3.0.1(transitive)
- Removeddotenv@16.0.3(transitive)
- Removedemoji-regex@8.0.0(transitive)
- Removedend-of-stream@1.4.4(transitive)
- Removedenv-paths@2.2.1(transitive)
- Removederror-ex@1.3.2(transitive)
- Removedescape-string-regexp@1.0.54.0.0(transitive)
- Removedexeca@5.1.1(transitive)
- Removedfast-glob@3.3.2(transitive)
- Removedfastq@1.17.1(transitive)
- Removedfill-range@7.1.1(transitive)
- Removedfind-cache-dir@3.3.2(transitive)
- Removedfind-up@4.1.05.0.0(transitive)
- Removedfp-ts@2.16.1(transitive)
- Removedfs-constants@1.0.0(transitive)
- Removedfs-extra@11.1.1(transitive)
- Removedfs-jetpack@5.1.0(transitive)
- Removedfs.realpath@1.0.0(transitive)
- Removedfunction-bind@1.1.2(transitive)
- Removedget-stream@6.0.1(transitive)
- Removedglob@7.2.38.1.0(transitive)
- Removedglob-parent@5.1.2(transitive)
- Removedglobal-dirs@3.0.1(transitive)
- Removedglobby@11.1.0(transitive)
- Removedgraceful-fs@4.2.11(transitive)
- Removedhas-flag@3.0.04.0.0(transitive)
- Removedhasha@5.2.2(transitive)
- Removedhasown@2.0.2(transitive)
- Removedhosted-git-info@2.8.9(transitive)
- Removedhttp-proxy-agent@7.0.0(transitive)
- Removedhttps-proxy-agent@7.0.1(transitive)
- Removedhuman-signals@2.1.0(transitive)
- Removedieee754@1.2.1(transitive)
- Removedignore@5.3.2(transitive)
- Removedignore-walk@5.0.1(transitive)
- Removedindent-string@4.0.0(transitive)
- Removedinflight@1.0.6(transitive)
- Removedinherits@2.0.4(transitive)
- Removedini@2.0.0(transitive)
- Removedis-arrayish@0.2.1(transitive)
- Removedis-core-module@2.15.1(transitive)
- Removedis-docker@2.2.1(transitive)
- Removedis-extglob@2.1.1(transitive)
- Removedis-fullwidth-code-point@3.0.0(transitive)
- Removedis-glob@4.0.3(transitive)
- Removedis-number@7.0.0(transitive)
- Removedis-path-cwd@2.2.0(transitive)
- Removedis-path-inside@3.0.3(transitive)
- Removedis-stream@2.0.1(transitive)
- Removedis-windows@1.0.2(transitive)
- Removedis-wsl@2.2.0(transitive)
- Removedisarray@1.0.0(transitive)
- Removedjs-tokens@4.0.0(transitive)
- Removedjson-parse-even-better-errors@2.3.1(transitive)
- Removedjsonfile@6.1.0(transitive)
- Removedkleur@3.0.3(transitive)
- Removedlazystream@1.0.1(transitive)
- Removedlines-and-columns@1.2.4(transitive)
- Removedlocate-path@5.0.06.0.0(transitive)
- Removedlodash.defaults@4.2.0(transitive)
- Removedlodash.difference@4.5.0(transitive)
- Removedlodash.flatten@4.4.0(transitive)
- Removedlodash.isplainobject@4.0.6(transitive)
- Removedlodash.union@4.6.0(transitive)
- Removedmake-dir@3.1.04.0.0(transitive)
- Removedmerge-stream@2.0.0(transitive)
- Removedmerge2@1.4.1(transitive)
- Removedmicromatch@4.0.8(transitive)
- Removedmimic-fn@2.1.0(transitive)
- Removedmin-indent@1.0.1(transitive)
- Removedminimatch@3.1.25.1.6(transitive)
- Removedms@2.1.3(transitive)
- Removednew-github-issue-url@0.2.1(transitive)
- Removednode-fetch@2.6.12(transitive)
- Removednormalize-package-data@2.5.0(transitive)
- Removednormalize-path@3.0.0(transitive)
- Removednpm-bundled@2.0.1(transitive)
- Removednpm-normalize-package-bin@2.0.0(transitive)
- Removednpm-packlist@5.1.3(transitive)
- Removednpm-run-path@4.0.1(transitive)
- Removedonce@1.4.0(transitive)
- Removedonetime@5.1.2(transitive)
- Removedopen@7.4.2(transitive)
- Removedp-filter@2.1.0(transitive)
- Removedp-limit@2.3.03.1.0(transitive)
- Removedp-locate@4.1.05.0.0(transitive)
- Removedp-map@2.1.04.0.0(transitive)
- Removedp-retry@4.6.2(transitive)
- Removedp-try@2.2.0(transitive)
- Removedparse-json@5.2.0(transitive)
- Removedpath-exists@4.0.0(transitive)
- Removedpath-is-absolute@1.0.1(transitive)
- Removedpath-parse@1.0.7(transitive)
- Removedpath-type@4.0.0(transitive)
- Removedpicocolors@1.1.0(transitive)
- Removedpicomatch@2.3.1(transitive)
- Removedpkg-dir@4.2.0(transitive)
- Removedprocess-nextick-args@2.0.1(transitive)
- Removedprogress@2.0.3(transitive)
- Removedprompts@2.4.2(transitive)
- Removedqueue-microtask@1.2.3(transitive)
- Removedread-pkg@5.2.0(transitive)
- Removedread-pkg-up@7.0.1(transitive)
- Removedreadable-stream@2.3.83.6.2(transitive)
- Removedreaddir-glob@1.1.3(transitive)
- Removedreplace-string@3.1.0(transitive)
- Removedresolve@1.22.4(transitive)
- Removedretry@0.13.1(transitive)
- Removedreusify@1.0.4(transitive)
- Removedrimraf@3.0.2(transitive)
- Removedrun-parallel@1.2.0(transitive)
- Removedsafe-buffer@5.1.2(transitive)
- Removedsemver@5.7.26.3.17.6.3(transitive)
- Removedsignal-exit@3.0.7(transitive)
- Removedsisteransi@1.0.5(transitive)
- Removedslash@3.0.0(transitive)
- Removedslice-ansi@3.0.0(transitive)
- Removedspdx-correct@3.2.0(transitive)
- Removedspdx-exceptions@2.5.0(transitive)
- Removedspdx-expression-parse@3.0.1(transitive)
- Removedspdx-license-ids@3.0.20(transitive)
- Removedstring-width@4.2.3(transitive)
- Removedstring_decoder@1.1.1(transitive)
- Removedstrip-final-newline@2.0.0(transitive)
- Removedstrip-indent@3.0.0(transitive)
- Removedsupports-color@5.5.07.2.0(transitive)
- Removedsupports-hyperlinks@2.3.0(transitive)
- Removedsupports-preserve-symlinks-flag@1.0.0(transitive)
- Removedtar-stream@2.2.0(transitive)
- Removedtemp-dir@2.0.0(transitive)
- Removedtempy@1.0.1(transitive)
- Removedterminal-link@2.1.1(transitive)
- Removedtmp@0.2.1(transitive)
- Removedto-regex-range@5.0.1(transitive)
- Removedtr46@0.0.3(transitive)
- Removedts-pattern@4.3.0(transitive)
- Removedtype-fest@0.16.00.21.30.6.00.8.1(transitive)
- Removedunique-string@2.0.0(transitive)
- Removeduniversalify@2.0.1(transitive)
- Removedutil-deprecate@1.0.2(transitive)
- Removeduuid@9.0.0(transitive)
- Removedvalidate-npm-package-license@3.0.4(transitive)
- Removedwebidl-conversions@3.0.1(transitive)
- Removedwhatwg-url@5.0.0(transitive)
- Removedwrappy@1.0.2(transitive)
- Removedyocto-queue@0.1.0(transitive)
- Removedzip-stream@4.1.1(transitive)