drizzle-kit 0.9.1 → 0.9.5

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.
Files changed (55) hide show
  1. package/drizzle.js +4 -0
  2. package/drizzle.js.map +1 -0
  3. package/package.json +5 -2
  4. package/.eslintrc +0 -21
  5. package/config.yml +0 -4
  6. package/data/_prev/multi.ts +0 -43
  7. package/data/_prev/tables/authOtpTable.ts +0 -22
  8. package/data/_prev/tables/cityTable.ts +0 -17
  9. package/data/_prev/tables/usersTable.ts +0 -18
  10. package/data/_prev/types/types.ts +0 -11
  11. package/data/v1/tables/authOtpTable.ts +0 -18
  12. package/data/v1/tables/deletedTable.ts +0 -9
  13. package/data/v1/tables/usersTable.ts +0 -15
  14. package/data/v1/types/types.ts +0 -6
  15. package/data/v2/tables/authOtpTable.ts +0 -22
  16. package/data/v2/tables/cityTable.ts +0 -10
  17. package/data/v2/tables/usersTable.ts +0 -19
  18. package/data/v2/types/types.ts +0 -11
  19. package/data/v3/tables/authOtpTable.ts +0 -21
  20. package/data/v3/tables/cityTable.ts +0 -17
  21. package/data/v3/tables/usersTable.ts +0 -18
  22. package/data/v3/types/types.ts +0 -11
  23. package/factory.ts +0 -224
  24. package/fstest.ts +0 -50
  25. package/index.ts +0 -16
  26. package/readme.md +0 -9
  27. package/serializer.ts +0 -139
  28. package/src/cli/commands/migration/index.tsx +0 -10
  29. package/src/cli/commands/migration/migrate/index.tsx +0 -164
  30. package/src/cli/components-api/ComponentsList.tsx +0 -20
  31. package/src/cli/components-api/CreateApp.tsx +0 -19
  32. package/src/cli/components-api/components/PromptColumnsConflicts.tsx +0 -171
  33. package/src/cli/components-api/components/PromptTablesConflicts.tsx +0 -180
  34. package/src/cli/components-api/components/Task.tsx +0 -85
  35. package/src/cli/components-api/index.tsx +0 -76
  36. package/src/cli/enq.ts +0 -41
  37. package/src/cli/index.tsx +0 -8
  38. package/src/cli/machines/resolveColumnsMachine.ts +0 -179
  39. package/src/cli/machines/resolveTablesMachine.ts +0 -169
  40. package/src/cli/utils/formatDataForTable.ts +0 -36
  41. package/src/cli/utils/valuesForPrompts.ts +0 -35
  42. package/src/diff.ts +0 -272
  43. package/src/differ.js +0 -135
  44. package/src/jsonStatements.js +0 -176
  45. package/src/migrationPreparator.ts +0 -47
  46. package/src/serilizer/factory.ts +0 -340
  47. package/src/serilizer/index.ts +0 -25
  48. package/src/simulator.ts +0 -85
  49. package/src/sqlgenerator.js +0 -373
  50. package/test-build.js +0 -26
  51. package/test.ts +0 -57
  52. package/testFactory.js +0 -3
  53. package/testFactory.ts +0 -26
  54. package/tsconfig.json +0 -28
  55. package/webpack.config.js +0 -53
