Socket
Socket
Sign inDemoInstall

@snailycad/prisma-generator-redundant-types

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@snailycad/prisma-generator-redundant-types - npm Package Compare versions

Comparing version 2.0.2 to 2.1.0

52

dist/generator.js

@@ -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": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc