orchid-orm 1.5.14 → 1.5.16
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 +12 -0
- package/dist/bin.js +50 -28
- package/dist/bin.js.map +1 -1
- package/dist/index.js +13 -7
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +13 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/bin/init.test.ts +57 -45
- package/src/bin/init.ts +56 -30
- package/src/codegen/testUtils.ts +6 -5
- package/src/codegen/updateMainFile.test.ts +16 -16
- package/src/codegen/updateMainFile.ts +2 -2
- package/src/codegen/updateTableFile/changeTable.test.ts +72 -72
- package/src/codegen/updateTableFile/changeTable.ts +1 -1
- package/src/codegen/updateTableFile/createTable.test.ts +17 -6
- package/src/codegen/updateTableFile/createTable.ts +10 -2
- package/src/codegen/updateTableFile/renameTable.test.ts +17 -17
- package/src/codegen/updateTableFile/renameTable.ts +2 -2
|
@@ -16,7 +16,7 @@ const baseTableName = 'BaseTable';
|
|
|
16
16
|
const params = { baseTablePath, baseTableName, tablePath };
|
|
17
17
|
const t = columnTypes;
|
|
18
18
|
|
|
19
|
-
const testWritten = makeTestWritten(tablePath('
|
|
19
|
+
const testWritten = makeTestWritten(tablePath('some'));
|
|
20
20
|
|
|
21
21
|
const tableData = newTableData();
|
|
22
22
|
|
|
@@ -30,7 +30,7 @@ const change = (
|
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
class Table {
|
|
33
|
-
table = '
|
|
33
|
+
table = 'some';
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
describe('updateTableFile', () => {
|
|
@@ -42,8 +42,8 @@ describe('updateTableFile', () => {
|
|
|
42
42
|
asMock(fs.readFile)
|
|
43
43
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
44
44
|
|
|
45
|
-
export class
|
|
46
|
-
table = '
|
|
45
|
+
export class SomeTable extends BaseTable {
|
|
46
|
+
table = 'some';
|
|
47
47
|
columns = this.setColumns((t) => ({}));
|
|
48
48
|
}`);
|
|
49
49
|
|
|
@@ -59,8 +59,8 @@ export class Table extends BaseTable {
|
|
|
59
59
|
|
|
60
60
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
61
61
|
|
|
62
|
-
export class
|
|
63
|
-
table = '
|
|
62
|
+
export class SomeTable extends BaseTable {
|
|
63
|
+
table = 'some';
|
|
64
64
|
columns = this.setColumns((t) => ({
|
|
65
65
|
name: t.text(1, 10),
|
|
66
66
|
}));
|
|
@@ -71,8 +71,8 @@ export class Table extends BaseTable {
|
|
|
71
71
|
asMock(fs.readFile)
|
|
72
72
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
73
73
|
|
|
74
|
-
export class
|
|
75
|
-
table = '
|
|
74
|
+
export class SomeTable extends BaseTable {
|
|
75
|
+
table = 'some';
|
|
76
76
|
columns = this.setColumns((t) => ({
|
|
77
77
|
id: t.serial().primaryKey(),
|
|
78
78
|
}));
|
|
@@ -90,8 +90,8 @@ export class Table extends BaseTable {
|
|
|
90
90
|
|
|
91
91
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
92
92
|
|
|
93
|
-
export class
|
|
94
|
-
table = '
|
|
93
|
+
export class SomeTable extends BaseTable {
|
|
94
|
+
table = 'some';
|
|
95
95
|
columns = this.setColumns((t) => ({
|
|
96
96
|
id: t.serial().primaryKey(),
|
|
97
97
|
name: t.text(1, 10),
|
|
@@ -103,8 +103,8 @@ export class Table extends BaseTable {
|
|
|
103
103
|
asMock(fs.readFile)
|
|
104
104
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
105
105
|
|
|
106
|
-
export class
|
|
107
|
-
table = '
|
|
106
|
+
export class SomeTable extends BaseTable {
|
|
107
|
+
table = 'some';
|
|
108
108
|
columns = this.setColumns((t) => ({
|
|
109
109
|
id: t.serial().primaryKey(),
|
|
110
110
|
}));
|
|
@@ -123,8 +123,8 @@ export class Table extends BaseTable {
|
|
|
123
123
|
|
|
124
124
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
125
125
|
|
|
126
|
-
export class
|
|
127
|
-
table = '
|
|
126
|
+
export class SomeTable extends BaseTable {
|
|
127
|
+
table = 'some';
|
|
128
128
|
columns = this.setColumns((t) => ({
|
|
129
129
|
id: t.serial().primaryKey(),
|
|
130
130
|
name: t.text(1, 10),
|
|
@@ -137,8 +137,8 @@ export class Table extends BaseTable {
|
|
|
137
137
|
asMock(fs.readFile)
|
|
138
138
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
139
139
|
|
|
140
|
-
export class
|
|
141
|
-
table = '
|
|
140
|
+
export class SomeTable extends BaseTable {
|
|
141
|
+
table = 'some';
|
|
142
142
|
columns = this.setColumns((t) => ({
|
|
143
143
|
id: t.serial().primaryKey()
|
|
144
144
|
}));
|
|
@@ -157,8 +157,8 @@ export class Table extends BaseTable {
|
|
|
157
157
|
|
|
158
158
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
159
159
|
|
|
160
|
-
export class
|
|
161
|
-
table = '
|
|
160
|
+
export class SomeTable extends BaseTable {
|
|
161
|
+
table = 'some';
|
|
162
162
|
columns = this.setColumns((t) => ({
|
|
163
163
|
id: t.serial().primaryKey(),
|
|
164
164
|
name: t.text(1, 10),
|
|
@@ -171,8 +171,8 @@ export class Table extends BaseTable {
|
|
|
171
171
|
asMock(fs.readFile)
|
|
172
172
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
173
173
|
|
|
174
|
-
export class
|
|
175
|
-
table = '
|
|
174
|
+
export class SomeTable extends BaseTable {
|
|
175
|
+
table = 'some';
|
|
176
176
|
columns = this.setColumns((t) => ({
|
|
177
177
|
id: t.serial().primaryKey(),
|
|
178
178
|
name: t.text(),
|
|
@@ -192,8 +192,8 @@ export class Table extends BaseTable {
|
|
|
192
192
|
|
|
193
193
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
194
194
|
|
|
195
|
-
export class
|
|
196
|
-
table = '
|
|
195
|
+
export class SomeTable extends BaseTable {
|
|
196
|
+
table = 'some';
|
|
197
197
|
columns = this.setColumns((t) => ({
|
|
198
198
|
id: t.serial().primaryKey(),
|
|
199
199
|
active: t.boolean(),
|
|
@@ -205,8 +205,8 @@ export class Table extends BaseTable {
|
|
|
205
205
|
asMock(fs.readFile)
|
|
206
206
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
207
207
|
|
|
208
|
-
export class
|
|
209
|
-
table = '
|
|
208
|
+
export class SomeTable extends BaseTable {
|
|
209
|
+
table = 'some';
|
|
210
210
|
columns = this.setColumns((t) => ({
|
|
211
211
|
id: t.serial().primaryKey(),
|
|
212
212
|
name: t.text(),
|
|
@@ -225,8 +225,8 @@ export class Table extends BaseTable {
|
|
|
225
225
|
|
|
226
226
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
227
227
|
|
|
228
|
-
export class
|
|
229
|
-
table = '
|
|
228
|
+
export class SomeTable extends BaseTable {
|
|
229
|
+
table = 'some';
|
|
230
230
|
columns = this.setColumns((t) => ({
|
|
231
231
|
id: t.serial().primaryKey(),
|
|
232
232
|
}));
|
|
@@ -237,8 +237,8 @@ export class Table extends BaseTable {
|
|
|
237
237
|
asMock(fs.readFile)
|
|
238
238
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
239
239
|
|
|
240
|
-
export class
|
|
241
|
-
table = '
|
|
240
|
+
export class SomeTable extends BaseTable {
|
|
241
|
+
table = 'some';
|
|
242
242
|
columns = this.setColumns((t) => ({
|
|
243
243
|
name: t.integer(),
|
|
244
244
|
}));
|
|
@@ -263,8 +263,8 @@ export class Table extends BaseTable {
|
|
|
263
263
|
|
|
264
264
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
265
265
|
|
|
266
|
-
export class
|
|
267
|
-
table = '
|
|
266
|
+
export class SomeTable extends BaseTable {
|
|
267
|
+
table = 'some';
|
|
268
268
|
columns = this.setColumns((t) => ({
|
|
269
269
|
name: t.text(1, 10),
|
|
270
270
|
}));
|
|
@@ -275,8 +275,8 @@ export class Table extends BaseTable {
|
|
|
275
275
|
asMock(fs.readFile)
|
|
276
276
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
277
277
|
|
|
278
|
-
export class
|
|
279
|
-
table = '
|
|
278
|
+
export class SomeTable extends BaseTable {
|
|
279
|
+
table = 'some';
|
|
280
280
|
columns = this.setColumns((t) => ({
|
|
281
281
|
changeCollate: t.text().collate('one'),
|
|
282
282
|
addCollate: t.text(),
|
|
@@ -318,8 +318,8 @@ export class Table extends BaseTable {
|
|
|
318
318
|
|
|
319
319
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
320
320
|
|
|
321
|
-
export class
|
|
322
|
-
table = '
|
|
321
|
+
export class SomeTable extends BaseTable {
|
|
322
|
+
table = 'some';
|
|
323
323
|
columns = this.setColumns((t) => ({
|
|
324
324
|
changeCollate: t.text().collate('two'),
|
|
325
325
|
addCollate: t.text().collate('two'),
|
|
@@ -341,8 +341,8 @@ export class Table extends BaseTable {
|
|
|
341
341
|
describe('primaryKey', () => {
|
|
342
342
|
const result = `import { BaseTable } from '../baseTable';
|
|
343
343
|
|
|
344
|
-
export class
|
|
345
|
-
table = '
|
|
344
|
+
export class SomeTable extends BaseTable {
|
|
345
|
+
table = 'some';
|
|
346
346
|
columns = this.setColumns((t) => ({
|
|
347
347
|
...t.primaryKey(['one', 'two'], { name: 'name' }),
|
|
348
348
|
}));
|
|
@@ -360,8 +360,8 @@ export class Table extends BaseTable {
|
|
|
360
360
|
asMock(fs.readFile)
|
|
361
361
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
362
362
|
|
|
363
|
-
export class
|
|
364
|
-
table = '
|
|
363
|
+
export class SomeTable extends BaseTable {
|
|
364
|
+
table = 'some';
|
|
365
365
|
columns = this.setColumns((t) => ({
|
|
366
366
|
...t.primaryKey(['foo', 'bar'], { name: 'baz' }),
|
|
367
367
|
}));
|
|
@@ -382,8 +382,8 @@ export class Table extends BaseTable {
|
|
|
382
382
|
asMock(fs.readFile)
|
|
383
383
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
384
384
|
|
|
385
|
-
export class
|
|
386
|
-
table = '
|
|
385
|
+
export class SomeTable extends BaseTable {
|
|
386
|
+
table = 'some';
|
|
387
387
|
columns = this.setColumns((t) => ({
|
|
388
388
|
}));
|
|
389
389
|
}`);
|
|
@@ -405,8 +405,8 @@ export class Table extends BaseTable {
|
|
|
405
405
|
asMock(fs.readFile)
|
|
406
406
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
407
407
|
|
|
408
|
-
export class
|
|
409
|
-
table = '
|
|
408
|
+
export class SomeTable extends BaseTable {
|
|
409
|
+
table = 'some';
|
|
410
410
|
columns = this.setColumns((t) => ({
|
|
411
411
|
name: t.text().index({ order: 'one' }).index({ collate: 'en_US' })
|
|
412
412
|
}));
|
|
@@ -428,8 +428,8 @@ export class Table extends BaseTable {
|
|
|
428
428
|
|
|
429
429
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
430
430
|
|
|
431
|
-
export class
|
|
432
|
-
table = '
|
|
431
|
+
export class SomeTable extends BaseTable {
|
|
432
|
+
table = 'some';
|
|
433
433
|
columns = this.setColumns((t) => ({
|
|
434
434
|
name: t.text().index({
|
|
435
435
|
order: 'two',
|
|
@@ -444,8 +444,8 @@ export class Table extends BaseTable {
|
|
|
444
444
|
asMock(fs.readFile)
|
|
445
445
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
446
446
|
|
|
447
|
-
export class
|
|
448
|
-
table = '
|
|
447
|
+
export class SomeTable extends BaseTable {
|
|
448
|
+
table = 'some';
|
|
449
449
|
columns = this.setColumns((t) => ({
|
|
450
450
|
name: t.text(),
|
|
451
451
|
}));
|
|
@@ -467,8 +467,8 @@ export class Table extends BaseTable {
|
|
|
467
467
|
|
|
468
468
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
469
469
|
|
|
470
|
-
export class
|
|
471
|
-
table = '
|
|
470
|
+
export class SomeTable extends BaseTable {
|
|
471
|
+
table = 'some';
|
|
472
472
|
columns = this.setColumns((t) => ({
|
|
473
473
|
name: t.text().index({
|
|
474
474
|
order: 'two',
|
|
@@ -481,8 +481,8 @@ export class Table extends BaseTable {
|
|
|
481
481
|
|
|
482
482
|
const result = `import { BaseTable } from '../baseTable';
|
|
483
483
|
|
|
484
|
-
export class
|
|
485
|
-
table = '
|
|
484
|
+
export class SomeTable extends BaseTable {
|
|
485
|
+
table = 'some';
|
|
486
486
|
columns = this.setColumns((t) => ({
|
|
487
487
|
...t.index(['6']),
|
|
488
488
|
...t.index(['7', '8']),
|
|
@@ -523,8 +523,8 @@ export class Table extends BaseTable {
|
|
|
523
523
|
asMock(fs.readFile)
|
|
524
524
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
525
525
|
|
|
526
|
-
export class
|
|
527
|
-
table = '
|
|
526
|
+
export class SomeTable extends BaseTable {
|
|
527
|
+
table = 'some';
|
|
528
528
|
columns = this.setColumns((t) => ({
|
|
529
529
|
...t.index('1'),
|
|
530
530
|
...t.index(['2', '3']),
|
|
@@ -564,8 +564,8 @@ export class Table extends BaseTable {
|
|
|
564
564
|
asMock(fs.readFile)
|
|
565
565
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
566
566
|
|
|
567
|
-
export class
|
|
568
|
-
table = '
|
|
567
|
+
export class SomeTable extends BaseTable {
|
|
568
|
+
table = 'some';
|
|
569
569
|
columns = this.setColumns((t) => ({
|
|
570
570
|
}));
|
|
571
571
|
}`);
|
|
@@ -587,8 +587,8 @@ export class Table extends BaseTable {
|
|
|
587
587
|
asMock(fs.readFile)
|
|
588
588
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
589
589
|
|
|
590
|
-
export class
|
|
591
|
-
table = '
|
|
590
|
+
export class SomeTable extends BaseTable {
|
|
591
|
+
table = 'some';
|
|
592
592
|
columns = this.setColumns((t) => ({
|
|
593
593
|
name: t.text().foreignKey('a', 'b').foreignKey('c', 'd')
|
|
594
594
|
}));
|
|
@@ -620,8 +620,8 @@ export class Table extends BaseTable {
|
|
|
620
620
|
|
|
621
621
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
622
622
|
|
|
623
|
-
export class
|
|
624
|
-
table = '
|
|
623
|
+
export class SomeTable extends BaseTable {
|
|
624
|
+
table = 'some';
|
|
625
625
|
columns = this.setColumns((t) => ({
|
|
626
626
|
name: t.text().foreignKey('e', 'f').foreignKey('g', 'h'),
|
|
627
627
|
}));
|
|
@@ -632,8 +632,8 @@ export class Table extends BaseTable {
|
|
|
632
632
|
asMock(fs.readFile)
|
|
633
633
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
634
634
|
|
|
635
|
-
export class
|
|
636
|
-
table = '
|
|
635
|
+
export class SomeTable extends BaseTable {
|
|
636
|
+
table = 'some';
|
|
637
637
|
columns = this.setColumns((t) => ({
|
|
638
638
|
name: t.text(),
|
|
639
639
|
}));
|
|
@@ -660,8 +660,8 @@ export class Table extends BaseTable {
|
|
|
660
660
|
|
|
661
661
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
662
662
|
|
|
663
|
-
export class
|
|
664
|
-
table = '
|
|
663
|
+
export class SomeTable extends BaseTable {
|
|
664
|
+
table = 'some';
|
|
665
665
|
columns = this.setColumns((t) => ({
|
|
666
666
|
name: t.text().foreignKey('e', 'f').foreignKey('g', 'h'),
|
|
667
667
|
}));
|
|
@@ -670,12 +670,12 @@ export class Table extends BaseTable {
|
|
|
670
670
|
|
|
671
671
|
const result = `import { BaseTable } from '../baseTable';
|
|
672
672
|
|
|
673
|
-
export class
|
|
674
|
-
table = '
|
|
673
|
+
export class SomeTable extends BaseTable {
|
|
674
|
+
table = 'some';
|
|
675
675
|
columns = this.setColumns((t) => ({
|
|
676
676
|
...t.foreignKey(
|
|
677
677
|
['7'],
|
|
678
|
-
'
|
|
678
|
+
'some',
|
|
679
679
|
['8'],
|
|
680
680
|
{
|
|
681
681
|
name: 'first',
|
|
@@ -700,7 +700,7 @@ export class Table extends BaseTable {
|
|
|
700
700
|
foreignKeys: [
|
|
701
701
|
{
|
|
702
702
|
columns: ['7'],
|
|
703
|
-
fnOrTable: '
|
|
703
|
+
fnOrTable: 'some',
|
|
704
704
|
foreignColumns: ['8'],
|
|
705
705
|
options: {
|
|
706
706
|
name: 'first',
|
|
@@ -724,8 +724,8 @@ export class Table extends BaseTable {
|
|
|
724
724
|
asMock(fs.readFile)
|
|
725
725
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
726
726
|
|
|
727
|
-
export class
|
|
728
|
-
table = '
|
|
727
|
+
export class SomeTable extends BaseTable {
|
|
728
|
+
table = 'some';
|
|
729
729
|
columns = this.setColumns((t) => ({
|
|
730
730
|
...t.foreignKey(
|
|
731
731
|
['1'],
|
|
@@ -734,7 +734,7 @@ export class Table extends BaseTable {
|
|
|
734
734
|
),
|
|
735
735
|
...t.foreignKey(
|
|
736
736
|
['3', '4'],
|
|
737
|
-
'
|
|
737
|
+
'some',
|
|
738
738
|
['5', '6'],
|
|
739
739
|
{
|
|
740
740
|
name: 'foreignKeyName',
|
|
@@ -761,7 +761,7 @@ export class Table extends BaseTable {
|
|
|
761
761
|
},
|
|
762
762
|
{
|
|
763
763
|
columns: ['3', '4'],
|
|
764
|
-
fnOrTable: '
|
|
764
|
+
fnOrTable: 'some',
|
|
765
765
|
foreignColumns: ['5', '6'],
|
|
766
766
|
options: {
|
|
767
767
|
name: 'foreignKeyName',
|
|
@@ -784,8 +784,8 @@ export class Table extends BaseTable {
|
|
|
784
784
|
asMock(fs.readFile)
|
|
785
785
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
786
786
|
|
|
787
|
-
export class
|
|
788
|
-
table = '
|
|
787
|
+
export class SomeTable extends BaseTable {
|
|
788
|
+
table = 'some';
|
|
789
789
|
columns = this.setColumns((t) => ({
|
|
790
790
|
}));
|
|
791
791
|
}`);
|
|
@@ -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);
|
|
@@ -13,7 +13,7 @@ const baseTablePath = path.resolve('baseTable.ts');
|
|
|
13
13
|
const baseTableName = 'BaseTable';
|
|
14
14
|
const params = { baseTablePath, baseTableName, tablePath };
|
|
15
15
|
|
|
16
|
-
const testWritten = makeTestWritten(tablePath('
|
|
16
|
+
const testWritten = makeTestWritten(tablePath('some'));
|
|
17
17
|
|
|
18
18
|
const template = ({
|
|
19
19
|
schema,
|
|
@@ -25,8 +25,8 @@ const template = ({
|
|
|
25
25
|
noPrimaryKey?: boolean;
|
|
26
26
|
}) => `import { BaseTable } from '../baseTable';
|
|
27
27
|
|
|
28
|
-
export class
|
|
29
|
-
${schema ? `schema = '${schema}';\n ` : ''}table = '
|
|
28
|
+
export class SomeTable extends BaseTable {
|
|
29
|
+
${schema ? `schema = '${schema}';\n ` : ''}table = 'some';${
|
|
30
30
|
noPrimaryKey ? '\n noPrimaryKey = true;' : ''
|
|
31
31
|
}
|
|
32
32
|
columns = this.setColumns((t) => (${columns}));
|
|
@@ -48,7 +48,7 @@ describe('createTable', () => {
|
|
|
48
48
|
},
|
|
49
49
|
});
|
|
50
50
|
|
|
51
|
-
expect(asMock(fs.mkdir)).toBeCalledWith(path.dirname(tablePath('
|
|
51
|
+
expect(asMock(fs.mkdir)).toBeCalledWith(path.dirname(tablePath('some')), {
|
|
52
52
|
recursive: true,
|
|
53
53
|
});
|
|
54
54
|
|
|
@@ -80,7 +80,7 @@ describe('createTable', () => {
|
|
|
80
80
|
foreignKeys: [
|
|
81
81
|
{
|
|
82
82
|
columns: ['one', 'two'],
|
|
83
|
-
fnOrTable: '
|
|
83
|
+
fnOrTable: 'some',
|
|
84
84
|
foreignColumns: ['three', 'four'],
|
|
85
85
|
options: { name: 'foreignKeyName' },
|
|
86
86
|
},
|
|
@@ -99,7 +99,7 @@ describe('createTable', () => {
|
|
|
99
99
|
}),
|
|
100
100
|
...t.foreignKey(
|
|
101
101
|
['one', 'two'],
|
|
102
|
-
'
|
|
102
|
+
'some',
|
|
103
103
|
['three', 'four'],
|
|
104
104
|
{
|
|
105
105
|
name: 'foreignKeyName',
|
|
@@ -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
|
};
|
|
@@ -13,7 +13,7 @@ const baseTablePath = path.resolve('baseTable.ts');
|
|
|
13
13
|
const baseTableName = 'BaseTable';
|
|
14
14
|
const params = { baseTablePath, baseTableName, tablePath };
|
|
15
15
|
|
|
16
|
-
const testWritten = makeTestWritten(tablePath('
|
|
16
|
+
const testWritten = makeTestWritten(tablePath('some'));
|
|
17
17
|
|
|
18
18
|
describe('renameTable', () => {
|
|
19
19
|
beforeEach(() => {
|
|
@@ -24,8 +24,8 @@ describe('renameTable', () => {
|
|
|
24
24
|
asMock(fs.readFile)
|
|
25
25
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
26
26
|
|
|
27
|
-
export class
|
|
28
|
-
table = '
|
|
27
|
+
export class SomeTable extends BaseTable {
|
|
28
|
+
table = 'some';
|
|
29
29
|
columns = this.setColumns((t) => ({}));
|
|
30
30
|
}`);
|
|
31
31
|
|
|
@@ -36,8 +36,8 @@ export class Table extends BaseTable {
|
|
|
36
36
|
|
|
37
37
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
38
38
|
|
|
39
|
-
export class
|
|
40
|
-
table = '
|
|
39
|
+
export class SomeTable extends BaseTable {
|
|
40
|
+
table = 'another';
|
|
41
41
|
columns = this.setColumns((t) => ({}));
|
|
42
42
|
}`);
|
|
43
43
|
});
|
|
@@ -46,9 +46,9 @@ 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 SomeTable extends BaseTable {
|
|
50
50
|
schema = 'one';
|
|
51
|
-
table = '
|
|
51
|
+
table = 'some';
|
|
52
52
|
columns = this.setColumns((t) => ({}));
|
|
53
53
|
}`);
|
|
54
54
|
|
|
@@ -63,9 +63,9 @@ export class Table extends BaseTable {
|
|
|
63
63
|
|
|
64
64
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
65
65
|
|
|
66
|
-
export class
|
|
66
|
+
export class SomeTable extends BaseTable {
|
|
67
67
|
schema = 'two';
|
|
68
|
-
table = '
|
|
68
|
+
table = 'another';
|
|
69
69
|
columns = this.setColumns((t) => ({}));
|
|
70
70
|
}`);
|
|
71
71
|
});
|
|
@@ -74,9 +74,9 @@ 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 SomeTable extends BaseTable {
|
|
78
78
|
schema = 'one';
|
|
79
|
-
table = '
|
|
79
|
+
table = 'some';
|
|
80
80
|
columns = this.setColumns((t) => ({}));
|
|
81
81
|
}`);
|
|
82
82
|
|
|
@@ -90,8 +90,8 @@ export class Table extends BaseTable {
|
|
|
90
90
|
|
|
91
91
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
92
92
|
|
|
93
|
-
export class
|
|
94
|
-
table = '
|
|
93
|
+
export class SomeTable extends BaseTable {
|
|
94
|
+
table = 'another';
|
|
95
95
|
columns = this.setColumns((t) => ({}));
|
|
96
96
|
}`);
|
|
97
97
|
});
|
|
@@ -100,8 +100,8 @@ export class Table extends BaseTable {
|
|
|
100
100
|
asMock(fs.readFile)
|
|
101
101
|
.mockResolvedValue(`import { BaseTable } from '../baseTable';
|
|
102
102
|
|
|
103
|
-
export class
|
|
104
|
-
table = '
|
|
103
|
+
export class SomeTable extends BaseTable {
|
|
104
|
+
table = 'some';
|
|
105
105
|
columns = this.setColumns((t) => ({}));
|
|
106
106
|
}`);
|
|
107
107
|
|
|
@@ -115,9 +115,9 @@ export class Table extends BaseTable {
|
|
|
115
115
|
|
|
116
116
|
testWritten(`import { BaseTable } from '../baseTable';
|
|
117
117
|
|
|
118
|
-
export class
|
|
118
|
+
export class SomeTable extends BaseTable {
|
|
119
119
|
schema = 'schema';
|
|
120
|
-
table = '
|
|
120
|
+
table = 'another';
|
|
121
121
|
columns = this.setColumns((t) => ({}));
|
|
122
122
|
}`);
|
|
123
123
|
});
|
|
@@ -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
|
|
|
@@ -63,5 +63,5 @@ export const renameTable = async ({
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
await fs.writeFile(
|
|
66
|
+
await fs.writeFile(tablePath, changes.apply());
|
|
67
67
|
};
|