mandarina-server 1.5.1 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,8 +5,6 @@ var createProject_1 = require("./createProject");
5
5
  var watch_1 = require("./watch");
6
6
  var deploy_1 = require("./deploy");
7
7
  var genFiles_1 = require("./gen-files/genFiles");
8
- var prisma2_1 = require("./gen-files/prisma2");
9
- console.log('cesar');
10
8
  //@ts-ignore
11
9
  var _a = process.argv, nodeDir = _a[0], dir = _a[1], cmd = _a[2], args = _a.slice(3);
12
10
  switch (cmd) {
@@ -17,9 +15,6 @@ switch (cmd) {
17
15
  case 'gen-files':
18
16
  genFiles_1.genFile();
19
17
  break;
20
- case 'gen-prisma2':
21
- prisma2_1.genFile();
22
- break;
23
18
  case 'deploy':
24
19
  deploy_1.deploy();
25
20
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AACA,iDAA8C;AAC9C,iCAA8B;AAC9B,mCAAgC;AAChC,iDAA6C;AAC7C,+CAA0D;AAE1D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAEpB,YAAY;AACN,IAAA,iBAA2C,EAA1C,eAAO,EAAE,WAAG,EAAE,WAAG,EAAE,kBAAuB,CAAA;AAEjD,QAAQ,GAAG,EAAE;IACX,KAAK,QAAQ;QACX,IAAM,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAA;QAC9C,6BAAa,CAAC,OAAO,CAAC,CAAA;QACtB,MAAK;IACP,KAAK,WAAW;QACd,kBAAO,EAAE,CAAA;QACT,MAAM;IACR,KAAK,aAAa;QAChB,iBAAU,EAAE,CAAA;QACZ,MAAM;IACR,KAAK,QAAQ;QACX,eAAM,EAAE,CAAA;QACR,MAAM;IACR,KAAK,OAAO;QACV,aAAK,EAAE,CAAA;QACP,MAAM;IACR,KAAK,SAAS;QACZ,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;QAC5D,MAAK;IACP;QACE,OAAO,CAAC,IAAI,CAAC,aAAW,GAAG,gFAAsE,CAAC,CAAA;CACrG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8EE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AACA,iDAA8C;AAC9C,iCAA8B;AAC9B,mCAAgC;AAChC,iDAA6C;AAE7C,YAAY;AACN,IAAA,iBAA2C,EAA1C,eAAO,EAAE,WAAG,EAAE,WAAG,EAAE,kBAAuB,CAAA;AAEjD,QAAQ,GAAG,EAAE;IACX,KAAK,QAAQ;QACX,IAAM,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAA;QAC9C,6BAAa,CAAC,OAAO,CAAC,CAAA;QACtB,MAAK;IACP,KAAK,WAAW;QACd,kBAAO,EAAE,CAAA;QACT,MAAM;IACR,KAAK,QAAQ;QACX,eAAM,EAAE,CAAA;QACR,MAAM;IACR,KAAK,OAAO;QACV,aAAK,EAAE,CAAA;QACP,MAAM;IACR,KAAK,SAAS;QACZ,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;QAC5D,MAAK;IACP;QACE,OAAO,CAAC,IAAI,CAAC,aAAW,GAAG,gFAAsE,CAAC,CAAA;CACrG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8EE"}
@@ -21,6 +21,5 @@ export interface ConfigDirInterface {
21
21
  actions?: string[];
22
22
  generated: string;
23
23
  prisma: string;
24
- prisma2: string;
25
24
  }
26
25
  export declare const loadSchemas: (dir: ConfigDirInterface) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mandarina-server",
3
- "version": "1.5.1",
3
+ "version": "1.5.2",
4
4
  "description": "Mandarina for server side",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
package/src/cli/index.ts CHANGED
@@ -3,9 +3,6 @@ import {createProject} from "./createProject";
3
3
  import {watch} from "./watch";
4
4
  import {deploy} from "./deploy";
5
5
  import {genFile} from "./gen-files/genFiles";
6
- import {genFile as genPrisma2} from "./gen-files/prisma2";
7
-
8
- console.log('cesar')
9
6
 
10
7
  //@ts-ignore
11
8
  const [nodeDir, dir, cmd, ...args] = process.argv
@@ -18,9 +15,6 @@ switch (cmd) {
18
15
  case 'gen-files':
19
16
  genFile()
20
17
  break;
21
- case 'gen-prisma2':
22
- genPrisma2()
23
- break;
24
18
  case 'deploy':
25
19
  deploy()
26
20
  break;
package/src/cli/utils.ts CHANGED
@@ -68,7 +68,6 @@ export interface ConfigDirInterface {
68
68
  actions?: string[]
69
69
  generated: string
70
70
  prisma: string
71
- prisma2: string
72
71
  }
73
72
 
74
73
  export const loadSchemas = (dir: ConfigDirInterface) => {
File without changes
@@ -1,220 +0,0 @@
1
- import {getConfig, loadSchemas} from "../utils";
2
- import {createDir, resetDir} from "./genFilesUtils";
3
- import {Table} from "../..";
4
- import {Schema} from "mandarina";
5
- import {capitalize, isRequired} from "mandarina/build/Schema/utils";
6
- import path from "path";
7
- import fs from "fs";
8
- import {FieldDefinition} from "mandarina/build/Schema/Schema";
9
-
10
-
11
- const prisma2Models: { [schemaName: string]: { [fieldName: string]: string } } = {}
12
- const proccesed: string[] = []
13
- let c = 0
14
- export const genFile = () => {
15
- const config = getConfig()
16
- loadSchemas(config.dir)
17
- createDir(config.dir.prisma2)
18
- resetDir(config.dir.prisma2)
19
- for (const schemaName in Table.instances) {
20
- const schema = Schema.getInstance(schemaName)
21
- getPrisma2Model(schema)
22
- }
23
- let prisma = `generator client {
24
- provider = "prisma-client-js"
25
- }
26
-
27
- datasource db {
28
- provider = "postgresql"
29
- url = env("DATABASE_URL")
30
- }
31
- `
32
- Object.keys(prisma2Models).forEach(modelName => {
33
- const model = prisma2Models[modelName]
34
- prisma += `model ${modelName} {\n `
35
- Object.keys(model).forEach(fieldName => {
36
- const field = model[fieldName]
37
- prisma += `\t${fieldName} ${field}\n`
38
- })
39
- prisma += `}\n\n`
40
- })
41
- const prismaDir = path.join(process.cwd(), config.dir.prisma2,)
42
- const fileAbs = `${prismaDir}/schema.prisma`;
43
- fs.writeFileSync(fileAbs, prisma);
44
- }
45
-
46
- function getRelationName(parentDef: FieldDefinition) {
47
- if (!parentDef.table.relation) return ''
48
- if (typeof parentDef.table.relation === 'string') {
49
- return parentDef.table.relation
50
- }
51
- return parentDef.table.relation.name || ''
52
- }
53
-
54
- const getPrisma2Model = (schema: Schema, parent?: Schema, parentName?: string) => {
55
- prisma2Models[schema.name] = prisma2Models[schema.name] || {}
56
- let selfDef: FieldDefinition | null = null
57
- for (const key of schema.keys) {
58
- if (key === 'id') {
59
- c++
60
- prisma2Models[schema.name].id = `String @id @default(cuid()) //${c}`;
61
- } else {
62
- const fieldDefinition = schema.getPathDefinition(key)
63
- let required = fieldDefinition.isArray || isRequired(fieldDefinition)
64
- const fieldType = getGraphQLType(fieldDefinition, key, required);
65
- const unique = fieldDefinition.table.unique ? '@unique' : ''
66
- let defaultValue = ''
67
- if (fieldDefinition.table.default !== undefined) {
68
- const wrapper = (fieldDefinition.type === String) ? '"' : ''
69
- defaultValue = `@default(${wrapper}${fieldDefinition.table.default}${wrapper})`
70
- }
71
- let relation: string = ''
72
- if (fieldDefinition.isTable) {
73
-
74
- const processedName = [schema.name, key].join('-')
75
- let relationName = getRelationName(fieldDefinition)
76
- let childExists=false
77
- if (parent && parentName) {
78
- const parentDef = parent.getPathDefinition(parentName)
79
- let parentRelationName = getRelationName(parentDef)
80
- if (parent && (fieldDefinition.type === parent.name ) && (parentRelationName === relationName)) { //child exists
81
- selfDef = fieldDefinition
82
- childExists=true
83
- }
84
- }
85
- if (!proccesed.includes(processedName)) {
86
- proccesed.push(processedName)
87
- if (!childExists) {
88
- getPrisma2Model(Schema.getInstance(fieldDefinition.type), schema, key)
89
- }
90
- }
91
- } else {
92
-
93
- let createdAt = '', updatedAt = ''
94
- if ((fieldDefinition.table.createdAt === true || (fieldDefinition.table.createdAt !== false && key === 'createdAt'))) {
95
- createdAt = `@default(now())`
96
- }
97
- if ((fieldDefinition.table.updatedAt === true || (fieldDefinition.table.updatedAt !== false && key === 'updatedAt'))) {
98
- createdAt = `@default(now())`
99
- }
100
- if (!fieldType) {
101
- throw new Error('no type')
102
- }
103
- prisma2Models[schema.name][key] = `${fieldType} ${unique} ${createdAt} ${updatedAt} ${defaultValue} ${relation} `;
104
- }
105
- }
106
- }// end for
107
- if (parent && parentName) {
108
- const parentDef = parent.getPathDefinition(parentName)
109
- let parentRelationName = getRelationName(parentDef)
110
- const parentArray = parentDef.isArray
111
- if (selfDef) {
112
- if (selfDef.key==='visitStaff'){
113
- console.log('visitStaff')
114
- }
115
- let childRelationName = getRelationName(selfDef)
116
- const childArray = selfDef.isArray
117
- if (childRelationName !== parentRelationName) {
118
- throw new Error(`${childRelationName}-parentRelationName`)
119
- }
120
- if (!parentArray && !childArray) { //1 - 1
121
- const relation = getRelationName(parentDef) || `${[parent.name, `${selfDef.type}_${selfDef.key}`].join('_Exist_')}`
122
- if (typeof parentDef.table?.relation !== 'string' && parentDef.table?.relation?.link) {
123
- prisma2Models[parent.name][parentDef.key] = `${parentDef.type}? @relation(fields: [${parentDef.key}Id], references: [id],name: "${relation}") // 1`
124
- prisma2Models[parent.name][`${parentDef.key}Id`] = `String?`
125
- prisma2Models[schema.name][`${selfDef.key}`] = `${selfDef.type}? @relation(name: "${relation}") // 2`
126
- } else {
127
- if (schema.name===parent.name){
128
- prisma2Models[schema.name][`${relation}`] = `${parentDef.type}? @relation(name: "${relation}") // 3.1 `
129
- prisma2Models[schema.name][`${selfDef.key}`] = `${selfDef.type}? @relation(fields: [${selfDef.key}Id], references: [id], name: "${relation}") // 4.1 ${parentDef.key} ${selfDef.key}`
130
- prisma2Models[schema.name][`${selfDef.key}Id`] = `String?`
131
- }else{
132
- prisma2Models[parent.name][parentDef.key] = `${parentDef.type}? @relation(name: "${relation}") // 3`
133
- prisma2Models[schema.name][`${selfDef.key}`] = `${selfDef.type}? @relation(fields: [${selfDef.key}Id], references: [id], name: "${relation}") // 4`
134
- prisma2Models[schema.name][`${selfDef.key}Id`] = `String?`
135
- }
136
-
137
- }
138
- }
139
- if (parentArray && !childArray) { // n - 1
140
- const relation = getRelationName(parentDef) || `${[parent.name, `${schema.name}_${selfDef.key}`].join('_Exist_')}`
141
- prisma2Models[parent.name][parentDef.key] = `${parentDef.type}[] @relation(name: "${relation}") //5 `
142
- prisma2Models[schema.name][selfDef.key] = `${selfDef.type}? @relation(fields: [${selfDef.key}Id], references: [id], name: "${relation}") // 6`
143
- prisma2Models[schema.name][`${selfDef.key}Id`] = `String?`
144
-
145
- }
146
- if (!parentArray && childArray) { // 1 - n
147
- const relation = getRelationName(parentDef) || `${[parent.name, `${schema.name}_${selfDef.key}`].join('_Exist_')}`
148
- prisma2Models[schema.name][selfDef.key] = `${selfDef.type}[] @relation(name: "${relation}") //7`
149
- prisma2Models[parent.name][parentDef.key] = `${parentDef.type}? @relation(fields: [${parentDef.key}Id], references: [id], name: "${relation}") //7.1`
150
- prisma2Models[parent.name][`${parentDef.key}Id`] = `String?`
151
- }
152
- if (parentArray && childArray) { // n - n
153
- const relation = getRelationName(parentDef) || `${[parent.name, `${schema.name}_${selfDef.key}`].join('_Exist_')}`
154
- if (schema.name===parent.name){
155
- prisma2Models[parent.name][parentDef.key] = `${parentDef.type}[] @relation(name: "${relation}", references: [id]) // 8 self1`
156
- prisma2Models[schema.name][`${selfDef.key}2`] = `${selfDef.type}[] @relation(name: "${relation}", references: [id]) // 9 self2`
157
- }else{
158
- prisma2Models[parent.name][parentDef.key] = `${parentDef.type}[] @relation(name: "${relation}") // 8`
159
- prisma2Models[schema.name][selfDef.key] = `${selfDef.type}[] @relation(name: "${relation}") // 9`
160
- }
161
-
162
- }
163
- } else {
164
- const parentRelationName= getRelationName(parentDef)
165
-
166
- if (!parentArray) { //1 - n
167
- const relation =parentRelationName || `${[parent.name, `${schema.name}_${parentDef.key}`].join('_Exist_')}`
168
- prisma2Models[parent.name][parentDef.key] = `${parentDef.type}? @relation(name: "${relation}") //10`
169
- prisma2Models[schema.name][`${parentRelationName || parent.name}${parent.names.query.single}`] = `${parent.name}? @relation(fields: [${parentRelationName ||parent.name}${parent.names.query.single}Id], references: [id], name: "${relation}") // 11`
170
- prisma2Models[schema.name][`${parentRelationName || parent.name}${parent.names.query.single}Id`] = `String?`
171
-
172
- }
173
- if (parentArray) { // n - 1
174
- const name = parent.names.query.single
175
- const relation =parentRelationName || `${[parent.name, `${schema.name}_${name}`].join('_Exist_')}`
176
- prisma2Models[parent.name][parentDef.key] = `${parentDef.type}[] @relation(name: "${relation}") // 12 `
177
- prisma2Models[schema.name][`${parentRelationName || parent.name}${capitalize(parentDef.key)}`] = `${parent.name}? @relation(fields: [${parentRelationName || parent.name}${capitalize(parentDef.key)}Id], references: [id], name: "${relation}") // 13`
178
- prisma2Models[schema.name][`${parentRelationName || parent.name}${capitalize(parentDef.key)}Id`] = `String?`
179
-
180
- }
181
- }
182
- }
183
- }
184
- // if (typeof fieldDefinition.table?.relation !== 'string' && fieldDefinition.table?.relation?.link) {
185
- // const nameId = `${key}Id`
186
- // prisma2Models[schema.name][nameId] = `String //id with link`;
187
- // relations.push(`fields: [${nameId}]`)
188
- // relations.push(`references: [id]`)
189
- // }
190
- // if (relations.length > 0) {
191
- // relation = `@relation(${relations.join(', ')})`
192
- // }
193
- // prisma2Models[schema.name][key] = `${fieldType} ${unique} ${defaultValue} ${relation} //deeping call=> ${fieldDefinition.type}`;
194
- const getGraphQLType = (def: FieldDefinition, key: string, required: boolean): string => {
195
- const optional = !def.isArray && !required ? '?' : ''
196
- switch (true) {
197
- case (!def.isArray && !def.isTable && def.type.name === 'String'):
198
- return `String${optional}`;
199
-
200
- case (!def.isArray && !def.isTable && def.type.name === 'Boolean'):
201
- return `Boolean${optional}`;
202
-
203
- case (!def.isArray && !def.isTable && def.type.name === 'Number'):
204
- return `Float${optional}`;
205
-
206
- case (!def.isArray && !def.isTable && def.type.name === 'Integer'):
207
- return `Int${optional}`;
208
- case (!def.isArray && !def.isTable && def.type.name === 'Date'):
209
- return `DateTime${optional}`;
210
- case (def.isArray && def.isTable):
211
- return `${def.type}[]`
212
- case (def.isArray && !def.isTable):
213
- const scalarName = getGraphQLType({...def, isArray: false}, key, def.isArray && required)
214
- return `${scalarName}[]`
215
- default:
216
- return def.type + optional;
217
- }
218
- }
219
-
220
-