drizzle-kit 0.9.0 → 0.9.1

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 (60) hide show
  1. package/.eslintrc +3 -1
  2. package/config.yml +4 -0
  3. package/data/_prev/multi.ts +43 -0
  4. package/{examples → data/_prev}/tables/authOtpTable.ts +3 -3
  5. package/{examples → data/_prev}/tables/cityTable.ts +3 -3
  6. package/{examples → data/_prev}/tables/usersTable.ts +1 -1
  7. package/data/_prev/types/types.ts +11 -0
  8. package/data/v1/tables/authOtpTable.ts +18 -0
  9. package/data/v1/tables/deletedTable.ts +9 -0
  10. package/data/v1/tables/usersTable.ts +15 -0
  11. package/data/v1/types/types.ts +6 -0
  12. package/data/v2/tables/authOtpTable.ts +22 -0
  13. package/data/v2/tables/cityTable.ts +10 -0
  14. package/data/v2/tables/usersTable.ts +19 -0
  15. package/data/v2/types/types.ts +11 -0
  16. package/data/v3/tables/authOtpTable.ts +21 -0
  17. package/data/v3/tables/cityTable.ts +17 -0
  18. package/data/v3/tables/usersTable.ts +18 -0
  19. package/data/v3/types/types.ts +11 -0
  20. package/factory.ts +224 -0
  21. package/fstest.ts +50 -0
  22. package/index.ts +16 -0
  23. package/package.json +34 -13
  24. package/readme.md +9 -0
  25. package/serializer.ts +139 -0
  26. package/src/cli/commands/migration/index.tsx +1 -1
  27. package/src/cli/commands/migration/migrate/index.tsx +155 -17
  28. package/src/cli/components-api/ComponentsList.tsx +20 -0
  29. package/src/cli/components-api/CreateApp.tsx +19 -0
  30. package/src/cli/components-api/components/PromptColumnsConflicts.tsx +171 -0
  31. package/src/cli/components-api/components/PromptTablesConflicts.tsx +180 -0
  32. package/src/cli/components-api/components/Task.tsx +85 -0
  33. package/src/cli/components-api/index.tsx +76 -0
  34. package/src/cli/enq.ts +41 -0
  35. package/src/cli/machines/resolveColumnsMachine.ts +179 -0
  36. package/src/cli/machines/resolveTablesMachine.ts +169 -0
  37. package/src/cli/utils/formatDataForTable.ts +36 -0
  38. package/src/cli/utils/valuesForPrompts.ts +35 -0
  39. package/src/diff.ts +272 -0
  40. package/src/differ.js +135 -0
  41. package/src/jsonStatements.js +176 -0
  42. package/src/migrationPreparator.ts +47 -0
  43. package/src/serilizer/factory.ts +340 -0
  44. package/src/serilizer/index.ts +25 -0
  45. package/src/simulator.ts +85 -0
  46. package/src/sqlgenerator.js +373 -0
  47. package/test-build.js +26 -0
  48. package/test.ts +57 -0
  49. package/testFactory.js +3 -0
  50. package/testFactory.ts +26 -0
  51. package/tsconfig.json +1 -1
  52. package/webpack.config.js +42 -45
  53. package/result.json +0 -207
  54. package/src/cli/commands/migration/migrate/components/Progress/index.tsx +0 -98
  55. package/src/cli/commands/migration/migrate/components/Prompts/index.tsx +0 -37
  56. package/src/cli/commands/migration/migrate/components/index.tsx +0 -132
  57. package/src/common/components/Prompt.tsx +0 -106
  58. package/src/common/components/SelectTable.tsx +0 -134
  59. package/src/index.ts +0 -10
  60. package/src/serializer.ts +0 -135
