orchid-orm 1.5.12 → 1.5.15
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/CHANGELOG.md +18 -0
- package/dist/bin.js +55 -28
- package/dist/bin.js.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/rollup.config.js +1 -0
- package/src/bin/bin.ts +2 -2
- package/src/bin/init.test.ts +84 -43
- package/src/bin/init.ts +58 -29
- package/src/codegen/updateTableFile/changeTable.test.ts +33 -33
- package/src/codegen/updateTableFile/changeTable.ts +1 -1
- package/src/codegen/updateTableFile/createTable.test.ts +12 -1
- package/src/codegen/updateTableFile/createTable.ts +10 -2
- package/src/codegen/updateTableFile/renameTable.test.ts +8 -8
- package/src/codegen/updateTableFile/renameTable.ts +1 -1
|
@@ -42,7 +42,7 @@ describe('updateTableFile', () => {
|
|
|
42
42
|
asMock(fs.readFile)
|
|
43
43
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
44
44
|
|
|
45
|
-
export class
|
|
45
|
+
export class TableTable extends BaseTable {
|
|
46
46
|
table = 'table';
|
|
47
47
|
columns = this.setColumns((t) => ({}));
|
|
48
48
|
}`);
|
|
@@ -59,7 +59,7 @@ export class Table extends BaseTable {
|
|
|
59
59
|
|
|
60
60
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
61
61
|
|
|
62
|
-
export class
|
|
62
|
+
export class TableTable extends BaseTable {
|
|
63
63
|
table = 'table';
|
|
64
64
|
columns = this.setColumns((t) => ({
|
|
65
65
|
name: t.text(1, 10),
|
|
@@ -71,7 +71,7 @@ export class Table extends BaseTable {
|
|
|
71
71
|
asMock(fs.readFile)
|
|
72
72
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
73
73
|
|
|
74
|
-
export class
|
|
74
|
+
export class TableTable extends BaseTable {
|
|
75
75
|
table = 'table';
|
|
76
76
|
columns = this.setColumns((t) => ({
|
|
77
77
|
id: t.serial().primaryKey(),
|
|
@@ -90,7 +90,7 @@ export class Table extends BaseTable {
|
|
|
90
90
|
|
|
91
91
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
92
92
|
|
|
93
|
-
export class
|
|
93
|
+
export class TableTable extends BaseTable {
|
|
94
94
|
table = 'table';
|
|
95
95
|
columns = this.setColumns((t) => ({
|
|
96
96
|
id: t.serial().primaryKey(),
|
|
@@ -103,7 +103,7 @@ export class Table extends BaseTable {
|
|
|
103
103
|
asMock(fs.readFile)
|
|
104
104
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
105
105
|
|
|
106
|
-
export class
|
|
106
|
+
export class TableTable extends BaseTable {
|
|
107
107
|
table = 'table';
|
|
108
108
|
columns = this.setColumns((t) => ({
|
|
109
109
|
id: t.serial().primaryKey(),
|
|
@@ -123,7 +123,7 @@ export class Table extends BaseTable {
|
|
|
123
123
|
|
|
124
124
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
125
125
|
|
|
126
|
-
export class
|
|
126
|
+
export class TableTable extends BaseTable {
|
|
127
127
|
table = 'table';
|
|
128
128
|
columns = this.setColumns((t) => ({
|
|
129
129
|
id: t.serial().primaryKey(),
|
|
@@ -137,7 +137,7 @@ export class Table extends BaseTable {
|
|
|
137
137
|
asMock(fs.readFile)
|
|
138
138
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
139
139
|
|
|
140
|
-
export class
|
|
140
|
+
export class TableTable extends BaseTable {
|
|
141
141
|
table = 'table';
|
|
142
142
|
columns = this.setColumns((t) => ({
|
|
143
143
|
id: t.serial().primaryKey()
|
|
@@ -157,7 +157,7 @@ export class Table extends BaseTable {
|
|
|
157
157
|
|
|
158
158
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
159
159
|
|
|
160
|
-
export class
|
|
160
|
+
export class TableTable extends BaseTable {
|
|
161
161
|
table = 'table';
|
|
162
162
|
columns = this.setColumns((t) => ({
|
|
163
163
|
id: t.serial().primaryKey(),
|
|
@@ -171,7 +171,7 @@ export class Table extends BaseTable {
|
|
|
171
171
|
asMock(fs.readFile)
|
|
172
172
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
173
173
|
|
|
174
|
-
export class
|
|
174
|
+
export class TableTable extends BaseTable {
|
|
175
175
|
table = 'table';
|
|
176
176
|
columns = this.setColumns((t) => ({
|
|
177
177
|
id: t.serial().primaryKey(),
|
|
@@ -192,7 +192,7 @@ export class Table extends BaseTable {
|
|
|
192
192
|
|
|
193
193
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
194
194
|
|
|
195
|
-
export class
|
|
195
|
+
export class TableTable extends BaseTable {
|
|
196
196
|
table = 'table';
|
|
197
197
|
columns = this.setColumns((t) => ({
|
|
198
198
|
id: t.serial().primaryKey(),
|
|
@@ -205,7 +205,7 @@ export class Table extends BaseTable {
|
|
|
205
205
|
asMock(fs.readFile)
|
|
206
206
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
207
207
|
|
|
208
|
-
export class
|
|
208
|
+
export class TableTable extends BaseTable {
|
|
209
209
|
table = 'table';
|
|
210
210
|
columns = this.setColumns((t) => ({
|
|
211
211
|
id: t.serial().primaryKey(),
|
|
@@ -225,7 +225,7 @@ export class Table extends BaseTable {
|
|
|
225
225
|
|
|
226
226
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
227
227
|
|
|
228
|
-
export class
|
|
228
|
+
export class TableTable extends BaseTable {
|
|
229
229
|
table = 'table';
|
|
230
230
|
columns = this.setColumns((t) => ({
|
|
231
231
|
id: t.serial().primaryKey(),
|
|
@@ -237,7 +237,7 @@ export class Table extends BaseTable {
|
|
|
237
237
|
asMock(fs.readFile)
|
|
238
238
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
239
239
|
|
|
240
|
-
export class
|
|
240
|
+
export class TableTable extends BaseTable {
|
|
241
241
|
table = 'table';
|
|
242
242
|
columns = this.setColumns((t) => ({
|
|
243
243
|
name: t.integer(),
|
|
@@ -263,7 +263,7 @@ export class Table extends BaseTable {
|
|
|
263
263
|
|
|
264
264
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
265
265
|
|
|
266
|
-
export class
|
|
266
|
+
export class TableTable extends BaseTable {
|
|
267
267
|
table = 'table';
|
|
268
268
|
columns = this.setColumns((t) => ({
|
|
269
269
|
name: t.text(1, 10),
|
|
@@ -275,7 +275,7 @@ export class Table extends BaseTable {
|
|
|
275
275
|
asMock(fs.readFile)
|
|
276
276
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
277
277
|
|
|
278
|
-
export class
|
|
278
|
+
export class TableTable extends BaseTable {
|
|
279
279
|
table = 'table';
|
|
280
280
|
columns = this.setColumns((t) => ({
|
|
281
281
|
changeCollate: t.text().collate('one'),
|
|
@@ -318,7 +318,7 @@ export class Table extends BaseTable {
|
|
|
318
318
|
|
|
319
319
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
320
320
|
|
|
321
|
-
export class
|
|
321
|
+
export class TableTable extends BaseTable {
|
|
322
322
|
table = 'table';
|
|
323
323
|
columns = this.setColumns((t) => ({
|
|
324
324
|
changeCollate: t.text().collate('two'),
|
|
@@ -341,7 +341,7 @@ export class Table extends BaseTable {
|
|
|
341
341
|
describe('primaryKey', () => {
|
|
342
342
|
const result = `import { BaseTable } from '../baseTable';
|
|
343
343
|
|
|
344
|
-
export class
|
|
344
|
+
export class TableTable extends BaseTable {
|
|
345
345
|
table = 'table';
|
|
346
346
|
columns = this.setColumns((t) => ({
|
|
347
347
|
...t.primaryKey(['one', 'two'], { name: 'name' }),
|
|
@@ -360,7 +360,7 @@ export class Table extends BaseTable {
|
|
|
360
360
|
asMock(fs.readFile)
|
|
361
361
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
362
362
|
|
|
363
|
-
export class
|
|
363
|
+
export class TableTable extends BaseTable {
|
|
364
364
|
table = 'table';
|
|
365
365
|
columns = this.setColumns((t) => ({
|
|
366
366
|
...t.primaryKey(['foo', 'bar'], { name: 'baz' }),
|
|
@@ -382,7 +382,7 @@ export class Table extends BaseTable {
|
|
|
382
382
|
asMock(fs.readFile)
|
|
383
383
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
384
384
|
|
|
385
|
-
export class
|
|
385
|
+
export class TableTable extends BaseTable {
|
|
386
386
|
table = 'table';
|
|
387
387
|
columns = this.setColumns((t) => ({
|
|
388
388
|
}));
|
|
@@ -405,7 +405,7 @@ export class Table extends BaseTable {
|
|
|
405
405
|
asMock(fs.readFile)
|
|
406
406
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
407
407
|
|
|
408
|
-
export class
|
|
408
|
+
export class TableTable extends BaseTable {
|
|
409
409
|
table = 'table';
|
|
410
410
|
columns = this.setColumns((t) => ({
|
|
411
411
|
name: t.text().index({ order: 'one' }).index({ collate: 'en_US' })
|
|
@@ -428,7 +428,7 @@ export class Table extends BaseTable {
|
|
|
428
428
|
|
|
429
429
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
430
430
|
|
|
431
|
-
export class
|
|
431
|
+
export class TableTable extends BaseTable {
|
|
432
432
|
table = 'table';
|
|
433
433
|
columns = this.setColumns((t) => ({
|
|
434
434
|
name: t.text().index({
|
|
@@ -444,7 +444,7 @@ export class Table extends BaseTable {
|
|
|
444
444
|
asMock(fs.readFile)
|
|
445
445
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
446
446
|
|
|
447
|
-
export class
|
|
447
|
+
export class TableTable extends BaseTable {
|
|
448
448
|
table = 'table';
|
|
449
449
|
columns = this.setColumns((t) => ({
|
|
450
450
|
name: t.text(),
|
|
@@ -467,7 +467,7 @@ export class Table extends BaseTable {
|
|
|
467
467
|
|
|
468
468
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
469
469
|
|
|
470
|
-
export class
|
|
470
|
+
export class TableTable extends BaseTable {
|
|
471
471
|
table = 'table';
|
|
472
472
|
columns = this.setColumns((t) => ({
|
|
473
473
|
name: t.text().index({
|
|
@@ -481,7 +481,7 @@ export class Table extends BaseTable {
|
|
|
481
481
|
|
|
482
482
|
const result = `import { BaseTable } from '../baseTable';
|
|
483
483
|
|
|
484
|
-
export class
|
|
484
|
+
export class TableTable extends BaseTable {
|
|
485
485
|
table = 'table';
|
|
486
486
|
columns = this.setColumns((t) => ({
|
|
487
487
|
...t.index(['6']),
|
|
@@ -523,7 +523,7 @@ export class Table extends BaseTable {
|
|
|
523
523
|
asMock(fs.readFile)
|
|
524
524
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
525
525
|
|
|
526
|
-
export class
|
|
526
|
+
export class TableTable extends BaseTable {
|
|
527
527
|
table = 'table';
|
|
528
528
|
columns = this.setColumns((t) => ({
|
|
529
529
|
...t.index('1'),
|
|
@@ -564,7 +564,7 @@ export class Table extends BaseTable {
|
|
|
564
564
|
asMock(fs.readFile)
|
|
565
565
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
566
566
|
|
|
567
|
-
export class
|
|
567
|
+
export class TableTable extends BaseTable {
|
|
568
568
|
table = 'table';
|
|
569
569
|
columns = this.setColumns((t) => ({
|
|
570
570
|
}));
|
|
@@ -587,7 +587,7 @@ export class Table extends BaseTable {
|
|
|
587
587
|
asMock(fs.readFile)
|
|
588
588
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
589
589
|
|
|
590
|
-
export class
|
|
590
|
+
export class TableTable extends BaseTable {
|
|
591
591
|
table = 'table';
|
|
592
592
|
columns = this.setColumns((t) => ({
|
|
593
593
|
name: t.text().foreignKey('a', 'b').foreignKey('c', 'd')
|
|
@@ -620,7 +620,7 @@ export class Table extends BaseTable {
|
|
|
620
620
|
|
|
621
621
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
622
622
|
|
|
623
|
-
export class
|
|
623
|
+
export class TableTable extends BaseTable {
|
|
624
624
|
table = 'table';
|
|
625
625
|
columns = this.setColumns((t) => ({
|
|
626
626
|
name: t.text().foreignKey('e', 'f').foreignKey('g', 'h'),
|
|
@@ -632,7 +632,7 @@ export class Table extends BaseTable {
|
|
|
632
632
|
asMock(fs.readFile)
|
|
633
633
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
634
634
|
|
|
635
|
-
export class
|
|
635
|
+
export class TableTable extends BaseTable {
|
|
636
636
|
table = 'table';
|
|
637
637
|
columns = this.setColumns((t) => ({
|
|
638
638
|
name: t.text(),
|
|
@@ -660,7 +660,7 @@ export class Table extends BaseTable {
|
|
|
660
660
|
|
|
661
661
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
662
662
|
|
|
663
|
-
export class
|
|
663
|
+
export class TableTable extends BaseTable {
|
|
664
664
|
table = 'table';
|
|
665
665
|
columns = this.setColumns((t) => ({
|
|
666
666
|
name: t.text().foreignKey('e', 'f').foreignKey('g', 'h'),
|
|
@@ -670,7 +670,7 @@ export class Table extends BaseTable {
|
|
|
670
670
|
|
|
671
671
|
const result = `import { BaseTable } from '../baseTable';
|
|
672
672
|
|
|
673
|
-
export class
|
|
673
|
+
export class TableTable extends BaseTable {
|
|
674
674
|
table = 'table';
|
|
675
675
|
columns = this.setColumns((t) => ({
|
|
676
676
|
...t.foreignKey(
|
|
@@ -724,7 +724,7 @@ export class Table extends BaseTable {
|
|
|
724
724
|
asMock(fs.readFile)
|
|
725
725
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
726
726
|
|
|
727
|
-
export class
|
|
727
|
+
export class TableTable extends BaseTable {
|
|
728
728
|
table = 'table';
|
|
729
729
|
columns = this.setColumns((t) => ({
|
|
730
730
|
...t.foreignKey(
|
|
@@ -784,7 +784,7 @@ export class Table extends BaseTable {
|
|
|
784
784
|
asMock(fs.readFile)
|
|
785
785
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
786
786
|
|
|
787
|
-
export class
|
|
787
|
+
export class TableTable extends BaseTable {
|
|
788
788
|
table = 'table';
|
|
789
789
|
columns = this.setColumns((t) => ({
|
|
790
790
|
}));
|
|
@@ -41,7 +41,7 @@ export const changeTable = async ({
|
|
|
41
41
|
|
|
42
42
|
const changes = new FileChanges(content);
|
|
43
43
|
const statements = ts.getStatements(content);
|
|
44
|
-
const className = toPascalCase(ast.name);
|
|
44
|
+
const className = toPascalCase(ast.name) + 'Table';
|
|
45
45
|
|
|
46
46
|
for (const { t, object } of iterateColumnsShapes(statements, className)) {
|
|
47
47
|
const context = makeChangeContext(changes, ast, content, object, t);
|
|
@@ -25,7 +25,7 @@ const template = ({
|
|
|
25
25
|
noPrimaryKey?: boolean;
|
|
26
26
|
}) => `import { BaseTable } from '../baseTable';
|
|
27
27
|
|
|
28
|
-
export class
|
|
28
|
+
export class TableTable extends BaseTable {
|
|
29
29
|
${schema ? `schema = '${schema}';\n ` : ''}table = 'table';${
|
|
30
30
|
noPrimaryKey ? '\n noPrimaryKey = true;' : ''
|
|
31
31
|
}
|
|
@@ -125,4 +125,15 @@ describe('createTable', () => {
|
|
|
125
125
|
}),
|
|
126
126
|
);
|
|
127
127
|
});
|
|
128
|
+
|
|
129
|
+
it('should create file with wx flag', async () => {
|
|
130
|
+
asMock(fs.writeFile).mockRejectedValue(
|
|
131
|
+
Object.assign(new Error(), { code: 'EEXIST' }),
|
|
132
|
+
);
|
|
133
|
+
|
|
134
|
+
await updateTableFile({ ...params, ast: ast.addTable });
|
|
135
|
+
|
|
136
|
+
const [, , options] = asMock(fs.writeFile).mock.calls[0];
|
|
137
|
+
expect(options).toEqual({ flag: 'wx' });
|
|
138
|
+
});
|
|
128
139
|
});
|
|
@@ -33,11 +33,19 @@ export const createTable = async ({
|
|
|
33
33
|
|
|
34
34
|
const code: Code[] = [
|
|
35
35
|
`import { ${params.baseTableName} } from '${baseTablePath}';\n`,
|
|
36
|
-
`export class ${toPascalCase(ast.name)} extends ${
|
|
36
|
+
`export class ${toPascalCase(ast.name)}Table extends ${
|
|
37
|
+
params.baseTableName
|
|
38
|
+
} {`,
|
|
37
39
|
props,
|
|
38
40
|
'}\n',
|
|
39
41
|
];
|
|
40
42
|
|
|
41
43
|
await fs.mkdir(path.dirname(tablePath), { recursive: true });
|
|
42
|
-
|
|
44
|
+
try {
|
|
45
|
+
await fs.writeFile(tablePath, codeToString(code, '', ' '), { flag: 'wx' });
|
|
46
|
+
} catch (err) {
|
|
47
|
+
if ((err as unknown as { code: string }).code !== 'EEXIST') {
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
43
51
|
};
|
|
@@ -24,7 +24,7 @@ describe('renameTable', () => {
|
|
|
24
24
|
asMock(fs.readFile)
|
|
25
25
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
26
26
|
|
|
27
|
-
export class
|
|
27
|
+
export class TableTable extends BaseTable {
|
|
28
28
|
table = 'table';
|
|
29
29
|
columns = this.setColumns((t) => ({}));
|
|
30
30
|
}`);
|
|
@@ -36,7 +36,7 @@ export class Table extends BaseTable {
|
|
|
36
36
|
|
|
37
37
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
38
38
|
|
|
39
|
-
export class
|
|
39
|
+
export class TableTable extends BaseTable {
|
|
40
40
|
table = 'renamedTable';
|
|
41
41
|
columns = this.setColumns((t) => ({}));
|
|
42
42
|
}`);
|
|
@@ -46,7 +46,7 @@ export class Table extends BaseTable {
|
|
|
46
46
|
asMock(fs.readFile)
|
|
47
47
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
48
48
|
|
|
49
|
-
export class
|
|
49
|
+
export class TableTable extends BaseTable {
|
|
50
50
|
schema = 'one';
|
|
51
51
|
table = 'table';
|
|
52
52
|
columns = this.setColumns((t) => ({}));
|
|
@@ -63,7 +63,7 @@ export class Table extends BaseTable {
|
|
|
63
63
|
|
|
64
64
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
65
65
|
|
|
66
|
-
export class
|
|
66
|
+
export class TableTable extends BaseTable {
|
|
67
67
|
schema = 'two';
|
|
68
68
|
table = 'renamedTable';
|
|
69
69
|
columns = this.setColumns((t) => ({}));
|
|
@@ -74,7 +74,7 @@ export class Table extends BaseTable {
|
|
|
74
74
|
asMock(fs.readFile)
|
|
75
75
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
76
76
|
|
|
77
|
-
export class
|
|
77
|
+
export class TableTable extends BaseTable {
|
|
78
78
|
schema = 'one';
|
|
79
79
|
table = 'table';
|
|
80
80
|
columns = this.setColumns((t) => ({}));
|
|
@@ -90,7 +90,7 @@ export class Table extends BaseTable {
|
|
|
90
90
|
|
|
91
91
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
92
92
|
|
|
93
|
-
export class
|
|
93
|
+
export class TableTable extends BaseTable {
|
|
94
94
|
table = 'renamedTable';
|
|
95
95
|
columns = this.setColumns((t) => ({}));
|
|
96
96
|
}`);
|
|
@@ -100,7 +100,7 @@ export class Table extends BaseTable {
|
|
|
100
100
|
asMock(fs.readFile)
|
|
101
101
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
102
102
|
|
|
103
|
-
export class
|
|
103
|
+
export class TableTable extends BaseTable {
|
|
104
104
|
table = 'table';
|
|
105
105
|
columns = this.setColumns((t) => ({}));
|
|
106
106
|
}`);
|
|
@@ -115,7 +115,7 @@ export class Table extends BaseTable {
|
|
|
115
115
|
|
|
116
116
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
117
117
|
|
|
118
|
-
export class
|
|
118
|
+
export class TableTable extends BaseTable {
|
|
119
119
|
schema = 'schema';
|
|
120
120
|
table = 'renamedTable';
|
|
121
121
|
columns = this.setColumns((t) => ({}));
|
|
@@ -17,7 +17,7 @@ export const renameTable = async ({
|
|
|
17
17
|
|
|
18
18
|
const changes = new FileChanges(content);
|
|
19
19
|
const statements = ts.getStatements(content);
|
|
20
|
-
const className = toPascalCase(ast.from);
|
|
20
|
+
const className = toPascalCase(ast.from) + 'Table';
|
|
21
21
|
|
|
22
22
|
const changeSchema = ast.fromSchema !== ast.toSchema;
|
|
23
23
|
|