joist-graphql-codegen 1.30.1 → 1.30.2
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/build/generateEnumDetailResolvers.js +1 -1
- package/build/generateEnumDetailResolvers.js.map +1 -1
- package/build/generateEnumDetailResolvers.test.d.ts +1 -0
- package/build/generateEnumDetailResolvers.test.js +17 -0
- package/build/generateEnumDetailResolvers.test.js.map +1 -0
- package/build/generateGraphqlSchemaFiles.test.js +30 -100
- package/build/generateGraphqlSchemaFiles.test.js.map +1 -1
- package/build/testUtils.d.ts +6 -0
- package/build/testUtils.js +79 -0
- package/build/testUtils.js.map +1 -0
- package/package.json +3 -3
|
@@ -24,7 +24,7 @@ function generateEnumDetailResolvers(enums) {
|
|
|
24
24
|
});
|
|
25
25
|
const Resolvers = (0, ts_poet_1.imp)("Resolvers@src/generated/graphql-types");
|
|
26
26
|
const contents = (0, ts_poet_1.code) `
|
|
27
|
-
type EnumDetails = ${enumNames.map((n) => `"${n}Detail"`).join(" | ")};
|
|
27
|
+
type EnumDetails = ${enumNames.length === 0 ? "never" : enumNames.map((n) => `"${n}Detail"`).join(" | ")};
|
|
28
28
|
|
|
29
29
|
export const enumResolvers: Pick<${Resolvers}, EnumDetails> = {
|
|
30
30
|
${resolvers}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateEnumDetailResolvers.js","sourceRoot":"","sources":["../src/generateEnumDetailResolvers.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAwC;AAExC,0DAAkC;AAClC,qCAAiD;AAEjD,iHAAiH;AACjH,SAAgB,2BAA2B,CAAC,KAAmB;IAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE;QACvE,MAAM,IAAI,GAAG,IAAA,aAAG,EAAC,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpD,OAAO,IAAA,cAAI,EAAA;QACP,IAAI;;0BAEc,IAAI;UACpB,eAAe;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAS,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC;aACnC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAA,cAAI,EAAA,GAAG,SAAS,eAAe,IAAI,oBAAoB,SAAS,GAAG,CAAC;;KAE7F,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAA,aAAG,EAAC,uCAAuC,CAAC,CAAC;IAE/D,MAAM,QAAQ,GAAG,IAAA,cAAI,EAAA;yBACE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;;
|
|
1
|
+
{"version":3,"file":"generateEnumDetailResolvers.js","sourceRoot":"","sources":["../src/generateEnumDetailResolvers.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAwC;AAExC,0DAAkC;AAClC,qCAAiD;AAEjD,iHAAiH;AACjH,SAAgB,2BAA2B,CAAC,KAAmB;IAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE;QACvE,MAAM,IAAI,GAAG,IAAA,aAAG,EAAC,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpD,OAAO,IAAA,cAAI,EAAA;QACP,IAAI;;0BAEc,IAAI;UACpB,eAAe;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAS,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC;aACnC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAA,cAAI,EAAA,GAAG,SAAS,eAAe,IAAI,oBAAoB,SAAS,GAAG,CAAC;;KAE7F,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAA,aAAG,EAAC,uCAAuC,CAAC,CAAC;IAE/D,MAAM,QAAQ,GAAG,IAAA,cAAI,EAAA;yBACE,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;;uCAErE,SAAS;QACxC,SAAS;;GAEd,CAAC;IAEF,OAAO,EAAE,IAAI,EAAE,+BAA+B,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC1F,CAAC;AA3BD,kEA2BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const generateEnumDetailResolvers_1 = require("./generateEnumDetailResolvers");
|
|
4
|
+
describe("generateEnumDetailResolvers", () => {
|
|
5
|
+
it("creates a new file", async () => {
|
|
6
|
+
const file = await (0, generateEnumDetailResolvers_1.generateEnumDetailResolvers)({});
|
|
7
|
+
expect(file.contents.toString()).toMatchInlineSnapshot(`
|
|
8
|
+
"import { Resolvers } from \\"src/generated/graphql-types\\";
|
|
9
|
+
|
|
10
|
+
type EnumDetails = never;
|
|
11
|
+
|
|
12
|
+
export const enumResolvers: Pick<Resolvers, EnumDetails> = {};
|
|
13
|
+
"
|
|
14
|
+
`);
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=generateEnumDetailResolvers.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateEnumDetailResolvers.test.js","sourceRoot":"","sources":["../src/generateEnumDetailResolvers.test.ts"],"names":[],"mappings":";;AAAA,+EAA4E;AAE5E,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,IAAI,GAAG,MAAM,IAAA,yDAA2B,EAAC,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;KAOtD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const change_case_1 = require("change-case");
|
|
4
|
-
const joist_codegen_1 = require("joist-codegen");
|
|
5
|
-
const pluralize_1 = require("pluralize");
|
|
6
|
-
const ts_poet_1 = require("ts-poet");
|
|
7
3
|
const generateGraphqlSchemaFiles_1 = require("./generateGraphqlSchemaFiles");
|
|
4
|
+
const testUtils_1 = require("./testUtils");
|
|
8
5
|
describe("generateGraphqlSchemaFiles", () => {
|
|
9
6
|
it("creates a new file", async () => {
|
|
10
7
|
// Given an author
|
|
11
|
-
const entities = [newEntityMetadata("Author")];
|
|
8
|
+
const entities = [(0, testUtils_1.newEntityMetadata)("Author")];
|
|
12
9
|
// And no existing graphql file
|
|
13
|
-
const fs = newFs({});
|
|
10
|
+
const fs = (0, testUtils_1.newFs)({});
|
|
14
11
|
// When ran
|
|
15
12
|
await (0, generateGraphqlSchemaFiles_1.generateGraphqlSchemaFiles)(fs, entities);
|
|
16
13
|
// We now have a graphql file
|
|
@@ -36,12 +33,12 @@ describe("generateGraphqlSchemaFiles", () => {
|
|
|
36
33
|
it("adds a new field to existing file", async () => {
|
|
37
34
|
// Given an author with a primitive field
|
|
38
35
|
const entities = [
|
|
39
|
-
newEntityMetadata("Author", {
|
|
40
|
-
primitives: [newPrimitiveField("firstName")],
|
|
36
|
+
(0, testUtils_1.newEntityMetadata)("Author", {
|
|
37
|
+
primitives: [(0, testUtils_1.newPrimitiveField)("firstName")],
|
|
41
38
|
}),
|
|
42
39
|
];
|
|
43
40
|
// And an existing graphql file
|
|
44
|
-
const fs = newFs({
|
|
41
|
+
const fs = (0, testUtils_1.newFs)({
|
|
45
42
|
"author.graphql": "type Author { id: ID! } input SaveAuthorInput { id: ID }",
|
|
46
43
|
// And the history file doesn't have firstName yet
|
|
47
44
|
".history.json": JSON.stringify({ Author: ["id"] }),
|
|
@@ -92,12 +89,12 @@ describe("generateGraphqlSchemaFiles", () => {
|
|
|
92
89
|
it("does not overwrite existing fields", async () => {
|
|
93
90
|
// Given an author with a primitive field
|
|
94
91
|
const entities = [
|
|
95
|
-
newEntityMetadata("Author", {
|
|
96
|
-
primitives: [newPrimitiveField("firstName")],
|
|
92
|
+
(0, testUtils_1.newEntityMetadata)("Author", {
|
|
93
|
+
primitives: [(0, testUtils_1.newPrimitiveField)("firstName")],
|
|
97
94
|
}),
|
|
98
95
|
];
|
|
99
96
|
// And an existing graphql file with a custom field
|
|
100
|
-
const fs = newFs({
|
|
97
|
+
const fs = (0, testUtils_1.newFs)({
|
|
101
98
|
"author.graphql": "type Author { id: ID! customField: String } input SaveAuthorInput { id: ID customField: String }",
|
|
102
99
|
});
|
|
103
100
|
// When ran
|
|
@@ -129,11 +126,11 @@ describe("generateGraphqlSchemaFiles", () => {
|
|
|
129
126
|
it("does not re-add fields in the history file", async () => {
|
|
130
127
|
// Given an author with a firstName field
|
|
131
128
|
const entities = [
|
|
132
|
-
newEntityMetadata("Author", {
|
|
133
|
-
primitives: [newPrimitiveField("firstName")],
|
|
129
|
+
(0, testUtils_1.newEntityMetadata)("Author", {
|
|
130
|
+
primitives: [(0, testUtils_1.newPrimitiveField)("firstName")],
|
|
134
131
|
}),
|
|
135
132
|
];
|
|
136
|
-
const fs = newFs({
|
|
133
|
+
const fs = (0, testUtils_1.newFs)({
|
|
137
134
|
// And an existing graphql file without the firstName
|
|
138
135
|
"author.graphql": "type Author { id: ID! }",
|
|
139
136
|
// And the history file said we've already added it
|
|
@@ -165,12 +162,12 @@ describe("generateGraphqlSchemaFiles", () => {
|
|
|
165
162
|
it("keeps comments", async () => {
|
|
166
163
|
// Given an author with a primitive field
|
|
167
164
|
const entities = [
|
|
168
|
-
newEntityMetadata("Author", {
|
|
169
|
-
primitives: [newPrimitiveField("firstName")],
|
|
165
|
+
(0, testUtils_1.newEntityMetadata)("Author", {
|
|
166
|
+
primitives: [(0, testUtils_1.newPrimitiveField)("firstName")],
|
|
170
167
|
}),
|
|
171
168
|
];
|
|
172
169
|
// And an existing graphql file
|
|
173
|
-
const fs = newFs({
|
|
170
|
+
const fs = (0, testUtils_1.newFs)({
|
|
174
171
|
"author.graphql": `
|
|
175
172
|
" The author. "
|
|
176
173
|
type Author { " The id. " id: ID! }
|
|
@@ -206,17 +203,17 @@ describe("generateGraphqlSchemaFiles", () => {
|
|
|
206
203
|
it("does not add derived fields to inputs", async () => {
|
|
207
204
|
// Given an author
|
|
208
205
|
const entities = [
|
|
209
|
-
newEntityMetadata("Author", {
|
|
206
|
+
(0, testUtils_1.newEntityMetadata)("Author", {
|
|
210
207
|
primitives: [
|
|
211
208
|
// With a regular field
|
|
212
|
-
newPrimitiveField("firstName"),
|
|
209
|
+
(0, testUtils_1.newPrimitiveField)("firstName"),
|
|
213
210
|
// And also a derived field
|
|
214
|
-
newPrimitiveField("createdAt", { derived: "orm" }),
|
|
211
|
+
(0, testUtils_1.newPrimitiveField)("createdAt", { derived: "orm" }),
|
|
215
212
|
],
|
|
216
213
|
}),
|
|
217
214
|
];
|
|
218
215
|
// When ran
|
|
219
|
-
const fs = newFs({});
|
|
216
|
+
const fs = (0, testUtils_1.newFs)({});
|
|
220
217
|
await (0, generateGraphqlSchemaFiles_1.generateGraphqlSchemaFiles)(fs, entities);
|
|
221
218
|
// Then the input does not have the createdAt field
|
|
222
219
|
expect(await fs.load("author.graphql")).toMatchInlineSnapshot(`
|
|
@@ -244,19 +241,19 @@ describe("generateGraphqlSchemaFiles", () => {
|
|
|
244
241
|
it("can output both Date and DateTime types", async () => {
|
|
245
242
|
// Given an author
|
|
246
243
|
const entities = [
|
|
247
|
-
newEntityMetadata("Author", {
|
|
244
|
+
(0, testUtils_1.newEntityMetadata)("Author", {
|
|
248
245
|
primitives: [
|
|
249
246
|
// With a regular field
|
|
250
|
-
newPrimitiveField("firstName"),
|
|
247
|
+
(0, testUtils_1.newPrimitiveField)("firstName"),
|
|
251
248
|
// And a timestamp field with the `_at` convention
|
|
252
|
-
newPrimitiveField("createdAt", { fieldType: "Date" }),
|
|
249
|
+
(0, testUtils_1.newPrimitiveField)("createdAt", { fieldType: "Date" }),
|
|
253
250
|
// And also a date field with the `_date` convention
|
|
254
|
-
newPrimitiveField("startDate", { fieldType: "Date" }),
|
|
251
|
+
(0, testUtils_1.newPrimitiveField)("startDate", { fieldType: "Date" }),
|
|
255
252
|
],
|
|
256
253
|
}),
|
|
257
254
|
];
|
|
258
255
|
// When ran
|
|
259
|
-
const fs = newFs({});
|
|
256
|
+
const fs = (0, testUtils_1.newFs)({});
|
|
260
257
|
await (0, generateGraphqlSchemaFiles_1.generateGraphqlSchemaFiles)(fs, entities);
|
|
261
258
|
// Then the input has both both types of fields as appropriate
|
|
262
259
|
expect(await fs.load("author.graphql")).toMatchInlineSnapshot(`
|
|
@@ -287,13 +284,13 @@ type SaveAuthorResult {
|
|
|
287
284
|
it("adds enum details", async () => {
|
|
288
285
|
// Given an author
|
|
289
286
|
const entities = [
|
|
290
|
-
newEntityMetadata("Author", {
|
|
287
|
+
(0, testUtils_1.newEntityMetadata)("Author", {
|
|
291
288
|
// With an enum array field
|
|
292
|
-
enums: [newEnumField("color")],
|
|
289
|
+
enums: [(0, testUtils_1.newEnumField)("color")],
|
|
293
290
|
}),
|
|
294
291
|
];
|
|
295
292
|
// When ran
|
|
296
|
-
const fs = newFs({});
|
|
293
|
+
const fs = (0, testUtils_1.newFs)({});
|
|
297
294
|
await (0, generateGraphqlSchemaFiles_1.generateGraphqlSchemaFiles)(fs, entities);
|
|
298
295
|
// Then the input has both both types of fields as appropriate
|
|
299
296
|
expect(await fs.load("author.graphql")).toMatchInlineSnapshot(`
|
|
@@ -320,13 +317,13 @@ type SaveAuthorResult {
|
|
|
320
317
|
it("can enum array types", async () => {
|
|
321
318
|
// Given an author
|
|
322
319
|
const entities = [
|
|
323
|
-
newEntityMetadata("Author", {
|
|
320
|
+
(0, testUtils_1.newEntityMetadata)("Author", {
|
|
324
321
|
// With an enum array field
|
|
325
|
-
enums: [newEnumField("color", { isArray: true })],
|
|
322
|
+
enums: [(0, testUtils_1.newEnumField)("color", { isArray: true })],
|
|
326
323
|
}),
|
|
327
324
|
];
|
|
328
325
|
// When ran
|
|
329
|
-
const fs = newFs({});
|
|
326
|
+
const fs = (0, testUtils_1.newFs)({});
|
|
330
327
|
await (0, generateGraphqlSchemaFiles_1.generateGraphqlSchemaFiles)(fs, entities);
|
|
331
328
|
// Then the input has both both types of fields as appropriate
|
|
332
329
|
expect(await fs.load("author.graphql")).toMatchInlineSnapshot(`
|
|
@@ -351,71 +348,4 @@ type SaveAuthorResult {
|
|
|
351
348
|
`);
|
|
352
349
|
});
|
|
353
350
|
});
|
|
354
|
-
function newFs(files) {
|
|
355
|
-
return {
|
|
356
|
-
exists: async (fileName) => !!files[fileName],
|
|
357
|
-
load: async (fileName) => files[fileName],
|
|
358
|
-
save: async (fileName, content) => {
|
|
359
|
-
files[fileName] = content;
|
|
360
|
-
},
|
|
361
|
-
};
|
|
362
|
-
}
|
|
363
|
-
function newPrimitiveField(fieldName, opts = {}) {
|
|
364
|
-
return {
|
|
365
|
-
kind: "primitive",
|
|
366
|
-
fieldName,
|
|
367
|
-
columnName: (0, change_case_1.snakeCase)(fieldName),
|
|
368
|
-
columnType: "varchar",
|
|
369
|
-
fieldType: "string",
|
|
370
|
-
rawFieldType: "string",
|
|
371
|
-
derived: false,
|
|
372
|
-
notNull: true,
|
|
373
|
-
protected: false,
|
|
374
|
-
columnDefault: null,
|
|
375
|
-
superstruct: undefined,
|
|
376
|
-
...opts,
|
|
377
|
-
};
|
|
378
|
-
}
|
|
379
|
-
function newEntityMetadata(name, opts = {}) {
|
|
380
|
-
return {
|
|
381
|
-
name,
|
|
382
|
-
entity: (0, joist_codegen_1.makeEntity)(name),
|
|
383
|
-
idDbType: "int",
|
|
384
|
-
primitives: [],
|
|
385
|
-
enums: [],
|
|
386
|
-
pgEnums: [],
|
|
387
|
-
manyToOnes: [],
|
|
388
|
-
oneToManys: [],
|
|
389
|
-
largeOneToManys: [],
|
|
390
|
-
manyToManys: [],
|
|
391
|
-
largeManyToManys: [],
|
|
392
|
-
oneToOnes: [],
|
|
393
|
-
polymorphics: [],
|
|
394
|
-
tableName: (0, change_case_1.snakeCase)((0, pluralize_1.plural)(name)),
|
|
395
|
-
tagName: name,
|
|
396
|
-
updatedAt: undefined,
|
|
397
|
-
createdAt: undefined,
|
|
398
|
-
...opts,
|
|
399
|
-
};
|
|
400
|
-
}
|
|
401
|
-
function newEnumField(fieldName, opts = {}) {
|
|
402
|
-
const enumName = opts.enumName || "Color";
|
|
403
|
-
const enumType = (0, ts_poet_1.imp)(`${enumName}@./entities`);
|
|
404
|
-
const enumDetailType = (0, ts_poet_1.imp)(`${(0, pluralize_1.plural)(enumName)}@./entities`);
|
|
405
|
-
const enumDetailsType = (0, ts_poet_1.imp)(`${enumName}Details@./entities`);
|
|
406
|
-
return {
|
|
407
|
-
kind: "enum",
|
|
408
|
-
fieldName,
|
|
409
|
-
columnName: (0, change_case_1.snakeCase)(fieldName),
|
|
410
|
-
columnDefault: null,
|
|
411
|
-
enumName,
|
|
412
|
-
enumType,
|
|
413
|
-
enumDetailType,
|
|
414
|
-
enumDetailsType,
|
|
415
|
-
notNull: true,
|
|
416
|
-
enumRows: [],
|
|
417
|
-
isArray: false,
|
|
418
|
-
...opts,
|
|
419
|
-
};
|
|
420
|
-
}
|
|
421
351
|
//# sourceMappingURL=generateGraphqlSchemaFiles.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateGraphqlSchemaFiles.test.js","sourceRoot":"","sources":["../src/generateGraphqlSchemaFiles.test.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"generateGraphqlSchemaFiles.test.js","sourceRoot":"","sources":["../src/generateGraphqlSchemaFiles.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EntityDbMetadata, EnumField, PrimitiveField } from "joist-codegen";
|
|
2
|
+
import { Fs } from "./utils";
|
|
3
|
+
export declare function newFs(files: Record<string, string>): Fs;
|
|
4
|
+
export declare function newPrimitiveField(fieldName: string, opts?: Partial<PrimitiveField>): PrimitiveField;
|
|
5
|
+
export declare function newEntityMetadata(name: string, opts?: Partial<EntityDbMetadata>): EntityDbMetadata;
|
|
6
|
+
export declare function newEnumField(fieldName: string, opts?: Partial<EnumField>): EnumField;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.newEnumField = exports.newEntityMetadata = exports.newPrimitiveField = exports.newFs = void 0;
|
|
4
|
+
const change_case_1 = require("change-case");
|
|
5
|
+
const joist_codegen_1 = require("joist-codegen");
|
|
6
|
+
const pluralize_1 = require("pluralize");
|
|
7
|
+
const ts_poet_1 = require("ts-poet");
|
|
8
|
+
function newFs(files) {
|
|
9
|
+
return {
|
|
10
|
+
exists: async (fileName) => !!files[fileName],
|
|
11
|
+
load: async (fileName) => files[fileName],
|
|
12
|
+
save: async (fileName, content) => {
|
|
13
|
+
files[fileName] = content;
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
exports.newFs = newFs;
|
|
18
|
+
function newPrimitiveField(fieldName, opts = {}) {
|
|
19
|
+
return {
|
|
20
|
+
kind: "primitive",
|
|
21
|
+
fieldName,
|
|
22
|
+
columnName: (0, change_case_1.snakeCase)(fieldName),
|
|
23
|
+
columnType: "varchar",
|
|
24
|
+
fieldType: "string",
|
|
25
|
+
rawFieldType: "string",
|
|
26
|
+
derived: false,
|
|
27
|
+
notNull: true,
|
|
28
|
+
protected: false,
|
|
29
|
+
columnDefault: null,
|
|
30
|
+
superstruct: undefined,
|
|
31
|
+
...opts,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
exports.newPrimitiveField = newPrimitiveField;
|
|
35
|
+
function newEntityMetadata(name, opts = {}) {
|
|
36
|
+
return {
|
|
37
|
+
name,
|
|
38
|
+
entity: (0, joist_codegen_1.makeEntity)(name),
|
|
39
|
+
idDbType: "int",
|
|
40
|
+
primitives: [],
|
|
41
|
+
enums: [],
|
|
42
|
+
pgEnums: [],
|
|
43
|
+
manyToOnes: [],
|
|
44
|
+
oneToManys: [],
|
|
45
|
+
largeOneToManys: [],
|
|
46
|
+
manyToManys: [],
|
|
47
|
+
largeManyToManys: [],
|
|
48
|
+
oneToOnes: [],
|
|
49
|
+
polymorphics: [],
|
|
50
|
+
tableName: (0, change_case_1.snakeCase)((0, pluralize_1.plural)(name)),
|
|
51
|
+
tagName: name,
|
|
52
|
+
updatedAt: undefined,
|
|
53
|
+
createdAt: undefined,
|
|
54
|
+
...opts,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
exports.newEntityMetadata = newEntityMetadata;
|
|
58
|
+
function newEnumField(fieldName, opts = {}) {
|
|
59
|
+
const enumName = opts.enumName || "Color";
|
|
60
|
+
const enumType = (0, ts_poet_1.imp)(`${enumName}@./entities`);
|
|
61
|
+
const enumDetailType = (0, ts_poet_1.imp)(`${(0, pluralize_1.plural)(enumName)}@./entities`);
|
|
62
|
+
const enumDetailsType = (0, ts_poet_1.imp)(`${enumName}Details@./entities`);
|
|
63
|
+
return {
|
|
64
|
+
kind: "enum",
|
|
65
|
+
fieldName,
|
|
66
|
+
columnName: (0, change_case_1.snakeCase)(fieldName),
|
|
67
|
+
columnDefault: null,
|
|
68
|
+
enumName,
|
|
69
|
+
enumType,
|
|
70
|
+
enumDetailType,
|
|
71
|
+
enumDetailsType,
|
|
72
|
+
notNull: true,
|
|
73
|
+
enumRows: [],
|
|
74
|
+
isArray: false,
|
|
75
|
+
...opts,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
exports.newEnumField = newEnumField;
|
|
79
|
+
//# sourceMappingURL=testUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AACxC,iDAAwF;AACxF,yCAAmC;AACnC,qCAA8B;AAG9B,SAAgB,KAAK,CAAC,KAA6B;IACjD,OAAO;QACL,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC7C,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;YAChC,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC;AARD,sBAQC;AAED,SAAgB,iBAAiB,CAAC,SAAiB,EAAE,OAAgC,EAAE;IACrF,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,SAAS;QACT,UAAU,EAAE,IAAA,uBAAS,EAAC,SAAS,CAAC;QAChC,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;QACnB,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,SAAS;QACtB,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAfD,8CAeC;AAED,SAAgB,iBAAiB,CAAC,IAAY,EAAE,OAAkC,EAAE;IAClF,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,IAAA,0BAAU,EAAC,IAAI,CAAC;QACxB,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;QACd,eAAe,EAAE,EAAE;QACnB,WAAW,EAAE,EAAE;QACf,gBAAgB,EAAE,EAAE;QACpB,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,IAAA,uBAAS,EAAC,IAAA,kBAAM,EAAC,IAAI,CAAC,CAAC;QAClC,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;QACpB,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AArBD,8CAqBC;AAED,SAAgB,YAAY,CAAC,SAAiB,EAAE,OAA2B,EAAE;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAA,aAAG,EAAC,GAAG,QAAQ,aAAa,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,IAAA,aAAG,EAAC,GAAG,IAAA,kBAAM,EAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,IAAA,aAAG,EAAC,GAAG,QAAQ,oBAAoB,CAAC,CAAC;IAC7D,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,SAAS;QACT,UAAU,EAAE,IAAA,uBAAS,EAAC,SAAS,CAAC;QAChC,aAAa,EAAE,IAAI;QACnB,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,eAAe;QACf,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,KAAK;QACd,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAnBD,oCAmBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "joist-graphql-codegen",
|
|
3
|
-
"version": "1.30.
|
|
3
|
+
"version": "1.30.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"change-case": "^4.1.2",
|
|
24
24
|
"graphql": "^16.6.0",
|
|
25
25
|
"is-plain-object": "^5.0.0",
|
|
26
|
-
"joist-codegen": "1.30.
|
|
27
|
-
"joist-utils": "1.30.
|
|
26
|
+
"joist-codegen": "1.30.2",
|
|
27
|
+
"joist-utils": "1.30.2",
|
|
28
28
|
"pluralize": "^8.0.0",
|
|
29
29
|
"prettier": "^2.7.1",
|
|
30
30
|
"ts-poet": "^6.1.0"
|