@autobe/compiler 0.14.4 → 0.14.6
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.
- package/lib/prisma/writePrismaApplication.js +74 -22
- package/lib/prisma/writePrismaApplication.js.map +1 -1
- package/lib/realize/AutoBeRealizeCompiler.js +1 -3
- package/lib/realize/AutoBeRealizeCompiler.js.map +1 -1
- package/lib/realize/writeRealizeControllers.d.ts +1 -1
- package/lib/realize/writeRealizeControllers.js +15 -3
- package/lib/realize/writeRealizeControllers.js.map +1 -1
- package/package.json +5 -4
- package/src/prisma/writePrismaApplication.ts +93 -22
- package/src/realize/AutoBeRealizeCompiler.ts +1 -1
- package/src/realize/writeRealizeControllers.ts +8 -3
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.writePrismaApplication = writePrismaApplication;
|
|
4
7
|
const utils_1 = require("@autobe/utils");
|
|
8
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
5
9
|
const ArrayUtil_1 = require("../utils/ArrayUtil");
|
|
6
10
|
const MapUtil_1 = require("../utils/MapUtil");
|
|
7
11
|
function writePrismaApplication(props) {
|
|
@@ -42,9 +46,8 @@ function fillMappingName(model) {
|
|
|
42
46
|
}
|
|
43
47
|
for (const array of group.values())
|
|
44
48
|
if (array.length !== 1)
|
|
45
|
-
for (const ff of array)
|
|
46
|
-
ff.relation.mappingName = `${model.name}_of_${ff.name}
|
|
47
|
-
}
|
|
49
|
+
for (const ff of array)
|
|
50
|
+
ff.relation.mappingName = shortName(`${model.name}_of_${ff.name}`);
|
|
48
51
|
}
|
|
49
52
|
/* -----------------------------------------------------------
|
|
50
53
|
COLUMNS
|
|
@@ -119,7 +122,11 @@ function writeRelations(props) {
|
|
|
119
122
|
props.model.plainIndexes.every((p) => p.fieldNames[0] !== f.name));
|
|
120
123
|
});
|
|
121
124
|
const contents = [
|
|
122
|
-
props.model.foreignFields.map(writeConstraint
|
|
125
|
+
props.model.foreignFields.map((foreign) => writeConstraint({
|
|
126
|
+
dbms: props.dbms,
|
|
127
|
+
model: props.model,
|
|
128
|
+
foreign,
|
|
129
|
+
})),
|
|
123
130
|
hasRelationships.map((r) => {
|
|
124
131
|
var _a;
|
|
125
132
|
return [
|
|
@@ -128,12 +135,24 @@ function writeRelations(props) {
|
|
|
128
135
|
...(r.mappingName ? [`@relation("${r.mappingName}")`] : []),
|
|
129
136
|
].join(" ");
|
|
130
137
|
}),
|
|
131
|
-
foreignIndexes.map(writeForeignIndex
|
|
138
|
+
foreignIndexes.map((field) => writeForeignIndex({
|
|
139
|
+
model: props.model,
|
|
140
|
+
field,
|
|
141
|
+
})),
|
|
132
142
|
[
|
|
133
|
-
...props.model.uniqueIndexes.map(writeUniqueIndex
|
|
134
|
-
|
|
143
|
+
...props.model.uniqueIndexes.map((unique) => writeUniqueIndex({
|
|
144
|
+
model: props.model,
|
|
145
|
+
unique,
|
|
146
|
+
})),
|
|
147
|
+
...props.model.plainIndexes.map((plain) => writePlainIndex({
|
|
148
|
+
model: props.model,
|
|
149
|
+
plain,
|
|
150
|
+
})),
|
|
135
151
|
...(props.dbms === "postgres"
|
|
136
|
-
? props.model.ginIndexes.map(writeGinIndex
|
|
152
|
+
? props.model.ginIndexes.map((gin) => writeGinIndex({
|
|
153
|
+
model: props.model,
|
|
154
|
+
gin,
|
|
155
|
+
}))
|
|
137
156
|
: []),
|
|
138
157
|
],
|
|
139
158
|
];
|
|
@@ -147,31 +166,52 @@ function writeRelations(props) {
|
|
|
147
166
|
...ArrayUtil_1.ArrayUtil.paddle(contents),
|
|
148
167
|
];
|
|
149
168
|
}
|
|
150
|
-
function writeConstraint(
|
|
169
|
+
function writeConstraint(props) {
|
|
170
|
+
// spellchecker:ignore-next-line
|
|
171
|
+
const name = `${props.model.name}_${props.foreign.name}_rela`;
|
|
151
172
|
return [
|
|
152
|
-
|
|
153
|
-
`${
|
|
173
|
+
props.foreign.relation.name,
|
|
174
|
+
`${props.foreign.relation.targetModel}${props.foreign.nullable ? "?" : ""}`,
|
|
154
175
|
`@relation(${[
|
|
155
|
-
...(
|
|
156
|
-
? [`"${
|
|
176
|
+
...(props.foreign.relation.mappingName
|
|
177
|
+
? [`"${props.foreign.relation.mappingName}"`]
|
|
157
178
|
: []),
|
|
158
|
-
`fields: [${
|
|
179
|
+
`fields: [${props.foreign.name}]`,
|
|
159
180
|
`references: [id]`,
|
|
160
181
|
`onDelete: Cascade`,
|
|
182
|
+
...(props.dbms === "sqlite" || name.length <= MAX_IDENTIFIER_LENGTH
|
|
183
|
+
? []
|
|
184
|
+
: [`map: "${shortName(name)}"`]),
|
|
161
185
|
].join(", ")})`,
|
|
162
186
|
].join(" ");
|
|
163
187
|
}
|
|
164
|
-
function writeForeignIndex(
|
|
165
|
-
|
|
188
|
+
function writeForeignIndex(props) {
|
|
189
|
+
const name = `${props.model.name}_${props.field.name}_fkey`;
|
|
190
|
+
const prefix = `@@${props.field.unique === true ? "unique" : "index"}([${props.field.name}]`;
|
|
191
|
+
if (name.length <= MAX_IDENTIFIER_LENGTH)
|
|
192
|
+
return `${prefix})`;
|
|
193
|
+
return `${prefix}, map: "${shortName(name)}")`;
|
|
166
194
|
}
|
|
167
|
-
function writeUniqueIndex(
|
|
168
|
-
|
|
195
|
+
function writeUniqueIndex(props) {
|
|
196
|
+
const name = `${props.model.name}_${props.unique.fieldNames.join("_")}_key`;
|
|
197
|
+
const prefix = `@@unique([${props.unique.fieldNames.join(", ")}]`;
|
|
198
|
+
if (name.length <= MAX_IDENTIFIER_LENGTH)
|
|
199
|
+
return `${prefix})`;
|
|
200
|
+
return `${prefix}, map: "${shortName(name)}")`;
|
|
169
201
|
}
|
|
170
|
-
function writePlainIndex(
|
|
171
|
-
|
|
202
|
+
function writePlainIndex(props) {
|
|
203
|
+
const name = `${props.model.name}_${props.plain.fieldNames.join("_")}_idx`;
|
|
204
|
+
const prefix = `@@index([${props.plain.fieldNames.join(", ")}]`;
|
|
205
|
+
if (name.length <= MAX_IDENTIFIER_LENGTH)
|
|
206
|
+
return `${prefix})`;
|
|
207
|
+
return `${prefix}, map: "${shortName(name)}")`;
|
|
172
208
|
}
|
|
173
|
-
function writeGinIndex(
|
|
174
|
-
|
|
209
|
+
function writeGinIndex(props) {
|
|
210
|
+
const name = `${props.model.name}_${props.gin.fieldName}_idx`;
|
|
211
|
+
const prefix = `@@index([${props.gin.fieldName}(ops: raw("gin_trgm_ops"))], type: Gin`;
|
|
212
|
+
if (name.length <= MAX_IDENTIFIER_LENGTH)
|
|
213
|
+
return `${prefix})`;
|
|
214
|
+
return `${prefix}, map: "${shortName(name)}")`;
|
|
175
215
|
}
|
|
176
216
|
/* -----------------------------------------------------------
|
|
177
217
|
BACKGROUND
|
|
@@ -193,6 +233,16 @@ function indent(content) {
|
|
|
193
233
|
.map((str) => ` ${str}`)
|
|
194
234
|
.join("\n");
|
|
195
235
|
}
|
|
236
|
+
function shortName(name) {
|
|
237
|
+
if (name.length <= MAX_IDENTIFIER_LENGTH)
|
|
238
|
+
return name;
|
|
239
|
+
const hash = crypto_1.default
|
|
240
|
+
.createHash("md5")
|
|
241
|
+
.update(name)
|
|
242
|
+
.digest("hex")
|
|
243
|
+
.substring(0, HASH_TRUNCATION_LENGTH);
|
|
244
|
+
return `${name.substring(0, MAX_IDENTIFIER_LENGTH - HASH_TRUNCATION_LENGTH - 1)}_${hash}`;
|
|
245
|
+
}
|
|
196
246
|
const LOGICAL_TYPES = {
|
|
197
247
|
// native types
|
|
198
248
|
boolean: "Boolean",
|
|
@@ -240,4 +290,6 @@ const SQLITE_MAIN_FILE = utils_1.StringUtil.trim `
|
|
|
240
290
|
output = "../docs/ERD.md"
|
|
241
291
|
}
|
|
242
292
|
`;
|
|
293
|
+
const MAX_IDENTIFIER_LENGTH = 63;
|
|
294
|
+
const HASH_TRUNCATION_LENGTH = 8;
|
|
243
295
|
//# sourceMappingURL=writePrismaApplication.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writePrismaApplication.js","sourceRoot":"","sources":["../../src/prisma/writePrismaApplication.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"writePrismaApplication.js","sourceRoot":"","sources":["../../src/prisma/writePrismaApplication.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,7 @@ class AutoBeRealizeCompiler {
|
|
|
20
20
|
this.listener = listener;
|
|
21
21
|
}
|
|
22
22
|
controller(props) {
|
|
23
|
-
return
|
|
24
|
-
return (0, writeRealizeControllers_1.writeRealizeControllers)(props);
|
|
25
|
-
});
|
|
23
|
+
return (0, writeRealizeControllers_1.writeRealizeControllers)(props);
|
|
26
24
|
}
|
|
27
25
|
test(props) {
|
|
28
26
|
return (0, testRealizeProject_1.testRealizeProject)(Object.assign(Object.assign({}, props), { files: Object.assign(Object.assign({}, props.files), AutoBeCompilerRealizeTemplate_1.AutoBeCompilerRealizeTemplate) }), this.listener.test);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoBeRealizeCompiler.js","sourceRoot":"","sources":["../../src/realize/AutoBeRealizeCompiler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAQA,4FAAyF;AACzF,wFAAqF;AACrF,kFAA+E;AAC/E,6DAA0D;AAC1D,uEAAoE;AAEpE,MAAa,qBAAqB;IAChC,YACmB,QAAwC;QAAxC,aAAQ,GAAR,QAAQ,CAAgC;IACxD,CAAC;
|
|
1
|
+
{"version":3,"file":"AutoBeRealizeCompiler.js","sourceRoot":"","sources":["../../src/realize/AutoBeRealizeCompiler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAQA,4FAAyF;AACzF,wFAAqF;AACrF,kFAA+E;AAC/E,6DAA0D;AAC1D,uEAAoE;AAEpE,MAAa,qBAAqB;IAChC,YACmB,QAAwC;QAAxC,aAAQ,GAAR,QAAQ,CAAgC;IACxD,CAAC;IAEG,UAAU,CACf,KAAoC;QAEpC,OAAO,IAAA,iDAAuB,EAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAEM,IAAI,CACT,KAA8B;QAE9B,OAAO,IAAA,uCAAkB,kCAElB,KAAK,KACR,KAAK,kCACA,KAAK,CAAC,KAAK,GACX,6DAA6B,MAGpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CACnB,CAAC;IACJ,CAAC;IAEY,WAAW;;YACtB,qDACK,iEAA+B,GAC/B,uDAA0B,GAC1B,6DAA6B,EAChC;QACJ,CAAC;KAAA;CACF;AAjCD,sDAiCC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { IAutoBeRealizeControllerProps } from "@autobe/interface";
|
|
2
|
-
export declare const writeRealizeControllers: (props: IAutoBeRealizeControllerProps) => Record<string, string
|
|
2
|
+
export declare const writeRealizeControllers: (props: IAutoBeRealizeControllerProps) => Promise<Record<string, string>>;
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
13
|
};
|
|
@@ -8,7 +17,9 @@ const NestiaMigrateNestMethodProgrammer_1 = require("@nestia/migrate/lib/program
|
|
|
8
17
|
const path_1 = __importDefault(require("path"));
|
|
9
18
|
const typescript_1 = __importDefault(require("typescript"));
|
|
10
19
|
const createMigrateApplication_1 = require("../interface/createMigrateApplication");
|
|
11
|
-
const
|
|
20
|
+
const ArrayUtil_1 = require("../utils/ArrayUtil");
|
|
21
|
+
const FilePrinter_1 = require("../utils/FilePrinter");
|
|
22
|
+
const writeRealizeControllers = (props) => __awaiter(void 0, void 0, void 0, function* () {
|
|
12
23
|
const app = (0, createMigrateApplication_1.createMigrateApplication)(props.document);
|
|
13
24
|
const result = app.nest({
|
|
14
25
|
simulate: false,
|
|
@@ -64,7 +75,8 @@ const writeRealizeControllers = (props) => {
|
|
|
64
75
|
},
|
|
65
76
|
},
|
|
66
77
|
});
|
|
67
|
-
|
|
68
|
-
|
|
78
|
+
const entries = yield ArrayUtil_1.ArrayUtil.asyncMap(Object.entries(result).filter(([key]) => key.startsWith("src/controllers/")), (_a) => __awaiter(void 0, [_a], void 0, function* ([key, value]) { return [key, yield FilePrinter_1.FilePrinter.beautify(value)]; }));
|
|
79
|
+
return Object.fromEntries(entries);
|
|
80
|
+
});
|
|
69
81
|
exports.writeRealizeControllers = writeRealizeControllers;
|
|
70
82
|
//# sourceMappingURL=writeRealizeControllers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeRealizeControllers.js","sourceRoot":"","sources":["../../src/realize/writeRealizeControllers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"writeRealizeControllers.js","sourceRoot":"","sources":["../../src/realize/writeRealizeControllers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@autobe/compiler",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.6",
|
|
4
4
|
"description": "AI backend server code generator",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"author": "Wrtn Technologies",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"tstl": "^3.0.0",
|
|
27
27
|
"tgrid": "^1.2.0",
|
|
28
28
|
"typia": "^9.6.0",
|
|
29
|
-
"@autobe/
|
|
30
|
-
"@autobe/utils": "^0.14.
|
|
31
|
-
"@autobe/
|
|
29
|
+
"@autobe/filesystem": "^0.14.6",
|
|
30
|
+
"@autobe/utils": "^0.14.6",
|
|
31
|
+
"@autobe/interface": "^0.14.6"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/node": "^22.15.3",
|
|
@@ -80,6 +80,7 @@
|
|
|
80
80
|
"scripts": {
|
|
81
81
|
"build": "pnpm run prebuild && rimraf lib && tsc",
|
|
82
82
|
"prebuild": "ts-node build/template.ts && ts-node build/external.ts",
|
|
83
|
+
"postbuild": "node ../../internals/config/assertBuild.js",
|
|
83
84
|
"dev": "pnpm run build --watch"
|
|
84
85
|
},
|
|
85
86
|
"typings": "lib/index.d.ts"
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AutoBePrisma } from "@autobe/interface";
|
|
2
2
|
import { StringUtil } from "@autobe/utils";
|
|
3
|
+
import crypto from "crypto";
|
|
3
4
|
|
|
4
5
|
import { ArrayUtil } from "../utils/ArrayUtil";
|
|
5
6
|
import { MapUtil } from "../utils/MapUtil";
|
|
@@ -74,9 +75,8 @@ function fillMappingName(model: AutoBePrisma.IModel): void {
|
|
|
74
75
|
}
|
|
75
76
|
for (const array of group.values())
|
|
76
77
|
if (array.length !== 1)
|
|
77
|
-
for (const ff of array)
|
|
78
|
-
ff.relation.mappingName = `${model.name}_of_${ff.name}
|
|
79
|
-
}
|
|
78
|
+
for (const ff of array)
|
|
79
|
+
ff.relation.mappingName = shortName(`${model.name}_of_${ff.name}`);
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
/* -----------------------------------------------------------
|
|
@@ -189,7 +189,13 @@ function writeRelations(props: {
|
|
|
189
189
|
);
|
|
190
190
|
});
|
|
191
191
|
const contents: string[][] = [
|
|
192
|
-
props.model.foreignFields.map(
|
|
192
|
+
props.model.foreignFields.map((foreign) =>
|
|
193
|
+
writeConstraint({
|
|
194
|
+
dbms: props.dbms,
|
|
195
|
+
model: props.model,
|
|
196
|
+
foreign,
|
|
197
|
+
}),
|
|
198
|
+
),
|
|
193
199
|
hasRelationships.map((r) =>
|
|
194
200
|
[
|
|
195
201
|
r.mappingName ?? r.modelName,
|
|
@@ -197,12 +203,32 @@ function writeRelations(props: {
|
|
|
197
203
|
...(r.mappingName ? [`@relation("${r.mappingName}")`] : []),
|
|
198
204
|
].join(" "),
|
|
199
205
|
),
|
|
200
|
-
foreignIndexes.map(
|
|
206
|
+
foreignIndexes.map((field) =>
|
|
207
|
+
writeForeignIndex({
|
|
208
|
+
model: props.model,
|
|
209
|
+
field,
|
|
210
|
+
}),
|
|
211
|
+
),
|
|
201
212
|
[
|
|
202
|
-
...props.model.uniqueIndexes.map(
|
|
203
|
-
|
|
213
|
+
...props.model.uniqueIndexes.map((unique) =>
|
|
214
|
+
writeUniqueIndex({
|
|
215
|
+
model: props.model,
|
|
216
|
+
unique,
|
|
217
|
+
}),
|
|
218
|
+
),
|
|
219
|
+
...props.model.plainIndexes.map((plain) =>
|
|
220
|
+
writePlainIndex({
|
|
221
|
+
model: props.model,
|
|
222
|
+
plain,
|
|
223
|
+
}),
|
|
224
|
+
),
|
|
204
225
|
...(props.dbms === "postgres"
|
|
205
|
-
? props.model.ginIndexes.map(
|
|
226
|
+
? props.model.ginIndexes.map((gin) =>
|
|
227
|
+
writeGinIndex({
|
|
228
|
+
model: props.model,
|
|
229
|
+
gin,
|
|
230
|
+
}),
|
|
231
|
+
)
|
|
206
232
|
: []),
|
|
207
233
|
],
|
|
208
234
|
];
|
|
@@ -216,35 +242,68 @@ function writeRelations(props: {
|
|
|
216
242
|
];
|
|
217
243
|
}
|
|
218
244
|
|
|
219
|
-
function writeConstraint(
|
|
245
|
+
function writeConstraint(props: {
|
|
246
|
+
dbms: "postgres" | "sqlite";
|
|
247
|
+
model: AutoBePrisma.IModel;
|
|
248
|
+
foreign: AutoBePrisma.IForeignField;
|
|
249
|
+
}): string {
|
|
250
|
+
// spellchecker:ignore-next-line
|
|
251
|
+
const name: string = `${props.model.name}_${props.foreign.name}_rela`;
|
|
220
252
|
return [
|
|
221
|
-
|
|
222
|
-
`${
|
|
253
|
+
props.foreign.relation.name,
|
|
254
|
+
`${props.foreign.relation.targetModel}${props.foreign.nullable ? "?" : ""}`,
|
|
223
255
|
`@relation(${[
|
|
224
|
-
...(
|
|
225
|
-
? [`"${
|
|
256
|
+
...(props.foreign.relation.mappingName
|
|
257
|
+
? [`"${props.foreign.relation.mappingName}"`]
|
|
226
258
|
: []),
|
|
227
|
-
`fields: [${
|
|
259
|
+
`fields: [${props.foreign.name}]`,
|
|
228
260
|
`references: [id]`,
|
|
229
261
|
`onDelete: Cascade`,
|
|
262
|
+
...(props.dbms === "sqlite" || name.length <= MAX_IDENTIFIER_LENGTH
|
|
263
|
+
? []
|
|
264
|
+
: [`map: "${shortName(name)}"`]),
|
|
230
265
|
].join(", ")})`,
|
|
231
266
|
].join(" ");
|
|
232
267
|
}
|
|
233
268
|
|
|
234
|
-
function writeForeignIndex(
|
|
235
|
-
|
|
269
|
+
function writeForeignIndex(props: {
|
|
270
|
+
model: AutoBePrisma.IModel;
|
|
271
|
+
field: AutoBePrisma.IForeignField;
|
|
272
|
+
}): string {
|
|
273
|
+
const name: string = `${props.model.name}_${props.field.name}_fkey`;
|
|
274
|
+
const prefix: string = `@@${props.field.unique === true ? "unique" : "index"}([${props.field.name}]`;
|
|
275
|
+
if (name.length <= MAX_IDENTIFIER_LENGTH) return `${prefix})`;
|
|
276
|
+
return `${prefix}, map: "${shortName(name)}")`;
|
|
236
277
|
}
|
|
237
278
|
|
|
238
|
-
function writeUniqueIndex(
|
|
239
|
-
|
|
279
|
+
function writeUniqueIndex(props: {
|
|
280
|
+
model: AutoBePrisma.IModel;
|
|
281
|
+
unique: AutoBePrisma.IUniqueIndex;
|
|
282
|
+
}): string {
|
|
283
|
+
const name: string = `${props.model.name}_${props.unique.fieldNames.join("_")}_key`;
|
|
284
|
+
const prefix: string = `@@unique([${props.unique.fieldNames.join(", ")}]`;
|
|
285
|
+
if (name.length <= MAX_IDENTIFIER_LENGTH) return `${prefix})`;
|
|
286
|
+
return `${prefix}, map: "${shortName(name)}")`;
|
|
240
287
|
}
|
|
241
288
|
|
|
242
|
-
function writePlainIndex(
|
|
243
|
-
|
|
289
|
+
function writePlainIndex(props: {
|
|
290
|
+
model: AutoBePrisma.IModel;
|
|
291
|
+
plain: AutoBePrisma.IPlainIndex;
|
|
292
|
+
}): string {
|
|
293
|
+
const name: string = `${props.model.name}_${props.plain.fieldNames.join("_")}_idx`;
|
|
294
|
+
const prefix: string = `@@index([${props.plain.fieldNames.join(", ")}]`;
|
|
295
|
+
if (name.length <= MAX_IDENTIFIER_LENGTH) return `${prefix})`;
|
|
296
|
+
return `${prefix}, map: "${shortName(name)}")`;
|
|
244
297
|
}
|
|
245
298
|
|
|
246
|
-
function writeGinIndex(
|
|
247
|
-
|
|
299
|
+
function writeGinIndex(props: {
|
|
300
|
+
model: AutoBePrisma.IModel;
|
|
301
|
+
gin: AutoBePrisma.IGinIndex;
|
|
302
|
+
}): string {
|
|
303
|
+
const name: string = `${props.model.name}_${props.gin.fieldName}_idx`;
|
|
304
|
+
const prefix: string = `@@index([${props.gin.fieldName}(ops: raw("gin_trgm_ops"))], type: Gin`;
|
|
305
|
+
if (name.length <= MAX_IDENTIFIER_LENGTH) return `${prefix})`;
|
|
306
|
+
return `${prefix}, map: "${shortName(name)}")`;
|
|
248
307
|
}
|
|
249
308
|
|
|
250
309
|
/* -----------------------------------------------------------
|
|
@@ -269,6 +328,16 @@ function indent(content: string): string {
|
|
|
269
328
|
.join("\n");
|
|
270
329
|
}
|
|
271
330
|
|
|
331
|
+
function shortName(name: string): string {
|
|
332
|
+
if (name.length <= MAX_IDENTIFIER_LENGTH) return name;
|
|
333
|
+
const hash: string = crypto
|
|
334
|
+
.createHash("md5")
|
|
335
|
+
.update(name)
|
|
336
|
+
.digest("hex")
|
|
337
|
+
.substring(0, HASH_TRUNCATION_LENGTH);
|
|
338
|
+
return `${name.substring(0, MAX_IDENTIFIER_LENGTH - HASH_TRUNCATION_LENGTH - 1)}_${hash}`;
|
|
339
|
+
}
|
|
340
|
+
|
|
272
341
|
const LOGICAL_TYPES = {
|
|
273
342
|
// native types
|
|
274
343
|
boolean: "Boolean",
|
|
@@ -317,3 +386,5 @@ const SQLITE_MAIN_FILE = StringUtil.trim`
|
|
|
317
386
|
output = "../docs/ERD.md"
|
|
318
387
|
}
|
|
319
388
|
`;
|
|
389
|
+
const MAX_IDENTIFIER_LENGTH = 63;
|
|
390
|
+
const HASH_TRUNCATION_LENGTH = 8;
|
|
@@ -17,7 +17,7 @@ export class AutoBeRealizeCompiler implements IAutoBeRealizeCompiler {
|
|
|
17
17
|
private readonly listener: IAutoBeRealizeCompilerListener,
|
|
18
18
|
) {}
|
|
19
19
|
|
|
20
|
-
public
|
|
20
|
+
public controller(
|
|
21
21
|
props: IAutoBeRealizeControllerProps,
|
|
22
22
|
): Promise<Record<string, string>> {
|
|
23
23
|
return writeRealizeControllers(props);
|
|
@@ -9,10 +9,12 @@ import path from "path";
|
|
|
9
9
|
import ts from "typescript";
|
|
10
10
|
|
|
11
11
|
import { createMigrateApplication } from "../interface/createMigrateApplication";
|
|
12
|
+
import { ArrayUtil } from "../utils/ArrayUtil";
|
|
13
|
+
import { FilePrinter } from "../utils/FilePrinter";
|
|
12
14
|
|
|
13
|
-
export const writeRealizeControllers = (
|
|
15
|
+
export const writeRealizeControllers = async (
|
|
14
16
|
props: IAutoBeRealizeControllerProps,
|
|
15
|
-
): Record<string, string
|
|
17
|
+
): Promise<Record<string, string>> => {
|
|
16
18
|
const app: NestiaMigrateApplication = createMigrateApplication(
|
|
17
19
|
props.document,
|
|
18
20
|
);
|
|
@@ -111,9 +113,12 @@ export const writeRealizeControllers = (
|
|
|
111
113
|
},
|
|
112
114
|
},
|
|
113
115
|
});
|
|
114
|
-
|
|
116
|
+
|
|
117
|
+
const entries: [string, string][] = await ArrayUtil.asyncMap(
|
|
115
118
|
Object.entries(result).filter(([key]) =>
|
|
116
119
|
key.startsWith("src/controllers/"),
|
|
117
120
|
),
|
|
121
|
+
async ([key, value]) => [key, await FilePrinter.beautify(value)],
|
|
118
122
|
);
|
|
123
|
+
return Object.fromEntries(entries);
|
|
119
124
|
};
|