package/src/index.ts DELETED
@@ -1,10 +0,0 @@
1
- import * as fs from 'fs';
2
- import Serializer from './serializer';
3
-
4
- const serializer = new Serializer();
5
-
6
- const main = () => {
7
- const resutl = serializer.generate();
8
- fs.writeFileSync('result.json', JSON.stringify(resutl, null, 2));
9
- };
10
- main();
package/src/serializer.ts DELETED
@@ -1,135 +0,0 @@
1
- /* eslint-disable no-restricted-syntax */
2
- /* eslint-disable new-cap */
3
- /* eslint-disable global-require */
4
- /* eslint-disable import/no-dynamic-require */
5
- import { AbstractTable, Column, DB } from '@lambda-team/ltdl';
6
- import ColumnType from '@lambda-team/ltdl/columns/types/columnType';
7
- import PgEnum from '@lambda-team/ltdl/columns/types/pgEnum';
8
- import TableIndex from '@lambda-team/ltdl/indexes/tableIndex';
9
- import * as fs from 'fs';
10
- import { Pool } from 'pg';
11
-
12
- interface ColumnAsObject{
13
- [name: string]:{
14
- name?: string
15
- type?: string
16
- primaryKey?: boolean
17
- autoincrement?: boolean
18
- unique?: boolean
19
- references?: {
20
- table: string,
21
- column: string
22
- }
23
- }
24
- }
25
-
26
- interface IndexColumnAsObject{
27
- [name: string]: {
28
- name?: string
29
- }
30
- }
31
-
32
- interface IndexAsObject{
33
- [name: string]:{
34
- name?: string
35
- columns?: ColumnAsObject
36
- }
37
- }
38
-
39
- interface TableAsObject {
40
- [name: string]: {
41
- name: string,
42
- columns: ColumnAsObject,
43
- indexes: {
44
- [name: string]:{
45
- name?: string
46
- type?: string
47
- }
48
- }
49
- }
50
- }
51
-
52
- interface EnumAsObject {
53
- [name: string]: {
54
- name: string,
55
- values: string[]
56
- }
57
- }
58
-
59
- export default class MigrationSerializer {
60
- public generate = () => {
61
- const result: TableAsObject = {};
62
- const filenames = fs.readdirSync('./examples/tables/');
63
-
64
- const enumToReturn: EnumAsObject = {};
65
-
66
- filenames.forEach((filename) => {
67
- const table = this.fromFile(`../examples/tables/${filename.split('.')[0]}`);
68
- const tableValues = Object.entries(table);
69
-
70
- const columnToReturn: ColumnAsObject = {};
71
- const indexToReturn: IndexAsObject = {};
72
-
73
- for (const properties of tableValues) {
74
- const key = properties[0];
75
- const value = properties[1];
76
- if (value instanceof TableIndex) {
77
- const columns = value.getColumns();
78
- const name = value.indexName();
79
-
80
- const indexColumnToReturn: IndexColumnAsObject = {};
81
-
82
- for (const column of columns) {
83
- const columnName = column.getColumnName();
84
- indexColumnToReturn[columnName] = {
85
- name: columnName,
86
- };
87
- }
88
-
89
- indexToReturn[name] = {
90
- name,
91
- columns: indexColumnToReturn,
92
- };
93
- }
94
- if (value instanceof Column) {
95
- const columnType = value.getColumnType();
96
- if (columnType instanceof PgEnum) {
97
- const enumValues = Object.values(columnType.codeType) as string[];
98
- enumToReturn[columnType.getDbName()] = {
99
- name: columnType.getDbName(),
100
- values: enumValues,
101
- };
102
- }
103
- columnToReturn[key] = {
104
- name: value.getColumnName(),
105
- type: (value.getColumnType() as ColumnType).getDbName(),
106
- primaryKey: !!value.primaryKeyName,
107
- autoincrement: value.isAutoIncrement(),
108
- unique: !!value.uniqueKeyName,
109
- };
110
- const referenced = value.getReferenced();
111
- if (referenced){
112
- columnToReturn[key].references = {
113
- table: referenced.getParentName(),
114
- column: referenced.getColumnName()
115
- }
116
- }
117
- }
118
- }
119
-
120
- result[table.tableName()] = {
121
- name: table.tableName(),
122
- columns: columnToReturn,
123
- indexes: indexToReturn,
124
- };
125
- });
126
-
127
- return { version: '1', tables: result, enums: enumToReturn };
128
- };
129
-
130
- private fromFile(filepath: string): AbstractTable<any> {
131
- const db = new DB(new Pool());
132
- const importedTable = require(filepath);
133
- return (new importedTable.default(db) as AbstractTable<any>);
134
- }
135
- }