prisma-kysely
Advanced tools
Comparing version 1.7.1 to 1.8.0
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.generateFieldType = exports.generateFieldTypeInner = exports.overrideType = exports.postgresqlTypeMap = exports.mysqlTypeMap = exports.sqliteTypeMap = void 0; | ||
exports.generateFieldType = exports.generateFieldTypeInner = exports.overrideType = exports.sqlServerTypeMap = exports.postgresqlTypeMap = exports.mysqlTypeMap = exports.sqliteTypeMap = void 0; | ||
exports.sqliteTypeMap = { | ||
@@ -39,2 +39,14 @@ BigInt: "number", | ||
}; | ||
exports.sqlServerTypeMap = { | ||
BigInt: "number", | ||
Boolean: "boolean", | ||
Bytes: "Buffer", | ||
DateTime: "Timestamp", | ||
Decimal: "string", | ||
Float: "number", | ||
Int: "number", | ||
Json: "unknown", | ||
String: "string", | ||
Unsupported: "unknown", | ||
}; | ||
const overrideType = (type, config) => { | ||
@@ -75,2 +87,4 @@ switch (type) { | ||
return (typeOverride || (0, exports.overrideType)(type, config) || exports.postgresqlTypeMap[type]); | ||
case "sqlserver": | ||
return (typeOverride || (0, exports.overrideType)(type, config) || exports.sqlServerTypeMap[type]); | ||
} | ||
@@ -77,0 +91,0 @@ }; |
@@ -39,3 +39,3 @@ "use strict"; | ||
throw new Error("Huh?"); | ||
const sortedFields = (0, sorted_1.sorted)(fields, (a, b) => a.name.localeCompare(b.name)); | ||
const sortedFields = (0, sorted_1.sorted)(fields, (a, b) => a.type.localeCompare(b.type)); | ||
const A = sortedFields[0]; | ||
@@ -42,0 +42,0 @@ const B = sortedFields[1]; |
@@ -289,2 +289,220 @@ "use strict"; | ||
}); | ||
(0, vitest_1.test)("it generates correct field types when field types are defferent", () => { | ||
const newModels = (0, generateImplicitManyToManyModels_1.generateImplicitManyToManyModels)([ | ||
{ | ||
name: "Category", | ||
fields: [ | ||
{ | ||
name: "id", | ||
type: "String", | ||
isId: true, | ||
hasDefaultValue: true, | ||
isList: false, | ||
isReadOnly: false, | ||
isRequired: true, | ||
isUnique: true, | ||
kind: "scalar", | ||
}, | ||
{ | ||
name: "posts", | ||
kind: "object", | ||
isList: true, | ||
isRequired: true, | ||
isUnique: false, | ||
isId: false, | ||
isReadOnly: false, | ||
type: "Post", | ||
hasDefaultValue: false, | ||
relationName: "CategoryToPost", | ||
relationFromFields: [], | ||
relationToFields: [], | ||
isGenerated: false, | ||
isUpdatedAt: false, | ||
}, | ||
], | ||
primaryKey: null, | ||
dbName: null, | ||
uniqueFields: [], | ||
uniqueIndexes: [], | ||
}, | ||
{ | ||
name: "Post", | ||
fields: [ | ||
{ | ||
name: "id", | ||
type: "Int", | ||
isId: true, | ||
hasDefaultValue: true, | ||
isList: false, | ||
isReadOnly: false, | ||
isRequired: true, | ||
isUnique: true, | ||
kind: "scalar", | ||
}, | ||
{ | ||
name: "categories", | ||
kind: "object", | ||
isList: true, | ||
isRequired: true, | ||
isUnique: false, | ||
isId: false, | ||
isReadOnly: false, | ||
type: "Category", | ||
hasDefaultValue: false, | ||
relationName: "CategoryToPost", | ||
relationFromFields: [], | ||
relationToFields: [], | ||
isGenerated: false, | ||
isUpdatedAt: false, | ||
}, | ||
], | ||
primaryKey: null, | ||
dbName: null, | ||
uniqueFields: [], | ||
uniqueIndexes: [], | ||
}, | ||
]); | ||
(0, vitest_1.expect)(newModels).toEqual([ | ||
{ | ||
name: "CategoryToPost", | ||
dbName: "_CategoryToPost", | ||
fields: [ | ||
{ | ||
hasDefaultValue: false, | ||
isId: false, | ||
isList: false, | ||
isReadOnly: true, | ||
isRequired: true, | ||
isUnique: false, | ||
kind: "scalar", | ||
name: "A", | ||
type: "String", | ||
}, | ||
{ | ||
hasDefaultValue: false, | ||
isId: false, | ||
isList: false, | ||
isReadOnly: true, | ||
isRequired: true, | ||
isUnique: false, | ||
kind: "scalar", | ||
name: "B", | ||
type: "Int", | ||
}, | ||
], | ||
primaryKey: null, | ||
uniqueFields: [], | ||
uniqueIndexes: [], | ||
}, | ||
]); | ||
}); | ||
(0, vitest_1.test)("it generates correct field types when a field name is defferent from model name", () => { | ||
const newModels = (0, generateImplicitManyToManyModels_1.generateImplicitManyToManyModels)([ | ||
{ | ||
name: "Category", | ||
fields: [ | ||
{ | ||
name: "id", | ||
type: "String", | ||
isId: true, | ||
hasDefaultValue: true, | ||
isList: false, | ||
isReadOnly: false, | ||
isRequired: true, | ||
isUnique: true, | ||
kind: "scalar", | ||
}, | ||
{ | ||
name: "articles", | ||
kind: "object", | ||
isList: true, | ||
isRequired: true, | ||
isUnique: false, | ||
isId: false, | ||
isReadOnly: false, | ||
type: "Post", | ||
hasDefaultValue: false, | ||
relationName: "CategoryToPost", | ||
relationFromFields: [], | ||
relationToFields: [], | ||
isGenerated: false, | ||
isUpdatedAt: false, | ||
}, | ||
], | ||
primaryKey: null, | ||
dbName: null, | ||
uniqueFields: [], | ||
uniqueIndexes: [], | ||
}, | ||
{ | ||
name: "Post", | ||
fields: [ | ||
{ | ||
name: "id", | ||
type: "Int", | ||
isId: true, | ||
hasDefaultValue: true, | ||
isList: false, | ||
isReadOnly: false, | ||
isRequired: true, | ||
isUnique: true, | ||
kind: "scalar", | ||
}, | ||
{ | ||
name: "categories", | ||
kind: "object", | ||
isList: true, | ||
isRequired: true, | ||
isUnique: false, | ||
isId: false, | ||
isReadOnly: false, | ||
type: "Category", | ||
hasDefaultValue: false, | ||
relationName: "CategoryToPost", | ||
relationFromFields: [], | ||
relationToFields: [], | ||
isGenerated: false, | ||
isUpdatedAt: false, | ||
}, | ||
], | ||
primaryKey: null, | ||
dbName: null, | ||
uniqueFields: [], | ||
uniqueIndexes: [], | ||
}, | ||
]); | ||
(0, vitest_1.expect)(newModels).toEqual([ | ||
{ | ||
name: "CategoryToPost", | ||
dbName: "_CategoryToPost", | ||
fields: [ | ||
{ | ||
hasDefaultValue: false, | ||
isId: false, | ||
isList: false, | ||
isReadOnly: true, | ||
isRequired: true, | ||
isUnique: false, | ||
kind: "scalar", | ||
name: "A", | ||
type: "String", | ||
}, | ||
{ | ||
hasDefaultValue: false, | ||
isId: false, | ||
isList: false, | ||
isReadOnly: true, | ||
isRequired: true, | ||
isUnique: false, | ||
kind: "scalar", | ||
name: "B", | ||
type: "Int", | ||
}, | ||
], | ||
primaryKey: null, | ||
uniqueFields: [], | ||
uniqueIndexes: [], | ||
}, | ||
]); | ||
}); | ||
//# sourceMappingURL=generateImplicitManyToManyModels.test.js.map |
@@ -23,2 +23,3 @@ "use strict"; | ||
zod_1.default.literal("sqlite"), | ||
zod_1.default.literal("sqlserver"), | ||
]), | ||
@@ -25,0 +26,0 @@ fileName: zod_1.default.string().optional().default("types.ts"), |
@@ -7,3 +7,3 @@ { | ||
}, | ||
"version": "1.7.1", | ||
"version": "1.8.0", | ||
"main": "dist/generator.js", | ||
@@ -10,0 +10,0 @@ "files": [ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
174239
2401