@@ -1,340 +0,0 @@
1
- import ts from "typescript";
2
- import fs from "fs";
3
- const printer: ts.Printer = ts.createPrinter();
4
-
5
- const prepareFabricFile = (tablesFolder: string, typesFolder: string) => {
6
- const staticImports = [
7
- ts.createImportDeclaration(
8
- undefined,
9
- undefined,
10
- ts.createImportClause(
11
- undefined,
12
- ts.createNamedImports([
13
- ts.createImportSpecifier(
14
- undefined,
15
- ts.createIdentifier("AbstractTable"),
16
- ),
17
- ts.createImportSpecifier(undefined, ts.createIdentifier("DB")),
18
- ]),
19
- ),
20
- ts.createStringLiteral("drizzle-orm"),
21
- ),
22
- ts.createImportDeclaration(
23
- undefined,
24
- undefined,
25
- ts.createImportClause(ts.createIdentifier("Enum"), undefined),
26
- ts.createStringLiteral("drizzle-orm/types/type"),
27
- ),
28
- ts.createImportDeclaration(
29
- undefined,
30
- undefined,
31
- ts.createImportClause(
32
- undefined,
33
- ts.createNamedImports([
34
- ts.createImportSpecifier(undefined, ts.createIdentifier("Pool")),
35
- ]),
36
- ),
37
- ts.createStringLiteral("pg"),
38
- ),
39
- ts.createImportDeclaration(
40
- undefined,
41
- undefined,
42
- ts.createImportClause(ts.createIdentifier("Serializer"), undefined),
43
- ts.createStringLiteral("./serializer"),
44
- ),
45
- ];
46
-
47
- const dynamicImports = [];
48
- const tablesFilenames = fs.readdirSync(tablesFolder);
49
- for (let i = 0; i < tablesFilenames.length; i++) {
50
- const filename = tablesFilenames[i];
51
- const importPath = `${tablesFolder}${filename.split(".")[0]}`;
52
- dynamicImports.push(ts.createImportDeclaration(
53
- undefined,
54
- undefined,
55
- ts.createImportClause(
56
- undefined,
57
- ts.createNamespaceImport(ts.createIdentifier(`i${i}`)),
58
- ),
59
- ts.createStringLiteral(importPath),
60
- ));
61
- }
62
- const typesFilenames = fs.readdirSync(typesFolder);
63
- for (let i = 0; i < typesFilenames.length; i++) {
64
- const filename = typesFilenames[i];
65
- const importPath = `${typesFolder}${filename.split(".")[0]}`;
66
- dynamicImports.push(ts.createImportDeclaration(
67
- undefined,
68
- undefined,
69
- ts.createImportClause(
70
- undefined,
71
- ts.createNamespaceImport(ts.createIdentifier(`t${i}`)),
72
- ),
73
- ts.createStringLiteral(importPath),
74
- ));
75
- }
76
-
77
- const variablesStatements = [
78
- ts.createVariableStatement(
79
- undefined,
80
- ts.createVariableDeclarationList(
81
- [
82
- ts.createVariableDeclaration(
83
- ts.createIdentifier("db"),
84
- undefined,
85
- ts.createNew(ts.createIdentifier("DB"), undefined, [
86
- ts.createNew(ts.createIdentifier("Pool"), undefined, []),
87
- ]),
88
- ),
89
- ],
90
- ts.NodeFlags.Const,
91
- ),
92
- ),
93
- ts.createVariableStatement(
94
- undefined,
95
- ts.createVariableDeclarationList(
96
- [
97
- ts.createVariableDeclaration(
98
- ts.createIdentifier("serializer"),
99
- undefined,
100
- ts.createNew(ts.createIdentifier("Serializer"), undefined, []),
101
- ),
102
- ],
103
- ts.NodeFlags.Const,
104
- ),
105
- ),
106
- ];
107
-
108
- const blockStatements = [];
109
-
110
- // const tables = []
111
- blockStatements.push(ts.createVariableStatement(
112
- undefined,
113
- ts.createVariableDeclarationList(
114
- [
115
- ts.createVariableDeclaration(
116
- ts.createIdentifier("tables"),
117
- undefined,
118
- ts.createArrayLiteral([], false),
119
- ),
120
- ],
121
- ts.NodeFlags.Const,
122
- ),
123
- ));
124
-
125
- for (let i = 0; i < tablesFilenames.length; i++) {
126
- // const t1 = (new i1.default(db) as unknown as AbstractTable<any>);
127
- // tables.push(t1)
128
- const blockStatement = [
129
- ts.createVariableStatement(
130
- undefined,
131
- ts.createVariableDeclarationList(
132
- [
133
- ts.createVariableDeclaration(
134
- ts.createIdentifier("table" + i),
135
- undefined,
136
- ts.createParen(
137
- ts.createAsExpression(
138
- ts.createAsExpression(
139
- ts.createNew(
140
- ts.createPropertyAccess(
141
- ts.createIdentifier("i" + i),
142
- ts.createIdentifier("default"),
143
- ),
144
- undefined,
145
- [ts.createIdentifier("db")],
146
- ),
147
- ts.createKeywordTypeNode(
148
- ts.SyntaxKind.UnknownKeyword,
149
- ),
150
- ),
151
- ts.createTypeReferenceNode(
152
- ts.createIdentifier("AbstractTable"),
153
- [
154
- ts.createKeywordTypeNode(
155
- ts.SyntaxKind.AnyKeyword,
156
- ),
157
- ],
158
- ),
159
- ),
160
- ),
161
- ),
162
- ],
163
- ts.NodeFlags.Const,
164
- ),
165
- ),
166
- ts.createExpressionStatement(
167
- ts.createCall(
168
- ts.createPropertyAccess(
169
- ts.createIdentifier("tables"),
170
- ts.createIdentifier("push"),
171
- ),
172
- undefined,
173
- [ts.createIdentifier("table" + i)],
174
- ),
175
- ),
176
- ];
177
-
178
- blockStatements.push(...blockStatement);
179
- }
180
-
181
- // const enums = []
182
- blockStatements.push(ts.createVariableStatement(
183
- undefined,
184
- ts.createVariableDeclarationList(
185
- [
186
- ts.createVariableDeclaration(
187
- ts.createIdentifier("enums"),
188
- undefined,
189
- ts.createArrayLiteral([], false),
190
- ),
191
- ],
192
- ts.NodeFlags.Const,
193
- ),
194
- ));
195
-
196
- // Object.values(t0).forEach((t) => {
197
- // enums.push(t as Enum<any>);
198
- // });
199
- if (typesFilenames.length > 0) {
200
- blockStatements.push(
201
- ts.createExpressionStatement(
202
- ts.createCall(
203
- ts.createPropertyAccess(
204
- ts.createCall(
205
- ts.createPropertyAccess(
206
- ts.createIdentifier("Object"),
207
- ts.createIdentifier("values"),
208
- ),
209
- undefined,
210
- [ts.createIdentifier("t0")],
211
- ),
212
- ts.createIdentifier("forEach"),
213
- ),
214
- undefined,
215
- [
216
- ts.createArrowFunction(
217
- undefined,
218
- undefined,
219
- [
220
- ts.createParameter(
221
- undefined,
222
- undefined,
223
- undefined,
224
- ts.createIdentifier("t"),
225
- undefined,
226
- undefined,
227
- undefined,
228
- ),
229
- ],
230
- undefined,
231
- ts.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
232
- ts.createBlock(
233
- [
234
- ts.createExpressionStatement(
235
- ts.createCall(
236
- ts.createPropertyAccess(
237
- ts.createIdentifier("enums"),
238
- ts.createIdentifier("push"),
239
- ),
240
- undefined,
241
- [
242
- ts.createAsExpression(
243
- ts.createAsExpression(
244
- ts.createIdentifier("t"),
245
- ts.createKeywordTypeNode(
246
- ts.SyntaxKind.UnknownKeyword,
247
- ),
248
- ),
249
- ts.createTypeReferenceNode(
250
- ts.createIdentifier("Enum"),
251
- [
252
- ts.createKeywordTypeNode(
253
- ts.SyntaxKind.AnyKeyword,
254
- ),
255
- ],
256
- ),
257
- ),
258
- ],
259
- ),
260
- ),
261
- ],
262
- true,
263
- ),
264
- ),
265
- ],
266
- ),
267
- ),
268
- );
269
- }
270
-
271
- // return serializer.generate(tables, enums)
272
- blockStatements.push(
273
- ts.createReturn(
274
- ts.createCall(
275
- ts.createPropertyAccess(
276
- ts.createIdentifier("serializer"),
277
- ts.createIdentifier("generate"),
278
- ),
279
- undefined,
280
- [
281
- ts.createIdentifier("tables"),
282
- ts.createIdentifier("enums"),
283
- ],
284
- ),
285
- ),
286
- );
287
-
288
- const funcStatement = [
289
- ts.createVariableStatement(
290
- undefined,
291
- ts.createVariableDeclarationList(
292
- [
293
- ts.createVariableDeclaration(
294
- ts.createIdentifier("testFun"),
295
- undefined,
296
- ts.createArrowFunction(
297
- undefined,
298
- undefined,
299
- [],
300
- undefined,
301
- ts.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
302
- // function body
303
- ts.createBlock(
304
- blockStatements,
305
- true,
306
- ),
307
- ),
308
- ),
309
- ],
310
- ts.NodeFlags.Const,
311
- ),
312
- ),
313
- ];
314
- const invocationStatement = [
315
- ts.createExpressionStatement(
316
- ts.createCall(ts.createIdentifier("testFun"), undefined, []),
317
- ),
318
- ];
319
-
320
- const outFile: ts.SourceFile = ts.createSourceFile(
321
- "outfile.ts",
322
- "",
323
- ts.ScriptTarget.ES2015,
324
- true,
325
- ts.ScriptKind.TS,
326
- );
327
-
328
- const source = [];
329
- source.push(...staticImports);
330
- source.push(...dynamicImports);
331
- source.push(...variablesStatements);
332
- source.push(...funcStatement);
333
- source.push(...invocationStatement);
334
-
335
- const newFile = ts.factory.updateSourceFile(outFile, source);
336
-
337
- return printer.printFile(newFile);
338
- };
339
-
340
- export default prepareFabricFile;
@@ -1,25 +0,0 @@
1
- import fs from "fs";
2
- import { StringDecoder } from "string_decoder";
3
- import prepareFabricFile from "./factory";
4
- const esbuild = require("esbuild");
5
-
6
- const serialize = (pathToTables: string, pathToTypes: string): string => {
7
- const decoder = new StringDecoder();
8
- // const preparedFarbic = prepareFabricFile("./examples/tables/", './examples/types/')
9
- const preparedFarbic = prepareFabricFile(pathToTables, pathToTypes)
10
- const ts = preparedFarbic;
11
-
12
- fs.writeFileSync("__out.ts", ts, "utf-8");
13
- const result = esbuild.buildSync({
14
- entryPoints: ["__out.ts"],
15
- bundle: true,
16
- platform: "node",
17
- write: false,
18
- external: ["pg-native"],
19
- });
20
-
21
- fs.rmSync("__out.ts");
22
- return eval(decoder.write(result.outputFiles[0].contents));
23
- };
24
-
25
- export default serialize;
package/src/simulator.ts DELETED
@@ -1,85 +0,0 @@
1
- declare global {
2
- interface Array<T> {
3
- exactlyOne(): T;
4
- }
5
- }
6
-
7
- Array.prototype.exactlyOne = function () {
8
- if (this.length !== 1) {
9
- return undefined
10
- }
11
- return this[0]
12
- }
13
-
14
- interface Table {
15
- name: string,
16
- indexes?: any
17
- }
18
-
19
- interface Handler {
20
- can(added: Table[], removed: Table[]): boolean
21
- handle(added: Table[], removed: Table[]): { created: Table[], deleted: Table[], renamed: { from: Table, to: Table }[] }
22
- }
23
-
24
- class DryRun implements Handler {
25
- can(_: Table[], removed: Table[]): boolean {
26
- return removed.length === 0
27
- }
28
- handle(added: Table[], _: Table[]): { created: Table[]; deleted: Table[]; renamed: { from: Table; to: Table; }[]; } {
29
- return { created: added, deleted: [], renamed: [] }
30
- }
31
-
32
- }
33
-
34
- // class Fallback implements Handler {
35
- // can(_: Table[], __: Table[]): boolean {
36
- // return true
37
- // }
38
- // handle(added: Table[], _: Table[]): { created: Table[]; deleted: Table[]; renamed: { from: Table; to: Table; }[]; } {
39
- // return { created: added, deleted: , renamed: [] }
40
- // }
41
- // }
42
-
43
- class Case1 implements Handler {
44
- can(_: Table[], removed: Table[]): boolean {
45
- return removed.length === 1 && removed[0].name === 'citiess'
46
- }
47
-
48
- handle(added: Table[], removed: Table[]): { created: Table[]; deleted: Table[]; renamed: { from: Table; to: Table; }[]; } {
49
- return { created: added, deleted: [], renamed: [{ from: removed[0], to: added[0] }] }
50
- }
51
- }
52
-
53
- class Case2 implements Handler {
54
- // authOtp, deleted, users -> authOtp renamed, cities added, deleted deleted
55
- can(_: Table[], removed: Table[]): boolean {
56
- return removed.length === 2 && removed[0].name === 'auth_otp'
57
- }
58
-
59
- handle(added: Table[], removed: Table[]): { created: Table[]; deleted: Table[]; renamed: { from: Table; to: Table; }[]; } {
60
- return { created: added.slice(1), deleted: removed.slice(1), renamed: [{ from: removed[0], to: added[0] }] }
61
- }
62
- }
63
-
64
- const handlers: Handler[] = []
65
- handlers.push(new Case1())
66
- handlers.push(new Case2())
67
- handlers.push(new DryRun())
68
-
69
-
70
- const resolveTables = (added: Table[], removed: Table[]) => {
71
- const handler = handlers.filter(it => {
72
- return it.can(added, removed)
73
- }).exactlyOne()
74
-
75
- if (!handler) {
76
- console.log('added', added.map(it => it.name).join())
77
- console.log('removed', removed.map(it => it.name).join())
78
- throw new Error("No handler");
79
- }
80
-
81
- console.log(`Simluated by ${handler.constructor.name}`)
82
- return handler.handle(added, removed)
83
- }
84
-
85
- export default resolveTables;