@smartive/graphql-magic 9.1.2 → 10.0.0

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 (120) hide show
  1. package/.eslintrc +2 -10
  2. package/.github/workflows/release.yml +1 -1
  3. package/.gqmrc.json +6 -0
  4. package/CHANGELOG.md +2 -2
  5. package/README.md +1 -1
  6. package/dist/bin/gqm.cjs +684 -330
  7. package/dist/cjs/index.cjs +998 -554
  8. package/dist/esm/api/execute.js +1 -1
  9. package/dist/esm/api/execute.js.map +1 -1
  10. package/dist/esm/client/mutations.d.ts +2 -2
  11. package/dist/esm/client/mutations.js +5 -4
  12. package/dist/esm/client/mutations.js.map +1 -1
  13. package/dist/esm/client/queries.d.ts +12 -17
  14. package/dist/esm/client/queries.js +30 -50
  15. package/dist/esm/client/queries.js.map +1 -1
  16. package/dist/esm/context.d.ts +1 -2
  17. package/dist/esm/db/generate.d.ts +3 -3
  18. package/dist/esm/db/generate.js +31 -29
  19. package/dist/esm/db/generate.js.map +1 -1
  20. package/dist/esm/migrations/generate.d.ts +3 -4
  21. package/dist/esm/migrations/generate.js +114 -107
  22. package/dist/esm/migrations/generate.js.map +1 -1
  23. package/dist/esm/models/index.d.ts +1 -0
  24. package/dist/esm/models/index.js +1 -0
  25. package/dist/esm/models/index.js.map +1 -1
  26. package/dist/esm/models/model-definitions.d.ts +189 -0
  27. package/dist/esm/models/model-definitions.js +2 -0
  28. package/dist/esm/models/model-definitions.js.map +1 -0
  29. package/dist/esm/models/models.d.ts +128 -174
  30. package/dist/esm/models/models.js +411 -1
  31. package/dist/esm/models/models.js.map +1 -1
  32. package/dist/esm/models/mutation-hook.d.ts +2 -2
  33. package/dist/esm/models/utils.d.ts +35 -497
  34. package/dist/esm/models/utils.js +21 -144
  35. package/dist/esm/models/utils.js.map +1 -1
  36. package/dist/esm/permissions/check.d.ts +3 -3
  37. package/dist/esm/permissions/check.js +14 -7
  38. package/dist/esm/permissions/check.js.map +1 -1
  39. package/dist/esm/permissions/generate.js +6 -6
  40. package/dist/esm/permissions/generate.js.map +1 -1
  41. package/dist/esm/resolvers/filters.d.ts +8 -0
  42. package/dist/esm/resolvers/filters.js +28 -25
  43. package/dist/esm/resolvers/filters.js.map +1 -1
  44. package/dist/esm/resolvers/index.d.ts +1 -0
  45. package/dist/esm/resolvers/index.js +1 -0
  46. package/dist/esm/resolvers/index.js.map +1 -1
  47. package/dist/esm/resolvers/mutations.js +85 -21
  48. package/dist/esm/resolvers/mutations.js.map +1 -1
  49. package/dist/esm/resolvers/node.d.ts +13 -15
  50. package/dist/esm/resolvers/node.js +41 -36
  51. package/dist/esm/resolvers/node.js.map +1 -1
  52. package/dist/esm/resolvers/resolver.js +19 -49
  53. package/dist/esm/resolvers/resolver.js.map +1 -1
  54. package/dist/esm/resolvers/resolvers.d.ts +1 -8
  55. package/dist/esm/resolvers/resolvers.js +15 -7
  56. package/dist/esm/resolvers/resolvers.js.map +1 -1
  57. package/dist/esm/resolvers/selects.d.ts +3 -0
  58. package/dist/esm/resolvers/selects.js +50 -0
  59. package/dist/esm/resolvers/selects.js.map +1 -0
  60. package/dist/esm/resolvers/utils.d.ts +12 -4
  61. package/dist/esm/resolvers/utils.js +30 -22
  62. package/dist/esm/resolvers/utils.js.map +1 -1
  63. package/dist/esm/schema/generate.d.ts +4 -4
  64. package/dist/esm/schema/generate.js +122 -131
  65. package/dist/esm/schema/generate.js.map +1 -1
  66. package/dist/esm/schema/utils.d.ts +1 -1
  67. package/dist/esm/schema/utils.js +2 -1
  68. package/dist/esm/schema/utils.js.map +1 -1
  69. package/knexfile.ts +31 -0
  70. package/migrations/20230912185644_setup.ts +127 -0
  71. package/package.json +16 -14
  72. package/src/api/execute.ts +1 -1
  73. package/src/bin/gqm/gqm.ts +25 -23
  74. package/src/bin/gqm/parse-models.ts +5 -5
  75. package/src/bin/gqm/settings.ts +13 -4
  76. package/src/bin/gqm/static-eval.ts +5 -0
  77. package/src/bin/gqm/templates.ts +23 -3
  78. package/src/client/mutations.ts +11 -5
  79. package/src/client/queries.ts +43 -80
  80. package/src/context.ts +1 -2
  81. package/src/db/generate.ts +41 -41
  82. package/src/migrations/generate.ts +165 -146
  83. package/src/models/index.ts +1 -0
  84. package/src/models/model-definitions.ts +168 -0
  85. package/src/models/models.ts +510 -166
  86. package/src/models/mutation-hook.ts +2 -2
  87. package/src/models/utils.ts +53 -187
  88. package/src/permissions/check.ts +19 -11
  89. package/src/permissions/generate.ts +6 -6
  90. package/src/resolvers/filters.ts +44 -28
  91. package/src/resolvers/index.ts +1 -0
  92. package/src/resolvers/mutations.ts +98 -36
  93. package/src/resolvers/node.ts +79 -51
  94. package/src/resolvers/resolver.ts +20 -74
  95. package/src/resolvers/resolvers.ts +18 -7
  96. package/src/resolvers/selects.ts +77 -0
  97. package/src/resolvers/utils.ts +41 -25
  98. package/src/schema/generate.ts +106 -127
  99. package/src/schema/utils.ts +2 -1
  100. package/tests/api/__snapshots__/inheritance.spec.ts.snap +83 -0
  101. package/tests/api/inheritance.spec.ts +130 -0
  102. package/tests/generated/api/index.ts +1174 -0
  103. package/tests/generated/client/index.ts +1163 -0
  104. package/tests/generated/client/mutations.ts +109 -0
  105. package/tests/generated/db/index.ts +291 -0
  106. package/tests/generated/db/knex.ts +14 -0
  107. package/tests/generated/models.json +675 -0
  108. package/tests/generated/schema.graphql +325 -0
  109. package/tests/unit/__snapshots__/resolve.spec.ts.snap +23 -0
  110. package/tests/unit/queries.spec.ts +5 -5
  111. package/tests/unit/resolve.spec.ts +8 -8
  112. package/tests/utils/database/knex.ts +5 -13
  113. package/tests/utils/database/seed.ts +57 -18
  114. package/tests/utils/models.ts +62 -7
  115. package/tests/utils/server.ts +5 -5
  116. package/tsconfig.eslint.json +1 -0
  117. package/tests/unit/__snapshots__/generate.spec.ts.snap +0 -128
  118. package/tests/unit/generate.spec.ts +0 -8
  119. package/tests/utils/database/schema.ts +0 -64
  120. package/tests/utils/generate-migration.ts +0 -24
