@smartive/graphql-magic 7.0.1 → 8.1.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 (81) hide show
  1. package/CHANGELOG.md +3 -3
  2. package/README.md +8 -15
  3. package/dist/bin/gqm.cjs +1812 -0
  4. package/dist/cjs/index.cjs +568 -30
  5. package/dist/esm/bin/gqm.d.ts +2 -0
  6. package/dist/esm/bin/gqm.js +121 -0
  7. package/dist/esm/bin/gqm.js.map +1 -0
  8. package/dist/esm/client/mutations.d.ts +2 -2
  9. package/dist/esm/client/mutations.js +2 -1
  10. package/dist/esm/client/mutations.js.map +1 -1
  11. package/dist/esm/db/generate.js +7 -7
  12. package/dist/esm/db/generate.js.map +1 -1
  13. package/dist/esm/gqm/codegen.d.ts +2 -0
  14. package/dist/esm/gqm/codegen.js +46 -0
  15. package/dist/esm/gqm/codegen.js.map +1 -0
  16. package/dist/esm/gqm/index.d.ts +9 -0
  17. package/dist/esm/gqm/index.js +11 -0
  18. package/dist/esm/gqm/index.js.map +1 -0
  19. package/dist/esm/gqm/parse-knexfile.d.ts +2 -0
  20. package/dist/esm/gqm/parse-knexfile.js +19 -0
  21. package/dist/esm/gqm/parse-knexfile.js.map +1 -0
  22. package/dist/esm/gqm/parse-models.d.ts +2 -0
  23. package/dist/esm/gqm/parse-models.js +19 -0
  24. package/dist/esm/gqm/parse-models.js.map +1 -0
  25. package/dist/esm/gqm/readline.d.ts +1 -0
  26. package/dist/esm/gqm/readline.js +14 -0
  27. package/dist/esm/gqm/readline.js.map +1 -0
  28. package/dist/esm/gqm/settings.d.ts +9 -0
  29. package/dist/esm/gqm/settings.js +98 -0
  30. package/dist/esm/gqm/settings.js.map +1 -0
  31. package/dist/esm/gqm/static-eval.d.ts +3 -0
  32. package/dist/esm/gqm/static-eval.js +188 -0
  33. package/dist/esm/gqm/static-eval.js.map +1 -0
  34. package/dist/esm/gqm/templates.d.ts +4 -0
  35. package/dist/esm/gqm/templates.js +62 -0
  36. package/dist/esm/gqm/templates.js.map +1 -0
  37. package/dist/esm/gqm/utils.d.ts +2 -0
  38. package/dist/esm/gqm/utils.js +22 -0
  39. package/dist/esm/gqm/utils.js.map +1 -0
  40. package/dist/esm/gqm/visitor.d.ts +8 -0
  41. package/dist/esm/gqm/visitor.js +15 -0
  42. package/dist/esm/gqm/visitor.js.map +1 -0
  43. package/dist/esm/index.d.ts +1 -0
  44. package/dist/esm/index.js +1 -0
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/migrations/generate.d.ts +1 -0
  47. package/dist/esm/migrations/generate.js +16 -5
  48. package/dist/esm/migrations/generate.js.map +1 -1
  49. package/dist/esm/models/models.d.ts +16 -10
  50. package/dist/esm/models/utils.d.ts +17 -9
  51. package/dist/esm/models/utils.js +6 -5
  52. package/dist/esm/models/utils.js.map +1 -1
  53. package/dist/esm/resolvers/node.js +2 -2
  54. package/dist/esm/resolvers/node.js.map +1 -1
  55. package/dist/esm/resolvers/resolver.js +1 -1
  56. package/dist/esm/resolvers/resolver.js.map +1 -1
  57. package/dist/esm/schema/generate.js +16 -4
  58. package/dist/esm/schema/generate.js.map +1 -1
  59. package/package.json +18 -5
  60. package/src/bin/gqm.ts +146 -0
  61. package/src/client/mutations.ts +4 -3
  62. package/src/db/generate.ts +7 -7
  63. package/src/gqm/codegen.ts +47 -0
  64. package/src/gqm/index.ts +11 -0
  65. package/src/gqm/parse-knexfile.ts +21 -0
  66. package/src/gqm/parse-models.ts +24 -0
  67. package/src/gqm/readline.ts +15 -0
  68. package/src/gqm/settings.ts +112 -0
  69. package/src/gqm/static-eval.ts +203 -0
  70. package/src/gqm/templates.ts +64 -0
  71. package/src/gqm/utils.ts +23 -0
  72. package/src/gqm/visitor.ts +29 -0
  73. package/src/index.ts +1 -0
  74. package/src/migrations/generate.ts +18 -5
  75. package/src/models/models.ts +12 -7
  76. package/src/models/utils.ts +11 -8
  77. package/src/resolvers/node.ts +2 -2
  78. package/src/resolvers/resolver.ts +1 -1
  79. package/src/schema/generate.ts +17 -4
  80. package/tests/utils/generate-migration.ts +2 -13
  81. package/tests/utils/models.ts +4 -4
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,121 @@
1
+ #!/usr/bin/env node
2
+ import { program } from 'commander';
3
+ import { config } from 'dotenv';
4
+ import knex from 'knex';
5
+ import { simpleGit } from 'simple-git';
6
+ import { MigrationGenerator, generateDBModels, generateKnexTables, generateMutations, getMigrationDate, printSchemaFromModels, } from '..';
7
+ import { generateGraphqlApiTypes, generateGraphqlClientTypes } from '../gqm/codegen';
8
+ import { KNEXFILE_PATH, parseKnexfile } from '../gqm/parse-knexfile';
9
+ import { parseModels } from '../gqm/parse-models';
10
+ import { readLine } from '../gqm/readline';
11
+ import { ensureFileExists, getSetting, getSettings, writeToFile } from '../gqm/settings';
12
+ import { KNEXFILE } from '../gqm/templates';
13
+ config({
14
+ path: '.env',
15
+ });
16
+ config({
17
+ path: '.env.local',
18
+ });
19
+ program.description('The graphql-magic cli.');
20
+ program
21
+ .command('setup')
22
+ .description('Set up the project')
23
+ .action(async () => {
24
+ await getSettings();
25
+ ensureFileExists(KNEXFILE_PATH, KNEXFILE);
26
+ });
27
+ program
28
+ .command('generate')
29
+ .description('Generate all the things')
30
+ .action(async () => {
31
+ const rawModels = await parseModels();
32
+ const generatedFolderPath = await getSetting('generatedFolderPath');
33
+ writeToFile(`${generatedFolderPath}/schema.graphql`, printSchemaFromModels(rawModels));
34
+ writeToFile(`${generatedFolderPath}/client/mutations.ts`, generateMutations(rawModels));
35
+ writeToFile(`${generatedFolderPath}/db/index.ts`, generateDBModels(rawModels));
36
+ writeToFile(`${generatedFolderPath}/db/knex.ts`, generateKnexTables(rawModels));
37
+ await generateGraphqlApiTypes();
38
+ await generateGraphqlClientTypes();
39
+ });
40
+ program
41
+ .command('generate-models')
42
+ .description('Generate models.json')
43
+ .action(async () => {
44
+ const rawModels = await parseModels();
45
+ const generatedFolderPath = await getSetting('generatedFolderPath');
46
+ writeToFile(`${generatedFolderPath}/models.json`, JSON.stringify(rawModels, null, 2));
47
+ });
48
+ program
49
+ .command('generate-schema')
50
+ .description('Generate schema')
51
+ .action(async () => {
52
+ const rawModels = await parseModels();
53
+ const generatedFolderPath = await getSetting('generatedFolderPath');
54
+ writeToFile(`${generatedFolderPath}/schema.graphql`, printSchemaFromModels(rawModels));
55
+ });
56
+ program
57
+ .command('generate-mutation-queries')
58
+ .description('Generate mutation-queries')
59
+ .action(async () => {
60
+ const rawModels = await parseModels();
61
+ const generatedFolderPath = await getSetting('generatedFolderPath');
62
+ writeToFile(`${generatedFolderPath}/client/mutations.ts`, generateMutations(rawModels));
63
+ });
64
+ program
65
+ .command('generate-db-types')
66
+ .description('Generate DB types')
67
+ .action(async () => {
68
+ const rawModels = await parseModels();
69
+ const generatedFolderPath = await getSetting('generatedFolderPath');
70
+ writeToFile(`${generatedFolderPath}/db/index.ts`, generateMutations(rawModels));
71
+ });
72
+ program
73
+ .command('generate-knex-types')
74
+ .description('Generate Knex types')
75
+ .action(async () => {
76
+ const rawModels = await parseModels();
77
+ const generatedFolderPath = await getSetting('generatedFolderPath');
78
+ writeToFile(`${generatedFolderPath}/db/knex.ts`, generateKnexTables(rawModels));
79
+ });
80
+ program
81
+ .command('generate-graphql-api-types')
82
+ .description('Generate Graphql API types')
83
+ .action(async () => {
84
+ await generateGraphqlApiTypes();
85
+ });
86
+ program
87
+ .command('generate-graphql-client-types')
88
+ .description('Generate Graphql client types')
89
+ .action(async () => {
90
+ await generateGraphqlClientTypes();
91
+ });
92
+ program
93
+ .command('generate-migration')
94
+ .description('Generate Migration')
95
+ .action(async () => {
96
+ const git = simpleGit();
97
+ let name = process.argv[2] || (await git.branch()).current.split('/').pop();
98
+ if (name && ['staging', 'production'].includes(name)) {
99
+ name = await readLine('Migration name:');
100
+ }
101
+ const knexfile = await parseKnexfile();
102
+ const db = knex(knexfile);
103
+ try {
104
+ const rawModels = await parseModels();
105
+ const migrations = await new MigrationGenerator(db, rawModels).generate();
106
+ writeToFile(`migrations/${getMigrationDate()}_${name}.ts`, migrations);
107
+ }
108
+ finally {
109
+ await db.destroy();
110
+ }
111
+ });
112
+ program
113
+ .command('*', { noHelp: true })
114
+ .description('Invalid command')
115
+ .action(() => {
116
+ console.error('Invalid command: %s\nSee --help for a list of available commands.', program.args.join(' '));
117
+ process.exit(1);
118
+ });
119
+ // Parse the arguments
120
+ program.parse(process.argv);
121
+ //# sourceMappingURL=gqm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gqm.js","sourceRoot":"","sources":["../../../src/bin/gqm.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { Models } from '../models/models';
2
- export declare const generateMutations: (models: Models) => string;
1
+ import { RawModels } from '../models/models';
2
+ export declare const generateMutations: (models: RawModels) => string;
@@ -1,8 +1,9 @@
1
1
  import upperCase from 'lodash/upperCase';