@@ -1,55 +1,46 @@
1
1
  import { buildASTSchema, print } from 'graphql';
2
- import flatMap from 'lodash/flatMap';
3
- import { getModelPluralField, getModels, isEnumModel, isInputModel, isObjectModel, isQueriableField, isRawEnumModel, isRelation, isScalarModel, typeToField, } from '../models/utils';
4
- import { document, enm, input, object, scalar } from './utils';
5
- export const generateDefinitions = (rawModels) => {
6
- const models = getModels(rawModels);
2
+ import { isQueriableField, isRelation, isRootModel, typeToField } from '../models/utils';
3
+ import { document, enm, iface, input, object, scalar } from './utils';
4
+ export const generateDefinitions = ({ scalars, rawEnums, enums, inputs, interfaces, entities, objects, }) => {
7
5
  return [
8
6
  // Predefined types
9
- enm('Order', ['ASC', 'DESC']),
10
- scalar('DateTime'),
11
- scalar('Upload'),
12
- ...rawModels.filter(isEnumModel).map((model) => enm(model.name, model.values)),
13
- ...rawModels.filter(isRawEnumModel).map((model) => enm(model.name, model.values)),
14
- ...rawModels.filter(isScalarModel).map((model) => scalar(model.name)),
15
- ...rawModels
16
- .filter(isObjectModel)
17
- .filter(({ name }) => !['Query', 'Mutation'].includes(name))
18
- .map((model) => object(model.name, model.fields)),
19
- ...rawModels.filter(isInputModel).map((model) => input(model.name, model.fields)),
20
- ...rawModels
21
- .filter(isObjectModel)
22
- .filter((model) => models.some((m) => m.creatable && m.fields.some((f) => f.creatable && f.kind === 'json' && f.type === model.name)))
7
+ ...rawEnums.map((model) => enm(model.name, model.values)),
8
+ ...enums.map((model) => enm(model.name, model.values)),
9
+ ...scalars.map((model) => scalar(model.name)),
10
+ ...objects.filter(({ name }) => !['Query', 'Mutation'].includes(name)).map((model) => object(model.name, model.fields)),
11
+ ...interfaces.map(({ name, fields }) => iface(name, fields)),
12
+ ...inputs.map((model) => input(model.name, model.fields)),
13
+ ...objects
14
+ .filter((model) => entities.some((m) => m.creatable && m.fields.some((f) => f.creatable && f.kind === 'json' && f.type === model.name)))
23
15
  .map((model) => input(`Create${model.name}`, model.fields)),
24
- ...rawModels
25
- .filter(isObjectModel)
26
- .filter((model) => models.some((m) => m.creatable && m.fields.some((f) => f.creatable && f.kind === 'json' && f.type === model.name)))
16
+ ...objects
17
+ .filter((model) => entities.some((m) => m.updatable && m.fields.some((f) => f.updatable && f.kind === 'json' && f.type === model.name)))
27
18
  .map((model) => input(`Update${model.name}`, model.fields)),
28
- ...flatMap(models.map((model) => {
19
+ ...entities.flatMap((model) => {
29
20
  const types = [
30
- object(model.name, [
21
+ (isRootModel(model) ? iface : object)(model.name, [
31
22
  ...model.fields.filter(isQueriableField).map((field) => ({
32
23
  ...field,
33
24
  type: field.type,
34
25
  args: [...(field.args || [])],
35
26
  directives: field.directives,
36
27
  })),
37
- ...model.reverseRelations.map(({ name, field, model }) => ({
28
+ ...model.reverseRelations.map(({ name, field, targetModel }) => ({
38
29
  name,
39
- type: model.name,
30
+ type: targetModel.name,
40
31
  list: !field.toOne,
41
32
  nonNull: !field.toOne,
42
33
  args: [
43
- { name: 'where', type: `${model.name}Where` },
44
- ...(model.fields.some(({ searchable }) => searchable) ? [{ name: 'search', type: 'String' }] : []),
45
- ...(model.fields.some(({ orderable }) => orderable)
46
- ? [{ name: 'orderBy', type: `${model.name}OrderBy`, list: true }]
34
+ { name: 'where', type: `${targetModel.name}Where` },
35
+ ...(targetModel.fields.some(({ searchable }) => searchable) ? [{ name: 'search', type: 'String' }] : []),
36
+ ...(targetModel.fields.some(({ orderable }) => orderable)
37
+ ? [{ name: 'orderBy', type: `${targetModel.name}OrderBy`, list: true }]
47
38
  : []),
48
39
  { name: 'limit', type: 'Int' },
49
40
  { name: 'offset', type: 'Int' },
50
41
  ],
51
42
  })),
52
- ], model.interfaces),
43
+ ], [...(model.parent ? [model.parent] : []), ...(model.interfaces || [])]),
53
44
  input(`${model.name}Where`, [
54
45
  ...model.fields
55
46
  .filter(({ kind, unique, filterable }) => (unique || filterable) && kind !== 'relation')
@@ -59,7 +50,9 @@ export const generateDefinitions = (rawModels) => {
59
50
  list: true,
60
51
  default: typeof field.filterable === 'object' ? field.filterable.default : undefined,
61
52
  })),
62
- ...flatMap(model.fields.filter(({ comparable }) => comparable), (field) => [
53
+ ...model.fields
54
+ .filter(({ comparable }) => comparable)
55
+ .flatMap((field) => [
63
56
  { name: `${field.name}_GT`, type: field.type },
64
57
  { name: `${field.name}_GTE`, type: field.type },
65
58
  { name: `${field.name}_LT`, type: field.type },
@@ -80,37 +73,39 @@ export const generateDefinitions = (rawModels) => {
80
73
  ]
81
74
  : []),
82
75
  ];
83
- if (model.creatable) {
84
- types.push(input(`Create${model.name}`, model.fields
85
- .filter(({ creatable }) => creatable)
86
- .map((field) => field.kind === 'relation'
87
- ? { name: `${field.name}Id`, type: 'ID', nonNull: field.nonNull }
88
- : {
89
- name: field.name,
90
- type: field.kind === 'json' ? `Create${field.type}` : field.type,
91
- list: field.list,
92
- nonNull: field.nonNull && field.defaultValue === undefined,
93
- })));
94
- }
95
- if (model.updatable) {
96
- types.push(input(`Update${model.name}`, model.fields
97
- .filter(({ updatable }) => updatable)
98
- .map((field) => field.kind === 'relation'
99
- ? { name: `${field.name}Id`, type: 'ID' }
100
- : {
101
- name: field.name,
102
- type: field.kind === 'json' ? `Update${field.type}` : field.type,
103
- list: field.list,
104
- })));
76
+ if (!isRootModel(model)) {
77
+ if (model.creatable) {
78
+ types.push(input(`Create${model.name}`, model.fields
79
+ .filter(({ creatable }) => creatable)
80
+ .map((field) => field.kind === 'relation'
81
+ ? { name: `${field.name}Id`, type: 'ID', nonNull: field.nonNull }
82
+ : {
83
+ name: field.name,
84
+ type: field.kind === 'json' ? `Create${field.type}` : field.type,
85
+ list: field.list,
86
+ nonNull: field.nonNull && field.defaultValue === undefined,
87
+ })));
88
+ }
89
+ if (model.updatable) {
90
+ types.push(input(`Update${model.name}`, model.fields
91
+ .filter(({ updatable }) => updatable)
92
+ .map((field) => field.kind === 'relation'
93
+ ? { name: `${field.name}Id`, type: 'ID' }
94
+ : {
95
+ name: field.name,
96
+ type: field.kind === 'json' ? `Update${field.type}` : field.type,
97
+ list: field.list,
98
+ })));
99
+ }
105
100
  }
106
101
  return types;
107
- })),
102
+ }),
108
103
  object('Query', [
109
104
  {
110
105
  name: 'me',
111
106
  type: 'User',
112
107
  },
113
- ...models
108
+ ...entities
114
109
  .filter(({ queriable }) => queriable)
115
110
  .map(({ name }) => ({
116
111
  name: typeToField(name),
@@ -124,10 +119,10 @@ export const generateDefinitions = (rawModels) => {
124
119
  },
125
120
  ],
126
121
  })),
127
- ...models
122
+ ...entities
128
123
  .filter(({ listQueriable }) => listQueriable)
129
124
  .map((model) => ({
130
- name: getModelPluralField(model),
125
+ name: model.pluralField,
131
126
  type: model.name,
132
127
  list: true,
133
128
  nonNull: true,
@@ -141,87 +136,83 @@ export const generateDefinitions = (rawModels) => {
141
136
  { name: 'offset', type: 'Int' },
142
137
  ],
143
138
  })),
144
- ...rawModels
145
- .filter(isObjectModel)
146
- .filter((model) => model.name === 'Query')
147
- .flatMap((model) => model.fields),
139
+ ...objects.filter((model) => model.name === 'Query').flatMap((model) => model.fields),
148
140
  ]),
149
141
  object('Mutation', [
150
- ...flatMap(models.map((model) => {
142
+ ...entities.flatMap((model) => {
151
143
  const mutations = [];
152
- if (model.creatable) {
153
- mutations.push({
154
- name: `create${model.name}`,
155
- type: model.name,
156
- nonNull: true,
157
- args: [
158
- {
159
- name: 'data',
160
- type: `Create${model.name}`,
161
- nonNull: true,
162
- },
163
- ],
164
- });
165
- }
166
- if (model.updatable) {
167
- mutations.push({
168
- name: `update${model.name}`,
169
- type: model.name,
170
- nonNull: true,
171
- args: [
172
- {
173
- name: 'where',
174
- type: `${model.name}WhereUnique`,
175
- nonNull: true,
176
- },
177
- {
178
- name: 'data',
179
- type: `Update${model.name}`,
180
- nonNull: true,
181
- },
182
- ],
183
- });
184
- }
185
- if (model.deletable) {
186
- mutations.push({
187
- name: `delete${model.name}`,
188
- type: 'ID',
189
- nonNull: true,
190
- args: [
191
- {
192
- name: 'where',
193
- type: `${model.name}WhereUnique`,
194
- nonNull: true,
195
- },
196
- {
197
- name: 'dryRun',
198
- type: 'Boolean',
199
- },
200
- ],
201
- });
202
- mutations.push({
203
- name: `restore${model.name}`,
204
- type: 'ID',
205
- nonNull: true,
206
- args: [
207
- {
208
- name: 'where',
209
- type: `${model.name}WhereUnique`,
210
- nonNull: true,
211
- },
212
- ],
213
- });
144
+ if (!isRootModel(model)) {
145
+ if (model.creatable) {
146
+ mutations.push({
147
+ name: `create${model.name}`,
148
+ type: model.name,
149
+ nonNull: true,
150
+ args: [
151
+ {
152
+ name: 'data',
153
+ type: `Create${model.name}`,
154
+ nonNull: true,
155
+ },
156
+ ],
157
+ });
158
+ }
159
+ if (model.updatable) {
160
+ mutations.push({
161
+ name: `update${model.name}`,
162
+ type: model.name,
163
+ nonNull: true,
164
+ args: [
165
+ {
166
+ name: 'where',
167
+ type: `${model.name}WhereUnique`,
168
+ nonNull: true,
169
+ },
170
+ {
171
+ name: 'data',
172
+ type: `Update${model.name}`,
173
+ nonNull: true,
174
+ },
175
+ ],
176
+ });
177
+ }
178
+ if (model.deletable) {
179
+ mutations.push({
180
+ name: `delete${model.name}`,
181
+ type: 'ID',
182
+ nonNull: true,
183
+ args: [
184
+ {
185
+ name: 'where',
186
+ type: `${model.name}WhereUnique`,
187
+ nonNull: true,
188
+ },
189
+ {
190
+ name: 'dryRun',
191
+ type: 'Boolean',
192
+ },
193
+ ],
194
+ });
195
+ mutations.push({
196
+ name: `restore${model.name}`,
197
+ type: 'ID',
198
+ nonNull: true,
199
+ args: [
200
+ {
201
+ name: 'where',
202
+ type: `${model.name}WhereUnique`,
203
+ nonNull: true,
204
+ },
205
+ ],
206
+ });
207
+ }
214
208
  }
215
209
  return mutations;
216
- })),
217
- ...rawModels
218
- .filter(isObjectModel)
219
- .filter((model) => model.name === 'Mutation')
220
- .flatMap((model) => model.fields),
210
+ }),
211
+ ...objects.filter((model) => model.name === 'Mutation').flatMap((model) => model.fields),
221
212
  ]),
222
213
  ];
223
214
  };
224
- export const generate = (rawModels) => document(generateDefinitions(rawModels));
215
+ export const generate = (models) => document(generateDefinitions(models));
225
216
  export const printSchema = (schema) => [
226
217
  ...schema.getDirectives().map((d) => d.astNode && print(d.astNode)),
227
218
  ...Object.values(schema.getTypeMap())
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/schema/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/schema/generate.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export declare const directive: (nme: string, locations: DirectiveLocation[], fi
16
16
  export declare const scalar: (nme: string) => ScalarTypeDefinitionNode;
17
17
  export declare const input: (nme: string, fields: Field[], dvs?: Directive[]) => InputObjectTypeDefinitionNode;
18
18
  export declare const object: (nme: string, fds: Field[], interfaces?: string[], dvs?: Directive[]) => ObjectTypeDefinitionNode;
19
- export declare const iface: (nme: string, fds: Field[], dvs?: Directive[]) => InterfaceTypeDefinitionNode;
19
+ export declare const iface: (nme: string, fds: Field[], interfaces?: string[], dvs?: Directive[]) => InterfaceTypeDefinitionNode;
20
20
  export declare const inputValues: (fields: Field[]) => InputValueDefinitionNode[];
21
21
  export declare const fields: (fields: Field[]) => FieldDefinitionNode[];
22
22
  export declare const inputValue: (nme: string, type: TypeNode, dvs?: Directive[], description?: string, defaultValue?: Value) => InputValueDefinitionNode;
@@ -27,10 +27,11 @@ export const object = (nme, fds, interfaces, dvs) => ({
27
27
  interfaces: interfaces && interfaces.map((i) => namedType(i)),
28
28
  directives: directives(dvs),
29
29
  });
30
- export const iface = (nme, fds, dvs) => ({
30
+ export const iface = (nme, fds, interfaces, dvs) => ({
31
31
  name: name(nme),
32
32
  fields: fields(fds),
33
33
  kind: 'InterfaceTypeDefinition',
34
+ interfaces: interfaces && interfaces.map((i) => namedType(i)),
34
35
  directives: directives(dvs),
35
36
  });
36
37
  export const inputValues = (fields) => fields.map((field) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/schema/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/schema/utils.ts"],"names":[],"mappings":"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"}
package/knexfile.ts ADDED
@@ -0,0 +1,31 @@
1
+ import { DateTime } from 'luxon';
2
+ import { types } from 'pg';
3
+
4
+ const dateOids = { date: 1082, timestamptz: 1184, timestamp: 1114 };
5
+ for (const oid of Object.values(dateOids)) {
6
+ types.setTypeParser(oid, (val) => DateTime.fromSQL(val));
7
+ }
8
+
9
+ const numberOids = { int8: 20, float8: 701, numeric: 1700 };
10
+ for (const oid of Object.values(numberOids)) {
11
+ types.setTypeParser(oid, Number);
12
+ }
13
+
14
+ const config = {
15
+ client: 'postgresql',
16
+ connection: {
17
+ host: process.env.DATABASE_HOST,
18
+ database: process.env.DATABASE_NAME,
19
+ user: process.env.DATABASE_USER,
20
+ password: process.env.DATABASE_PASSWORD,
21
+ },
22
+ migrations: {
23
+ tableName: 'knex_migrations',
24
+ },
25
+ pool: {
26
+ min: 0,
27
+ max: 30,
28
+ },
29
+ } as const;
30
+
31
+ export default config;
@@ -0,0 +1,127 @@
1
+ import { Knex } from 'knex';
2
+
3
+ export const up = async (knex: Knex) => {
4
+ await knex.raw(`CREATE TYPE "someEnum" AS ENUM ('A','B','C')`);
5
+
6
+ await knex.raw(`CREATE TYPE "role" AS ENUM ('ADMIN','USER')`);
7
+
8
+ await knex.raw(`CREATE TYPE "reactionType" AS ENUM ('Review','Question','Answer')`);
9
+
10
+ await knex.schema.createTable('User', (table) => {
11
+ table.uuid('id').notNullable().primary();
12
+ table.string('username', undefined).nullable();
13
+ table.enum('role', null as any, {
14
+ useNative: true,
15
+ existingType: true,
16
+ enumName: 'role',
17
+ }).nullable();
18
+ });
19
+
20
+ await knex.schema.createTable('AnotherObject', (table) => {
21
+ table.uuid('id').notNullable().primary();
22
+ table.string('name', undefined).nullable();
23
+ table.uuid('myselfId').nullable();
24
+ table.foreign('myselfId').references('id').inTable('AnotherObject').onDelete('CASCADE');
25
+ table.boolean('deleted').notNullable().defaultTo(false);
26
+ table.timestamp('deletedAt').nullable();
27
+ table.uuid('deletedById').nullable();
28
+ table.foreign('deletedById').references('id').inTable('User').onDelete('CASCADE');
29
+ });
30
+
31
+ await knex.schema.createTable('SomeObject', (table) => {
32
+ table.uuid('id').notNullable().primary();
33
+ table.string('field', undefined).nullable();
34
+ table.uuid('anotherId').notNullable();
35
+ table.foreign('anotherId').references('id').inTable('AnotherObject').onDelete('CASCADE');
36
+ table.decimal('float', 1, 1).notNullable();
37
+ table.specificType('list', '"someEnum"[]').notNullable();
38
+ table.integer('xyz').notNullable();
39
+ table.timestamp('createdAt').notNullable();
40
+ table.uuid('createdById').notNullable();
41
+ table.foreign('createdById').references('id').inTable('User').onDelete('CASCADE');
42
+ table.timestamp('updatedAt').notNullable();
43
+ table.uuid('updatedById').notNullable();
44
+ table.foreign('updatedById').references('id').inTable('User').onDelete('CASCADE');
45
+ table.boolean('deleted').notNullable().defaultTo(false);
46
+ table.timestamp('deletedAt').nullable();
47
+ table.uuid('deletedById').nullable();
48
+ table.foreign('deletedById').references('id').inTable('User').onDelete('CASCADE');
49
+ });
50
+
51
+ await knex.schema.createTable('SomeObjectRevision', (table) => {
52
+ table.uuid('id').notNullable().primary();
53
+ table.uuid('someObjectId').notNullable();
54
+ table.uuid('createdById').notNullable();
55
+ table.timestamp('createdAt').notNullable().defaultTo(knex.fn.now(0));
56
+ table.boolean('deleted').notNullable();
57
+ table.uuid('anotherId').notNullable();
58
+ table.foreign('anotherId').references('id').inTable('AnotherObject').onDelete('CASCADE');
59
+ table.integer('xyz').notNullable();
60
+ });
61
+
62
+ await knex.schema.createTable('Reaction', (table) => {
63
+ table.uuid('id').notNullable().primary();
64
+ table.enum('type', null as any, {
65
+ useNative: true,
66
+ existingType: true,
67
+ enumName: 'reactionType',
68
+ }).notNullable();
69
+ table.uuid('parentId').nullable();
70
+ table.foreign('parentId').references('id').inTable('Reaction').onDelete('CASCADE');
71
+ table.string('content', undefined).nullable();
72
+ table.timestamp('createdAt').notNullable();
73
+ table.uuid('createdById').notNullable();
74
+ table.foreign('createdById').references('id').inTable('User').onDelete('CASCADE');
75
+ table.timestamp('updatedAt').notNullable();
76
+ table.uuid('updatedById').notNullable();
77
+ table.foreign('updatedById').references('id').inTable('User').onDelete('CASCADE');
78
+ table.boolean('deleted').notNullable().defaultTo(false);
79
+ table.timestamp('deletedAt').nullable();
80
+ table.uuid('deletedById').nullable();
81
+ table.foreign('deletedById').references('id').inTable('User').onDelete('CASCADE');
82
+ });
83
+
84
+ await knex.schema.createTable('ReactionRevision', (table) => {
85
+ table.uuid('id').notNullable().primary();
86
+ table.uuid('reactionId').notNullable();
87
+ table.uuid('createdById').notNullable();
88
+ table.timestamp('createdAt').notNullable().defaultTo(knex.fn.now(0));
89
+ table.boolean('deleted').notNullable();
90
+ table.string('content', undefined).nullable();
91
+ });
92
+
93
+ await knex.schema.createTable('Review', (table) => {
94
+ table.uuid('id').notNullable().primary();
95
+ table.foreign('id').references('id').inTable('Reaction').onDelete('CASCADE');
96
+ table.decimal('rating', undefined, undefined).nullable();
97
+ });
98
+
99
+ await knex.schema.createTable('ReviewRevision', (table) => {
100
+ table.uuid('id').notNullable().primary();
101
+ table.decimal('rating', undefined, undefined).nullable();
102
+ });
103
+
104
+ };
105
+
106
+ export const down = async (knex: Knex) => {
107
+ await knex.schema.dropTable('ReviewRevision');
108
+
109
+ await knex.schema.dropTable('Review');
110
+
111
+ await knex.schema.dropTable('ReactionRevision');
112
+
113
+ await knex.schema.dropTable('Reaction');
114
+
115
+ await knex.schema.dropTable('SomeObjectRevision');
116
+
117
+ await knex.schema.dropTable('SomeObject');
118
+
119
+ await knex.schema.dropTable('AnotherObject');
120
+
121
+ await knex.schema.dropTable('User');
122
+
123
+ await knex.raw('DROP TYPE "reactionType"');
124
+ await knex.raw('DROP TYPE "role"');
125
+ await knex.raw('DROP TYPE "someEnum"');
126
+ };
127
+