2
+ import { isEntityModel } from '..';
2
3
  const constantCase = (str) => upperCase(str).replace(/ /g, '_');
3
4
  export const generateMutations = (models) => {
4
5
  const parts = [];
5
- for (const { name, creatable, updatable, deletable } of models) {
6
+ for (const { name, creatable, updatable, deletable } of models.filter(isEntityModel)) {
6
7
  if (creatable) {
7
8
  parts.push(`export const CREATE_${constantCase(name)} = gql\`\n mutation Create${name}Mutation($data: Create${name}!) {\n create${name}(data: $data) { id }\n }\n\`;`);
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../src/client/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAGzC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,EAAE;IAClD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,MAAM,EAAE;QAC9D,IAAI,SAAS,EAAE;YACb,KAAK,CAAC,IAAI,CACR,uBAAuB,YAAY,CACjC,IAAI,CACL,8BAA8B,IAAI,yBAAyB,IAAI,mBAAmB,IAAI,gCAAgC,CACxH,CAAC;SACH;QAED,IAAI,SAAS,EAAE;YACb,KAAK,CAAC,IAAI,CACR,uBAAuB,YAAY,CACjC,IAAI,CACL,8BAA8B,IAAI,mCAAmC,IAAI,mBAAmB,IAAI,oDAAoD,CACtJ,CAAC;SACH;QAED,IAAI,SAAS,EAAE;YACb,KAAK,CAAC,IAAI,CACR,uBAAuB,YAAY,CACjC,IAAI,CACL,8BAA8B,IAAI,mCAAmC,IAAI,gCAAgC,CAC3G,CAAC;SACH;KACF;IAED,OAAO,qDAAqD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACnF,CAAC,CAAC"}
1
+ {"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../src/client/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGnC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAiB,EAAE,EAAE;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;QACpF,IAAI,SAAS,EAAE;YACb,KAAK,CAAC,IAAI,CACR,uBAAuB,YAAY,CACjC,IAAI,CACL,8BAA8B,IAAI,yBAAyB,IAAI,mBAAmB,IAAI,gCAAgC,CACxH,CAAC;SACH;QAED,IAAI,SAAS,EAAE;YACb,KAAK,CAAC,IAAI,CACR,uBAAuB,YAAY,CACjC,IAAI,CACL,8BAA8B,IAAI,mCAAmC,IAAI,mBAAmB,IAAI,oDAAoD,CACtJ,CAAC;SACH;QAED,IAAI,SAAS,EAAE;YACb,KAAK,CAAC,IAAI,CACR,uBAAuB,YAAY,CACjC,IAAI,CACL,8BAA8B,IAAI,mCAAmC,IAAI,gCAAgC,CAC3G,CAAC;SACH;KACF;IAED,OAAO,qDAAqD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACnF,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import CodeBlockWriter from 'code-block-writer';
2
- import { get, getModels, isEnumModel, isRaw, not } from '..';
2
+ import { get, getModels, isCustomField, isEnumModel, not } from '..';
3
3
  const PRIMITIVE_TYPES = {
4
4
  ID: 'string',
5
5
  Boolean: 'boolean',
@@ -28,7 +28,7 @@ export const generateDBModels = (rawModels) => {
28
28
  writer
29
29
  .write(`export type ${model.name} = `)
30
30
  .inlineBlock(() => {
31
- for (const field of fields.filter(not(isRaw))) {
31
+ for (const field of fields.filter(not(isCustomField))) {
32
32
  writer.write(`'${getFieldName(field)}': ${getFieldType(field)}${field.nonNull ? '' : ' | null'},`).newLine();
33
33
  }
34
34
  })
@@ -36,7 +36,7 @@ export const generateDBModels = (rawModels) => {
36
36
  writer
37
37
  .write(`export type ${model.name}Initializer = `)
38
38
  .inlineBlock(() => {
39
- for (const field of fields.filter(not(isRaw))) {
39
+ for (const field of fields.filter(not(isCustomField))) {
40
40
  writer
41
41
  .write(`'${getFieldName(field)}'${field.nonNull && field.defaultValue === undefined ? '' : '?'}: ${getFieldType(field)}${field.list ? ' | string' : ''}${field.nonNull ? '' : ' | null'},`)
42
42
  .newLine();
@@ -46,7 +46,7 @@ export const generateDBModels = (rawModels) => {
46
46
  writer
47
47
  .write(`export type ${model.name}Mutator = `)
48
48
  .inlineBlock(() => {
49
- for (const field of fields.filter(not(isRaw))) {
49
+ for (const field of fields.filter(not(isCustomField))) {
50
50
  writer
51
51
  .write(`'${getFieldName(field)}'?: ${getFieldType(field)}${field.list ? ' | string' : ''}${field.nonNull ? '' : ' | null'},`)
52
52
  .newLine();
@@ -56,7 +56,7 @@ export const generateDBModels = (rawModels) => {
56
56
  writer
57
57
  .write(`export type ${model.name}Seed = `)
58
58
  .inlineBlock(() => {
59
- for (const field of fields.filter(not(isRaw))) {
59
+ for (const field of fields.filter(not(isCustomField))) {
60
60
  const fieldName = getFieldName(field);
61
61
  writer
62
62
  .write(`'${getFieldName(field)}'${field.nonNull && field.defaultValue === undefined && !OPTIONAL_SEED_FIELDS.includes(fieldName) ? '' : '?'}: ${field.kind === 'enum' ? (field.list ? 'string[]' : 'string') : getFieldType(field)}${field.list ? ' | string' : ''}${field.nonNull ? '' : ' | null'},`)
@@ -84,8 +84,8 @@ const getFieldType = (field) => {
84
84
  return 'string';
85
85
  case 'enum':
86
86
  return field.type + (field.list ? '[]' : '');
87
- case 'raw':
88
- throw new Error(`Raw fields are not in the db.`);
87
+ case 'custom':
88
+ throw new Error(`Custom fields are not in the db.`);
89
89
  case 'primitive':
90
90
  case undefined:
91
91
  return get(PRIMITIVE_TYPES, field.type) + (field.list ? '[]' : '');
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/db/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/db/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const generateGraphqlApiTypes: () => Promise<void>;
2
+ export declare const generateGraphqlClientTypes: () => Promise<void>;
@@ -0,0 +1,46 @@
1
+ import { generate } from '@graphql-codegen/cli';
2
+ import { getSetting } from './settings';
3
+ export const generateGraphqlApiTypes = async () => {
4
+ const generatedFolderPath = await getSetting('generatedFolderPath');
5
+ await generate({
6
+ overwrite: true,
7
+ schema: `${generatedFolderPath}/schema.graphql`,
8
+ documents: null,
9
+ generates: {
10
+ [`${generatedFolderPath}/api/index.ts`]: {
11
+ plugins: ['typescript', 'typescript-resolvers', { add: { content: `import { DateTime } from 'luxon';` } }],
12
+ },
13
+ },
14
+ config: {
15
+ scalars: {
16
+ DateTime: 'DateTime',
17
+ },
18
+ },
19
+ });
20
+ };
21
+ export const generateGraphqlClientTypes = async () => {
22
+ const generatedFolderPath = await getSetting('generatedFolderPath');
23
+ await generate({
24
+ schema: `${generatedFolderPath}/schema.graphql`,
25
+ documents: ['./src/**/*.ts', './src/**/*.tsx'],
26
+ generates: {
27
+ [`${generatedFolderPath}/client/index.ts`]: {
28
+ plugins: ['typescript', 'typescript-operations', 'typescript-compatibility'],
29
+ },
30
+ },
31
+ config: {
32
+ preResolveTypes: true,
33
+ namingConvention: 'keep',
34
+ nonOptionalTypename: true,
35
+ skipTypeNameForRoot: true,
36
+ avoidOptionals: {
37
+ // Avoids optionals on the level of the field
38
+ field: true,
39
+ },
40
+ scalars: {
41
+ DateTime: 'string',
42
+ },
43
+ },
44
+ });
45
+ };
46
+ //# sourceMappingURL=codegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/gqm/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,IAAI,EAAE;IAChD,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACpE,MAAM,QAAQ,CAAC;QACb,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,GAAG,mBAAmB,iBAAiB;QAC/C,SAAS,EAAE,IAAI;QACf,SAAS,EAAE;YACT,CAAC,GAAG,mBAAmB,eAAe,CAAC,EAAE;gBACvC,OAAO,EAAE,CAAC,YAAY,EAAE,sBAAsB,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,mCAAmC,EAAE,EAAE,CAAC;aAC3G;SACF;QACD,MAAM,EAAE;YACN,OAAO,EAAE;gBACP,QAAQ,EAAE,UAAU;aACrB;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,IAAI,EAAE;IACnD,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACpE,MAAM,QAAQ,CAAC;QACb,MAAM,EAAE,GAAG,mBAAmB,iBAAiB;QAC/C,SAAS,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;QAC9C,SAAS,EAAE;YACT,CAAC,GAAG,mBAAmB,kBAAkB,CAAC,EAAE;gBAC1C,OAAO,EAAE,CAAC,YAAY,EAAE,uBAAuB,EAAE,0BAA0B,CAAC;aAC7E;SACF;QACD,MAAM,EAAE;YACN,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,MAAM;YACxB,mBAAmB,EAAE,IAAI;YACzB,mBAAmB,EAAE,IAAI;YACzB,cAAc,EAAE;gBACd,6CAA6C;gBAC7C,KAAK,EAAE,IAAI;aACZ;YACD,OAAO,EAAE;gBACP,QAAQ,EAAE,QAAQ;aACnB;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './codegen';
2
+ export * from './parse-knexfile';
3
+ export * from './parse-models';
4
+ export * from './readline';
5
+ export * from './settings';
6
+ export * from './static-eval';
7
+ export * from './templates';
8
+ export * from './utils';
9
+ export * from './visitor';
@@ -0,0 +1,11 @@
1
+ // created from 'create-ts-index'
2
+ export * from './codegen';
3
+ export * from './parse-knexfile';
4
+ export * from './parse-models';
5
+ export * from './readline';
6
+ export * from './settings';
7
+ export * from './static-eval';
8
+ export * from './templates';
9
+ export * from './utils';
10
+ export * from './visitor';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gqm/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const KNEXFILE_PATH = "knexfile.ts";
2
+ export declare const parseKnexfile: () => Promise<unknown>;
@@ -0,0 +1,19 @@
1
+ import { IndentationText, Project } from 'ts-morph';
2
+ import { ensureFileExists } from './settings';
3
+ import { staticEval } from './static-eval';
4
+ import { KNEXFILE } from './templates';
5
+ import { findDeclarationInFile } from './utils';
6
+ export const KNEXFILE_PATH = `knexfile.ts`;
7
+ export const parseKnexfile = async () => {
8
+ const project = new Project({
9
+ manipulationSettings: {
10
+ indentationText: IndentationText.TwoSpaces,
11
+ },
12
+ });
13
+ ensureFileExists(KNEXFILE_PATH, KNEXFILE);
14
+ const sourceFile = project.addSourceFileAtPath(KNEXFILE_PATH);
15
+ const configDeclaration = findDeclarationInFile(sourceFile, 'config');
16
+ const config = staticEval(configDeclaration, {});
17
+ return config;
18
+ };
19
+ //# sourceMappingURL=parse-knexfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-knexfile.js","sourceRoot":"","sources":["../../../src/gqm/parse-knexfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AAE3C,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;IACtC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,oBAAoB,EAAE;YACpB,eAAe,EAAE,eAAe,CAAC,SAAS;SAC3C;KACF,CAAC,CAAC;IACH,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { RawModels } from '..';
2
+ export declare const parseModels: () => Promise<RawModels>;
@@ -0,0 +1,19 @@
1
+ import { IndentationText, Project } from 'ts-morph';
2
+ import { getSetting, writeToFile } from './settings';
3
+ import { staticEval } from './static-eval';
4
+ import { findDeclarationInFile } from './utils';
5
+ export const parseModels = async () => {
6
+ const project = new Project({
7
+ manipulationSettings: {
8
+ indentationText: IndentationText.TwoSpaces,
9
+ },
10
+ });
11
+ const modelsPath = await getSetting('modelsPath');
12
+ const sourceFile = project.addSourceFileAtPath(modelsPath);
13
+ const modelsDeclaration = findDeclarationInFile(sourceFile, 'rawModels');
14
+ const rawModels = staticEval(modelsDeclaration, {});
15
+ const generatedFolderPath = await getSetting('generatedFolderPath');
16
+ writeToFile(`${generatedFolderPath}/models.json`, JSON.stringify(rawModels, null, 2));
17
+ return rawModels;
18
+ };
19
+ //# sourceMappingURL=parse-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-models.js","sourceRoot":"","sources":["../../../src/gqm/parse-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;IACpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,oBAAoB,EAAE;YACpB,eAAe,EAAE,eAAe,CAAC,SAAS;SAC3C;KACF,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAE3D,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEzE,MAAM,SAAS,GAAG,UAAU,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAEpD,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACpE,WAAW,CAAC,GAAG,mBAAmB,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEtF,OAAO,SAAsB,CAAC;AAChC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const readLine: (prompt: string) => Promise<string>;
@@ -0,0 +1,14 @@
1
+ import readline from 'readline';
2
+ export const readLine = (prompt) => {
3
+ const rl = readline.createInterface({
4
+ input: process.stdin,
5
+ output: process.stdout,
6
+ });
7
+ return new Promise((resolve) => {
8
+ rl.question(prompt, (answer) => {
9
+ rl.close();
10
+ resolve(answer);
11
+ });
12
+ });
13
+ };
14
+ //# sourceMappingURL=readline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readline.js","sourceRoot":"","sources":["../../../src/gqm/readline.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAmB,EAAE;IAC1D,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACrC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ type Settings = {
2
+ modelsPath: string;
3
+ generatedFolderPath: string;
4
+ };
5
+ export declare const getSettings: () => Promise<Settings>;
6
+ export declare const getSetting: (name: keyof Settings) => Promise<string>;
7
+ export declare const ensureFileExists: (filePath: string, content: string) => void;
8
+ export declare const writeToFile: (filePath: string, content: string) => void;
9
+ export {};
@@ -0,0 +1,98 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
2
+ import { dirname } from 'path';
3
+ import { readLine } from './readline';
4
+ import { CLIENT_CODEGEN, EMPTY_MODELS, GRAPHQL_CODEGEN } from './templates';
5
+ const SETTINGS_PATH = '.gqmrc.json';
6
+ const DEFAULTS = {
7
+ modelsPath: {
8
+ question: 'What is the models path?',
9
+ defaultValue: 'src/config/models.ts',
10
+ init: (path) => {
11
+ ensureFileExists(path, EMPTY_MODELS);
12
+ },
13
+ },
14
+ generatedFolderPath: {
15
+ question: 'What is the path for generated stuff?',
16
+ defaultValue: 'src/generated',
17
+ init: (path) => {
18
+ ensureFileExists(`${path}/.gitkeep`, '');
19
+ ensureFileExists(`${path}/db/.gitkeep`, '');
20
+ ensureFileExists(`${path}/api/.gitkeep`, '');
21
+ ensureFileExists(`${path}/client/.gitkeep`, '');
22
+ ensureFileExists(`graphql-codegen.yml`, GRAPHQL_CODEGEN(path));
23
+ ensureFileExists(`client-codegen.yml`, CLIENT_CODEGEN(path));
24
+ },
25
+ },
26
+ };
27
+ const initSetting = async (name) => {
28
+ const { question, defaultValue, init } = DEFAULTS[name];
29
+ const value = (await readLine(`${question} (${defaultValue})`)) || defaultValue;
30
+ init(value);
31
+ return value;
32
+ };
33
+ const initSettings = async () => {
34
+ const settings = {};
35
+ for (const name of Object.keys(DEFAULTS)) {
36
+ settings[name] = await initSetting(name);
37
+ }
38
+ saveSettings(settings);
39
+ };
40
+ const saveSettings = (settings) => {
41
+ writeToFile(SETTINGS_PATH, JSON.stringify(settings, null, 2));
42
+ };
43
+ export const getSettings = async () => {
44
+ if (!existsSync(SETTINGS_PATH)) {
45
+ await initSettings();
46
+ }
47
+ return JSON.parse(readFileSync(SETTINGS_PATH, 'utf8'));
48
+ };
49
+ export const getSetting = async (name) => {
50
+ const settings = await getSettings();
51
+ if (!(name in settings)) {
52
+ settings[name] = await initSetting(name);
53
+ saveSettings(settings);
54
+ }
55
+ return settings[name];
56
+ };
57
+ const ensureDirectoryExists = (filePath) => {
58
+ const dir = dirname(filePath);
59
+ if (existsSync(dir)) {
60
+ return true;
61
+ }
62
+ ensureDirectoryExists(dir);
63
+ try {
64
+ mkdirSync(dir);
65
+ return true;
66
+ }
67
+ catch (err) {
68
+ if (err.code === 'EEXIST') {
69
+ return true;
70
+ }
71
+ throw err;
72
+ }
73
+ };
74
+ export const ensureFileExists = (filePath, content) => {
75
+ if (!existsSync(filePath)) {
76
+ console.info(`Creating ${filePath}`);
77
+ ensureDirectoryExists(filePath);
78
+ writeFileSync(filePath, content);
79
+ }
80
+ };
81
+ export const writeToFile = (filePath, content) => {
82
+ ensureDirectoryExists(filePath);
83
+ if (existsSync(filePath)) {
84
+ const currentContent = readFileSync(filePath, 'utf-8');
85
+ if (content === currentContent) {
86
+ // console.info(`${filePath} unchanged`);
87
+ }
88
+ else {
89
+ writeFileSync(filePath, content);
90
+ console.info(`${filePath} updated`);
91
+ }
92
+ }
93
+ else {
94
+ writeFileSync(filePath, content);
95
+ console.info(`Created ${filePath}`);
96
+ }
97
+ };
98
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/gqm/settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Dictionary } from 'lodash';
2
+ import { Node } from 'ts-morph';
3
+ export declare const staticEval: (node: Node, context: Dictionary<unknown>) => unknown;