@constructive-io/graphql-codegen 2.19.0 → 2.20.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.
- package/README.md +1818 -113
- package/__tests__/codegen/input-types-generator.test.d.ts +1 -0
- package/__tests__/codegen/input-types-generator.test.js +635 -0
- package/cli/codegen/barrel.d.ts +27 -0
- package/cli/codegen/barrel.js +163 -0
- package/cli/codegen/client.d.ts +4 -0
- package/cli/codegen/client.js +170 -0
- package/cli/codegen/custom-mutations.d.ts +38 -0
- package/cli/codegen/custom-mutations.js +149 -0
- package/cli/codegen/custom-queries.d.ts +38 -0
- package/cli/codegen/custom-queries.js +358 -0
- package/cli/codegen/filters.d.ts +27 -0
- package/cli/codegen/filters.js +357 -0
- package/cli/codegen/gql-ast.d.ts +41 -0
- package/cli/codegen/gql-ast.js +329 -0
- package/cli/codegen/index.d.ts +71 -0
- package/cli/codegen/index.js +147 -0
- package/cli/codegen/mutations.d.ts +30 -0
- package/cli/codegen/mutations.js +410 -0
- package/cli/codegen/orm/barrel.d.ts +18 -0
- package/cli/codegen/orm/barrel.js +48 -0
- package/cli/codegen/orm/client-generator.d.ts +45 -0
- package/cli/codegen/orm/client-generator.js +646 -0
- package/cli/codegen/orm/custom-ops-generator.d.ts +30 -0
- package/cli/codegen/orm/custom-ops-generator.js +350 -0
- package/cli/codegen/orm/index.d.ts +38 -0
- package/cli/codegen/orm/index.js +88 -0
- package/cli/codegen/orm/input-types-generator.d.ts +21 -0
- package/cli/codegen/orm/input-types-generator.js +705 -0
- package/cli/codegen/orm/input-types-generator.test.d.ts +1 -0
- package/cli/codegen/orm/input-types-generator.test.js +75 -0
- package/cli/codegen/orm/model-generator.d.ts +32 -0
- package/cli/codegen/orm/model-generator.js +264 -0
- package/cli/codegen/orm/query-builder.d.ts +161 -0
- package/cli/codegen/orm/query-builder.js +366 -0
- package/cli/codegen/orm/select-types.d.ts +169 -0
- package/cli/codegen/orm/select-types.js +16 -0
- package/cli/codegen/orm/select-types.test.d.ts +11 -0
- package/cli/codegen/orm/select-types.test.js +22 -0
- package/cli/codegen/queries.d.ts +25 -0
- package/cli/codegen/queries.js +438 -0
- package/cli/codegen/scalars.d.ts +12 -0
- package/cli/codegen/scalars.js +71 -0
- package/cli/codegen/schema-gql-ast.d.ts +51 -0
- package/cli/codegen/schema-gql-ast.js +385 -0
- package/cli/codegen/ts-ast.d.ts +122 -0
- package/cli/codegen/ts-ast.js +280 -0
- package/cli/codegen/type-resolver.d.ts +96 -0
- package/cli/codegen/type-resolver.js +246 -0
- package/cli/codegen/types.d.ts +12 -0
- package/cli/codegen/types.js +69 -0
- package/cli/codegen/utils.d.ts +163 -0
- package/cli/codegen/utils.js +326 -0
- package/cli/commands/generate-orm.d.ts +37 -0
- package/cli/commands/generate-orm.js +195 -0
- package/cli/commands/generate.d.ts +39 -0
- package/cli/commands/generate.js +299 -0
- package/cli/commands/index.d.ts +7 -0
- package/cli/commands/index.js +12 -0
- package/cli/commands/init.d.ts +35 -0
- package/cli/commands/init.js +176 -0
- package/cli/index.d.ts +4 -0
- package/cli/index.js +291 -0
- package/cli/introspect/fetch-meta.d.ts +31 -0
- package/cli/introspect/fetch-meta.js +108 -0
- package/cli/introspect/fetch-schema.d.ts +21 -0
- package/cli/introspect/fetch-schema.js +86 -0
- package/cli/introspect/index.d.ts +8 -0
- package/cli/introspect/index.js +16 -0
- package/cli/introspect/meta-query.d.ts +111 -0
- package/cli/introspect/meta-query.js +191 -0
- package/cli/introspect/schema-query.d.ts +20 -0
- package/cli/introspect/schema-query.js +123 -0
- package/cli/introspect/transform-schema.d.ts +74 -0
- package/cli/introspect/transform-schema.js +269 -0
- package/cli/introspect/transform-schema.test.d.ts +1 -0
- package/cli/introspect/transform-schema.test.js +67 -0
- package/cli/introspect/transform.d.ts +21 -0
- package/cli/introspect/transform.js +216 -0
- package/cli/watch/cache.d.ts +45 -0
- package/cli/watch/cache.js +111 -0
- package/cli/watch/debounce.d.ts +19 -0
- package/cli/watch/debounce.js +89 -0
- package/cli/watch/hash.d.ts +17 -0
- package/cli/watch/hash.js +48 -0
- package/cli/watch/index.d.ts +10 -0
- package/cli/watch/index.js +22 -0
- package/cli/watch/orchestrator.d.ts +63 -0
- package/cli/watch/orchestrator.js +228 -0
- package/cli/watch/poller.d.ts +65 -0
- package/cli/watch/poller.js +203 -0
- package/cli/watch/types.d.ts +67 -0
- package/cli/watch/types.js +5 -0
- package/client/error.d.ts +95 -0
- package/client/error.js +255 -0
- package/client/execute.d.ts +57 -0
- package/client/execute.js +124 -0
- package/client/index.d.ts +6 -0
- package/client/index.js +18 -0
- package/client/typed-document.d.ts +31 -0
- package/client/typed-document.js +44 -0
- package/core/ast.d.ts +10 -0
- package/core/ast.js +593 -0
- package/core/custom-ast.d.ts +35 -0
- package/core/custom-ast.js +204 -0
- package/core/index.d.ts +8 -0
- package/core/index.js +33 -0
- package/core/meta-object/convert.d.ts +65 -0
- package/core/meta-object/convert.js +63 -0
- package/core/meta-object/format.json +93 -0
- package/core/meta-object/index.d.ts +2 -0
- package/core/meta-object/index.js +18 -0
- package/core/meta-object/validate.d.ts +9 -0
- package/core/meta-object/validate.js +34 -0
- package/core/query-builder.d.ts +46 -0
- package/core/query-builder.js +412 -0
- package/core/types.d.ts +139 -0
- package/core/types.js +28 -0
- package/esm/__tests__/codegen/input-types-generator.test.d.ts +1 -0
- package/esm/__tests__/codegen/input-types-generator.test.js +633 -0
- package/esm/cli/codegen/barrel.d.ts +27 -0
- package/esm/cli/codegen/barrel.js +156 -0
- package/esm/cli/codegen/client.d.ts +4 -0
- package/esm/cli/codegen/client.js +167 -0
- package/esm/cli/codegen/custom-mutations.d.ts +38 -0
- package/esm/cli/codegen/custom-mutations.js +145 -0
- package/esm/cli/codegen/custom-queries.d.ts +38 -0
- package/esm/cli/codegen/custom-queries.js +354 -0
- package/esm/cli/codegen/filters.d.ts +27 -0
- package/esm/cli/codegen/filters.js +351 -0
- package/esm/cli/codegen/gql-ast.d.ts +41 -0
- package/esm/cli/codegen/gql-ast.js +288 -0
- package/esm/cli/codegen/index.d.ts +71 -0
- package/esm/cli/codegen/index.js +124 -0
- package/esm/cli/codegen/mutations.d.ts +30 -0
- package/esm/cli/codegen/mutations.js +404 -0
- package/esm/cli/codegen/orm/barrel.d.ts +18 -0
- package/esm/cli/codegen/orm/barrel.js +44 -0
- package/esm/cli/codegen/orm/client-generator.d.ts +45 -0
- package/esm/cli/codegen/orm/client-generator.js +640 -0
- package/esm/cli/codegen/orm/custom-ops-generator.d.ts +30 -0
- package/esm/cli/codegen/orm/custom-ops-generator.js +346 -0
- package/esm/cli/codegen/orm/index.d.ts +38 -0
- package/esm/cli/codegen/orm/index.js +75 -0
- package/esm/cli/codegen/orm/input-types-generator.d.ts +21 -0
- package/esm/cli/codegen/orm/input-types-generator.js +700 -0
- package/esm/cli/codegen/orm/input-types-generator.test.d.ts +1 -0
- package/esm/cli/codegen/orm/input-types-generator.test.js +73 -0
- package/esm/cli/codegen/orm/model-generator.d.ts +32 -0
- package/esm/cli/codegen/orm/model-generator.js +260 -0
- package/esm/cli/codegen/orm/query-builder.d.ts +161 -0
- package/esm/cli/codegen/orm/query-builder.js +353 -0
- package/esm/cli/codegen/orm/select-types.d.ts +169 -0
- package/esm/cli/codegen/orm/select-types.js +15 -0
- package/esm/cli/codegen/orm/select-types.test.d.ts +11 -0
- package/esm/cli/codegen/orm/select-types.test.js +21 -0
- package/esm/cli/codegen/queries.d.ts +25 -0
- package/esm/cli/codegen/queries.js +433 -0
- package/esm/cli/codegen/scalars.d.ts +12 -0
- package/esm/cli/codegen/scalars.js +66 -0
- package/esm/cli/codegen/schema-gql-ast.d.ts +51 -0
- package/esm/cli/codegen/schema-gql-ast.js +343 -0
- package/esm/cli/codegen/ts-ast.d.ts +122 -0
- package/esm/cli/codegen/ts-ast.js +260 -0
- package/esm/cli/codegen/type-resolver.d.ts +96 -0
- package/esm/cli/codegen/type-resolver.js +224 -0
- package/esm/cli/codegen/types.d.ts +12 -0
- package/esm/cli/codegen/types.js +65 -0
- package/esm/cli/codegen/utils.d.ts +163 -0
- package/esm/cli/codegen/utils.js +288 -0
- package/esm/cli/commands/generate-orm.d.ts +37 -0
- package/esm/cli/commands/generate-orm.js +192 -0
- package/esm/cli/commands/generate.d.ts +39 -0
- package/esm/cli/commands/generate.js +262 -0
- package/esm/cli/commands/index.d.ts +7 -0
- package/esm/cli/commands/index.js +5 -0
- package/esm/cli/commands/init.d.ts +35 -0
- package/esm/cli/commands/init.js +138 -0
- package/esm/cli/index.d.ts +4 -0
- package/esm/cli/index.js +256 -0
- package/esm/cli/introspect/fetch-meta.d.ts +31 -0
- package/esm/cli/introspect/fetch-meta.js +104 -0
- package/esm/cli/introspect/fetch-schema.d.ts +21 -0
- package/esm/cli/introspect/fetch-schema.js +83 -0
- package/esm/cli/introspect/index.d.ts +8 -0
- package/esm/cli/introspect/index.js +6 -0
- package/esm/cli/introspect/meta-query.d.ts +111 -0
- package/esm/cli/introspect/meta-query.js +188 -0
- package/esm/cli/introspect/schema-query.d.ts +20 -0
- package/esm/cli/introspect/schema-query.js +120 -0
- package/esm/cli/introspect/transform-schema.d.ts +74 -0
- package/esm/cli/introspect/transform-schema.js +259 -0
- package/esm/cli/introspect/transform-schema.test.d.ts +1 -0
- package/esm/cli/introspect/transform-schema.test.js +65 -0
- package/esm/cli/introspect/transform.d.ts +21 -0
- package/esm/cli/introspect/transform.js +210 -0
- package/esm/cli/watch/cache.d.ts +45 -0
- package/esm/cli/watch/cache.js +73 -0
- package/esm/cli/watch/debounce.d.ts +19 -0
- package/esm/cli/watch/debounce.js +85 -0
- package/esm/cli/watch/hash.d.ts +17 -0
- package/esm/cli/watch/hash.js +43 -0
- package/esm/cli/watch/index.d.ts +10 -0
- package/esm/cli/watch/index.js +8 -0
- package/esm/cli/watch/orchestrator.d.ts +63 -0
- package/esm/cli/watch/orchestrator.js +223 -0
- package/esm/cli/watch/poller.d.ts +65 -0
- package/esm/cli/watch/poller.js +198 -0
- package/esm/cli/watch/types.d.ts +67 -0
- package/esm/cli/watch/types.js +4 -0
- package/esm/client/error.d.ts +95 -0
- package/esm/client/error.js +249 -0
- package/esm/client/execute.d.ts +57 -0
- package/esm/client/execute.js +120 -0
- package/esm/client/index.d.ts +6 -0
- package/esm/client/index.js +6 -0
- package/esm/client/typed-document.d.ts +31 -0
- package/esm/client/typed-document.js +40 -0
- package/esm/core/ast.d.ts +10 -0
- package/esm/core/ast.js +549 -0
- package/esm/core/custom-ast.d.ts +35 -0
- package/esm/core/custom-ast.js +161 -0
- package/esm/core/index.d.ts +8 -0
- package/esm/core/index.js +12 -0
- package/esm/core/meta-object/convert.d.ts +65 -0
- package/esm/core/meta-object/convert.js +60 -0
- package/esm/core/meta-object/format.json +93 -0
- package/esm/core/meta-object/index.d.ts +2 -0
- package/esm/core/meta-object/index.js +2 -0
- package/esm/core/meta-object/validate.d.ts +9 -0
- package/esm/core/meta-object/validate.js +28 -0
- package/esm/core/query-builder.d.ts +46 -0
- package/esm/core/query-builder.js +375 -0
- package/esm/core/types.d.ts +139 -0
- package/esm/core/types.js +24 -0
- package/esm/generators/field-selector.d.ts +30 -0
- package/esm/generators/field-selector.js +355 -0
- package/esm/generators/index.d.ts +6 -0
- package/esm/generators/index.js +9 -0
- package/esm/generators/mutations.d.ts +31 -0
- package/esm/generators/mutations.js +197 -0
- package/esm/generators/select.d.ts +50 -0
- package/esm/generators/select.js +636 -0
- package/esm/index.d.ts +12 -0
- package/esm/index.js +17 -3
- package/esm/react/index.d.ts +5 -0
- package/esm/react/index.js +6 -0
- package/esm/types/config.d.ts +199 -0
- package/esm/types/config.js +106 -0
- package/esm/types/index.d.ts +9 -0
- package/esm/types/index.js +4 -0
- package/esm/types/introspection.d.ts +121 -0
- package/esm/types/introspection.js +54 -0
- package/esm/types/mutation.d.ts +45 -0
- package/esm/types/mutation.js +4 -0
- package/esm/types/query.d.ts +82 -0
- package/esm/types/query.js +4 -0
- package/esm/types/schema.d.ts +253 -0
- package/esm/types/schema.js +5 -0
- package/esm/types/selection.d.ts +43 -0
- package/esm/types/selection.js +4 -0
- package/esm/utils/index.d.ts +4 -0
- package/esm/utils/index.js +4 -0
- package/generators/field-selector.d.ts +30 -0
- package/generators/field-selector.js +361 -0
- package/generators/index.d.ts +6 -0
- package/generators/index.js +27 -0
- package/generators/mutations.d.ts +31 -0
- package/generators/mutations.js +235 -0
- package/generators/select.d.ts +50 -0
- package/generators/select.js +679 -0
- package/index.d.ts +12 -3
- package/index.js +19 -3
- package/package.json +59 -38
- package/react/index.d.ts +5 -0
- package/react/index.js +9 -0
- package/types/config.d.ts +199 -0
- package/types/config.js +111 -0
- package/types/index.d.ts +9 -0
- package/types/index.js +10 -0
- package/types/introspection.d.ts +121 -0
- package/types/introspection.js +62 -0
- package/types/mutation.d.ts +45 -0
- package/types/mutation.js +5 -0
- package/types/query.d.ts +82 -0
- package/types/query.js +5 -0
- package/types/schema.d.ts +253 -0
- package/types/schema.js +6 -0
- package/types/selection.d.ts +43 -0
- package/types/selection.js +5 -0
- package/utils/index.d.ts +4 -0
- package/utils/index.js +7 -0
- package/codegen.d.ts +0 -13
- package/codegen.js +0 -293
- package/esm/codegen.js +0 -253
- package/esm/gql.js +0 -939
- package/esm/options.js +0 -27
- package/gql.d.ts +0 -188
- package/gql.js +0 -992
- package/options.d.ts +0 -45
- package/options.js +0 -31
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.buildListQueryAST = buildListQueryAST;
|
|
37
|
+
exports.buildSingleQueryAST = buildSingleQueryAST;
|
|
38
|
+
exports.buildCreateMutationAST = buildCreateMutationAST;
|
|
39
|
+
exports.buildUpdateMutationAST = buildUpdateMutationAST;
|
|
40
|
+
exports.buildDeleteMutationAST = buildDeleteMutationAST;
|
|
41
|
+
exports.printGraphQL = printGraphQL;
|
|
42
|
+
/**
|
|
43
|
+
* GraphQL AST builders using gql-ast
|
|
44
|
+
*
|
|
45
|
+
* Provides utilities for generating GraphQL queries and mutations via AST
|
|
46
|
+
* instead of string concatenation.
|
|
47
|
+
*/
|
|
48
|
+
const t = __importStar(require("gql-ast"));
|
|
49
|
+
const graphql_1 = require("graphql");
|
|
50
|
+
const utils_1 = require("./utils");
|
|
51
|
+
// ============================================================================
|
|
52
|
+
// Field selection builders
|
|
53
|
+
// ============================================================================
|
|
54
|
+
/**
|
|
55
|
+
* Create field selections from CleanField array
|
|
56
|
+
*/
|
|
57
|
+
function createFieldSelections(fields) {
|
|
58
|
+
return fields.map((field) => t.field({ name: field.name }));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Create pageInfo selection
|
|
62
|
+
*/
|
|
63
|
+
function createPageInfoSelection() {
|
|
64
|
+
return t.field({
|
|
65
|
+
name: 'pageInfo',
|
|
66
|
+
selectionSet: t.selectionSet({
|
|
67
|
+
selections: [
|
|
68
|
+
t.field({ name: 'hasNextPage' }),
|
|
69
|
+
t.field({ name: 'hasPreviousPage' }),
|
|
70
|
+
t.field({ name: 'startCursor' }),
|
|
71
|
+
t.field({ name: 'endCursor' }),
|
|
72
|
+
],
|
|
73
|
+
}),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Build a list query AST for a table
|
|
78
|
+
*/
|
|
79
|
+
function buildListQueryAST(config) {
|
|
80
|
+
const { table } = config;
|
|
81
|
+
const queryName = (0, utils_1.getAllRowsQueryName)(table);
|
|
82
|
+
const filterType = (0, utils_1.getFilterTypeName)(table);
|
|
83
|
+
const orderByType = (0, utils_1.getOrderByTypeName)(table);
|
|
84
|
+
const scalarFields = (0, utils_1.getScalarFields)(table);
|
|
85
|
+
// Variable definitions
|
|
86
|
+
const variableDefinitions = [
|
|
87
|
+
t.variableDefinition({
|
|
88
|
+
variable: t.variable({ name: 'first' }),
|
|
89
|
+
type: t.namedType({ type: 'Int' }),
|
|
90
|
+
}),
|
|
91
|
+
t.variableDefinition({
|
|
92
|
+
variable: t.variable({ name: 'offset' }),
|
|
93
|
+
type: t.namedType({ type: 'Int' }),
|
|
94
|
+
}),
|
|
95
|
+
t.variableDefinition({
|
|
96
|
+
variable: t.variable({ name: 'filter' }),
|
|
97
|
+
type: t.namedType({ type: filterType }),
|
|
98
|
+
}),
|
|
99
|
+
t.variableDefinition({
|
|
100
|
+
variable: t.variable({ name: 'orderBy' }),
|
|
101
|
+
type: t.listType({
|
|
102
|
+
type: t.nonNullType({ type: t.namedType({ type: orderByType }) }),
|
|
103
|
+
}),
|
|
104
|
+
}),
|
|
105
|
+
];
|
|
106
|
+
// Query arguments
|
|
107
|
+
const args = [
|
|
108
|
+
t.argument({ name: 'first', value: t.variable({ name: 'first' }) }),
|
|
109
|
+
t.argument({ name: 'offset', value: t.variable({ name: 'offset' }) }),
|
|
110
|
+
t.argument({ name: 'filter', value: t.variable({ name: 'filter' }) }),
|
|
111
|
+
t.argument({ name: 'orderBy', value: t.variable({ name: 'orderBy' }) }),
|
|
112
|
+
];
|
|
113
|
+
// Field selections
|
|
114
|
+
const fieldSelections = createFieldSelections(scalarFields);
|
|
115
|
+
// Connection fields
|
|
116
|
+
const connectionFields = [
|
|
117
|
+
t.field({ name: 'totalCount' }),
|
|
118
|
+
t.field({
|
|
119
|
+
name: 'nodes',
|
|
120
|
+
selectionSet: t.selectionSet({ selections: fieldSelections }),
|
|
121
|
+
}),
|
|
122
|
+
createPageInfoSelection(),
|
|
123
|
+
];
|
|
124
|
+
return t.document({
|
|
125
|
+
definitions: [
|
|
126
|
+
t.operationDefinition({
|
|
127
|
+
operation: 'query',
|
|
128
|
+
name: `${(0, utils_1.ucFirst)(queryName)}Query`,
|
|
129
|
+
variableDefinitions,
|
|
130
|
+
selectionSet: t.selectionSet({
|
|
131
|
+
selections: [
|
|
132
|
+
t.field({
|
|
133
|
+
name: queryName,
|
|
134
|
+
args,
|
|
135
|
+
selectionSet: t.selectionSet({ selections: connectionFields }),
|
|
136
|
+
}),
|
|
137
|
+
],
|
|
138
|
+
}),
|
|
139
|
+
}),
|
|
140
|
+
],
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Build a single item query AST for a table
|
|
145
|
+
*/
|
|
146
|
+
function buildSingleQueryAST(config) {
|
|
147
|
+
const { table } = config;
|
|
148
|
+
const queryName = (0, utils_1.getSingleRowQueryName)(table);
|
|
149
|
+
const scalarFields = (0, utils_1.getScalarFields)(table);
|
|
150
|
+
// Variable definitions - assume UUID primary key
|
|
151
|
+
const variableDefinitions = [
|
|
152
|
+
t.variableDefinition({
|
|
153
|
+
variable: t.variable({ name: 'id' }),
|
|
154
|
+
type: t.nonNullType({ type: t.namedType({ type: 'UUID' }) }),
|
|
155
|
+
}),
|
|
156
|
+
];
|
|
157
|
+
// Query arguments
|
|
158
|
+
const args = [
|
|
159
|
+
t.argument({ name: 'id', value: t.variable({ name: 'id' }) }),
|
|
160
|
+
];
|
|
161
|
+
// Field selections
|
|
162
|
+
const fieldSelections = createFieldSelections(scalarFields);
|
|
163
|
+
return t.document({
|
|
164
|
+
definitions: [
|
|
165
|
+
t.operationDefinition({
|
|
166
|
+
operation: 'query',
|
|
167
|
+
name: `${(0, utils_1.ucFirst)(queryName)}Query`,
|
|
168
|
+
variableDefinitions,
|
|
169
|
+
selectionSet: t.selectionSet({
|
|
170
|
+
selections: [
|
|
171
|
+
t.field({
|
|
172
|
+
name: queryName,
|
|
173
|
+
args,
|
|
174
|
+
selectionSet: t.selectionSet({ selections: fieldSelections }),
|
|
175
|
+
}),
|
|
176
|
+
],
|
|
177
|
+
}),
|
|
178
|
+
}),
|
|
179
|
+
],
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Build a create mutation AST for a table
|
|
184
|
+
*/
|
|
185
|
+
function buildCreateMutationAST(config) {
|
|
186
|
+
const { table } = config;
|
|
187
|
+
const { typeName, singularName } = (0, utils_1.getTableNames)(table);
|
|
188
|
+
const mutationName = (0, utils_1.getCreateMutationName)(table);
|
|
189
|
+
const inputTypeName = `Create${typeName}Input`;
|
|
190
|
+
const scalarFields = (0, utils_1.getScalarFields)(table);
|
|
191
|
+
// Variable definitions
|
|
192
|
+
const variableDefinitions = [
|
|
193
|
+
t.variableDefinition({
|
|
194
|
+
variable: t.variable({ name: 'input' }),
|
|
195
|
+
type: t.nonNullType({ type: t.namedType({ type: inputTypeName }) }),
|
|
196
|
+
}),
|
|
197
|
+
];
|
|
198
|
+
// Mutation arguments
|
|
199
|
+
const args = [
|
|
200
|
+
t.argument({ name: 'input', value: t.variable({ name: 'input' }) }),
|
|
201
|
+
];
|
|
202
|
+
// Field selections
|
|
203
|
+
const fieldSelections = createFieldSelections(scalarFields);
|
|
204
|
+
return t.document({
|
|
205
|
+
definitions: [
|
|
206
|
+
t.operationDefinition({
|
|
207
|
+
operation: 'mutation',
|
|
208
|
+
name: `${(0, utils_1.ucFirst)(mutationName)}Mutation`,
|
|
209
|
+
variableDefinitions,
|
|
210
|
+
selectionSet: t.selectionSet({
|
|
211
|
+
selections: [
|
|
212
|
+
t.field({
|
|
213
|
+
name: mutationName,
|
|
214
|
+
args,
|
|
215
|
+
selectionSet: t.selectionSet({
|
|
216
|
+
selections: [
|
|
217
|
+
t.field({
|
|
218
|
+
name: singularName,
|
|
219
|
+
selectionSet: t.selectionSet({ selections: fieldSelections }),
|
|
220
|
+
}),
|
|
221
|
+
],
|
|
222
|
+
}),
|
|
223
|
+
}),
|
|
224
|
+
],
|
|
225
|
+
}),
|
|
226
|
+
}),
|
|
227
|
+
],
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Build an update mutation AST for a table
|
|
232
|
+
*/
|
|
233
|
+
function buildUpdateMutationAST(config) {
|
|
234
|
+
const { table } = config;
|
|
235
|
+
const { typeName, singularName } = (0, utils_1.getTableNames)(table);
|
|
236
|
+
const mutationName = (0, utils_1.getUpdateMutationName)(table);
|
|
237
|
+
const inputTypeName = `Update${typeName}Input`;
|
|
238
|
+
const scalarFields = (0, utils_1.getScalarFields)(table);
|
|
239
|
+
// Variable definitions
|
|
240
|
+
const variableDefinitions = [
|
|
241
|
+
t.variableDefinition({
|
|
242
|
+
variable: t.variable({ name: 'input' }),
|
|
243
|
+
type: t.nonNullType({ type: t.namedType({ type: inputTypeName }) }),
|
|
244
|
+
}),
|
|
245
|
+
];
|
|
246
|
+
// Mutation arguments
|
|
247
|
+
const args = [
|
|
248
|
+
t.argument({ name: 'input', value: t.variable({ name: 'input' }) }),
|
|
249
|
+
];
|
|
250
|
+
// Field selections
|
|
251
|
+
const fieldSelections = createFieldSelections(scalarFields);
|
|
252
|
+
return t.document({
|
|
253
|
+
definitions: [
|
|
254
|
+
t.operationDefinition({
|
|
255
|
+
operation: 'mutation',
|
|
256
|
+
name: `${(0, utils_1.ucFirst)(mutationName)}Mutation`,
|
|
257
|
+
variableDefinitions,
|
|
258
|
+
selectionSet: t.selectionSet({
|
|
259
|
+
selections: [
|
|
260
|
+
t.field({
|
|
261
|
+
name: mutationName,
|
|
262
|
+
args,
|
|
263
|
+
selectionSet: t.selectionSet({
|
|
264
|
+
selections: [
|
|
265
|
+
t.field({
|
|
266
|
+
name: singularName,
|
|
267
|
+
selectionSet: t.selectionSet({ selections: fieldSelections }),
|
|
268
|
+
}),
|
|
269
|
+
],
|
|
270
|
+
}),
|
|
271
|
+
}),
|
|
272
|
+
],
|
|
273
|
+
}),
|
|
274
|
+
}),
|
|
275
|
+
],
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Build a delete mutation AST for a table
|
|
280
|
+
*/
|
|
281
|
+
function buildDeleteMutationAST(config) {
|
|
282
|
+
const { table } = config;
|
|
283
|
+
const { typeName } = (0, utils_1.getTableNames)(table);
|
|
284
|
+
const mutationName = (0, utils_1.getDeleteMutationName)(table);
|
|
285
|
+
const inputTypeName = `Delete${typeName}Input`;
|
|
286
|
+
// Variable definitions
|
|
287
|
+
const variableDefinitions = [
|
|
288
|
+
t.variableDefinition({
|
|
289
|
+
variable: t.variable({ name: 'input' }),
|
|
290
|
+
type: t.nonNullType({ type: t.namedType({ type: inputTypeName }) }),
|
|
291
|
+
}),
|
|
292
|
+
];
|
|
293
|
+
// Mutation arguments
|
|
294
|
+
const args = [
|
|
295
|
+
t.argument({ name: 'input', value: t.variable({ name: 'input' }) }),
|
|
296
|
+
];
|
|
297
|
+
return t.document({
|
|
298
|
+
definitions: [
|
|
299
|
+
t.operationDefinition({
|
|
300
|
+
operation: 'mutation',
|
|
301
|
+
name: `${(0, utils_1.ucFirst)(mutationName)}Mutation`,
|
|
302
|
+
variableDefinitions,
|
|
303
|
+
selectionSet: t.selectionSet({
|
|
304
|
+
selections: [
|
|
305
|
+
t.field({
|
|
306
|
+
name: mutationName,
|
|
307
|
+
args,
|
|
308
|
+
selectionSet: t.selectionSet({
|
|
309
|
+
selections: [
|
|
310
|
+
t.field({ name: 'clientMutationId' }),
|
|
311
|
+
t.field({ name: 'deletedId' }),
|
|
312
|
+
],
|
|
313
|
+
}),
|
|
314
|
+
}),
|
|
315
|
+
],
|
|
316
|
+
}),
|
|
317
|
+
}),
|
|
318
|
+
],
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
// ============================================================================
|
|
322
|
+
// Print utilities
|
|
323
|
+
// ============================================================================
|
|
324
|
+
/**
|
|
325
|
+
* Print AST to GraphQL string
|
|
326
|
+
*/
|
|
327
|
+
function printGraphQL(ast) {
|
|
328
|
+
return (0, graphql_1.print)(ast);
|
|
329
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code generation orchestrator
|
|
3
|
+
*
|
|
4
|
+
* Coordinates all code generators to produce the complete SDK output.
|
|
5
|
+
*
|
|
6
|
+
* Output structure:
|
|
7
|
+
* generated/
|
|
8
|
+
* index.ts - Main barrel export
|
|
9
|
+
* client.ts - GraphQL client with configure() and execute()
|
|
10
|
+
* types.ts - Entity interfaces and filter types
|
|
11
|
+
* queries/
|
|
12
|
+
* index.ts - Query hooks barrel
|
|
13
|
+
* useCarsQuery.ts - List query hook (table-based)
|
|
14
|
+
* useCarQuery.ts - Single item query hook (table-based)
|
|
15
|
+
* useCurrentUserQuery.ts - Custom query hook
|
|
16
|
+
* ...
|
|
17
|
+
* mutations/
|
|
18
|
+
* index.ts - Mutation hooks barrel
|
|
19
|
+
* useCreateCarMutation.ts - Table-based CRUD
|
|
20
|
+
* useUpdateCarMutation.ts
|
|
21
|
+
* useDeleteCarMutation.ts
|
|
22
|
+
* useLoginMutation.ts - Custom mutation
|
|
23
|
+
* useRegisterMutation.ts
|
|
24
|
+
* ...
|
|
25
|
+
*/
|
|
26
|
+
import type { CleanTable, CleanOperation, TypeRegistry } from '../../types/schema';
|
|
27
|
+
import type { ResolvedConfig } from '../../types/config';
|
|
28
|
+
export interface GeneratedFile {
|
|
29
|
+
/** Relative path from output directory */
|
|
30
|
+
path: string;
|
|
31
|
+
/** File content */
|
|
32
|
+
content: string;
|
|
33
|
+
}
|
|
34
|
+
export interface GenerateResult {
|
|
35
|
+
files: GeneratedFile[];
|
|
36
|
+
stats: {
|
|
37
|
+
tables: number;
|
|
38
|
+
queryHooks: number;
|
|
39
|
+
mutationHooks: number;
|
|
40
|
+
customQueryHooks: number;
|
|
41
|
+
customMutationHooks: number;
|
|
42
|
+
totalFiles: number;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export interface GenerateOptions {
|
|
46
|
+
/** Tables from _meta introspection */
|
|
47
|
+
tables: CleanTable[];
|
|
48
|
+
/** Custom operations from __schema introspection */
|
|
49
|
+
customOperations?: {
|
|
50
|
+
queries: CleanOperation[];
|
|
51
|
+
mutations: CleanOperation[];
|
|
52
|
+
typeRegistry: TypeRegistry;
|
|
53
|
+
};
|
|
54
|
+
/** Resolved configuration */
|
|
55
|
+
config: ResolvedConfig;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Generate all SDK files for tables only (legacy function signature)
|
|
59
|
+
*/
|
|
60
|
+
export declare function generateAllFiles(tables: CleanTable[], config: ResolvedConfig): GenerateResult;
|
|
61
|
+
/**
|
|
62
|
+
* Generate all SDK files with full support for custom operations
|
|
63
|
+
*/
|
|
64
|
+
export declare function generate(options: GenerateOptions): GenerateResult;
|
|
65
|
+
export { generateClientFile } from './client';
|
|
66
|
+
export { generateTypesFile } from './types';
|
|
67
|
+
export { generateAllQueryHooks, generateListQueryHook, generateSingleQueryHook } from './queries';
|
|
68
|
+
export { generateAllMutationHooks, generateCreateMutationHook, generateUpdateMutationHook, generateDeleteMutationHook, } from './mutations';
|
|
69
|
+
export { generateAllCustomQueryHooks, generateCustomQueryHook } from './custom-queries';
|
|
70
|
+
export { generateAllCustomMutationHooks, generateCustomMutationHook } from './custom-mutations';
|
|
71
|
+
export { generateQueriesBarrel, generateMutationsBarrel, generateMainBarrel, generateCustomQueriesBarrel, generateCustomMutationsBarrel, } from './barrel';
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateCustomMutationsBarrel = exports.generateCustomQueriesBarrel = exports.generateMainBarrel = exports.generateMutationsBarrel = exports.generateQueriesBarrel = exports.generateCustomMutationHook = exports.generateAllCustomMutationHooks = exports.generateCustomQueryHook = exports.generateAllCustomQueryHooks = exports.generateDeleteMutationHook = exports.generateUpdateMutationHook = exports.generateCreateMutationHook = exports.generateAllMutationHooks = exports.generateSingleQueryHook = exports.generateListQueryHook = exports.generateAllQueryHooks = exports.generateTypesFile = exports.generateClientFile = void 0;
|
|
4
|
+
exports.generateAllFiles = generateAllFiles;
|
|
5
|
+
exports.generate = generate;
|
|
6
|
+
const client_1 = require("./client");
|
|
7
|
+
const types_1 = require("./types");
|
|
8
|
+
const queries_1 = require("./queries");
|
|
9
|
+
const mutations_1 = require("./mutations");
|
|
10
|
+
const custom_queries_1 = require("./custom-queries");
|
|
11
|
+
const custom_mutations_1 = require("./custom-mutations");
|
|
12
|
+
const barrel_1 = require("./barrel");
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Main orchestrator
|
|
15
|
+
// ============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Generate all SDK files for tables only (legacy function signature)
|
|
18
|
+
*/
|
|
19
|
+
function generateAllFiles(tables, config) {
|
|
20
|
+
return generate({ tables, config });
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Generate all SDK files with full support for custom operations
|
|
24
|
+
*/
|
|
25
|
+
function generate(options) {
|
|
26
|
+
const { tables, customOperations, config } = options;
|
|
27
|
+
const files = [];
|
|
28
|
+
// Extract codegen options
|
|
29
|
+
const maxDepth = config.codegen.maxFieldDepth;
|
|
30
|
+
const skipQueryField = config.codegen.skipQueryField;
|
|
31
|
+
// 1. Generate client.ts
|
|
32
|
+
files.push({
|
|
33
|
+
path: 'client.ts',
|
|
34
|
+
content: (0, client_1.generateClientFile)(),
|
|
35
|
+
});
|
|
36
|
+
// 2. Generate types.ts
|
|
37
|
+
files.push({
|
|
38
|
+
path: 'types.ts',
|
|
39
|
+
content: (0, types_1.generateTypesFile)(tables),
|
|
40
|
+
});
|
|
41
|
+
// 3. Generate table-based query hooks (queries/*.ts)
|
|
42
|
+
const queryHooks = (0, queries_1.generateAllQueryHooks)(tables);
|
|
43
|
+
for (const hook of queryHooks) {
|
|
44
|
+
files.push({
|
|
45
|
+
path: `queries/${hook.fileName}`,
|
|
46
|
+
content: hook.content,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
// 4. Generate custom query hooks if available
|
|
50
|
+
let customQueryHooks = [];
|
|
51
|
+
if (customOperations && customOperations.queries.length > 0) {
|
|
52
|
+
customQueryHooks = (0, custom_queries_1.generateAllCustomQueryHooks)({
|
|
53
|
+
operations: customOperations.queries,
|
|
54
|
+
typeRegistry: customOperations.typeRegistry,
|
|
55
|
+
maxDepth,
|
|
56
|
+
skipQueryField,
|
|
57
|
+
});
|
|
58
|
+
for (const hook of customQueryHooks) {
|
|
59
|
+
files.push({
|
|
60
|
+
path: `queries/${hook.fileName}`,
|
|
61
|
+
content: hook.content,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// 5. Generate queries/index.ts barrel (includes both table and custom queries)
|
|
66
|
+
files.push({
|
|
67
|
+
path: 'queries/index.ts',
|
|
68
|
+
content: customQueryHooks.length > 0
|
|
69
|
+
? (0, barrel_1.generateCustomQueriesBarrel)(tables, customQueryHooks.map((h) => h.operationName))
|
|
70
|
+
: (0, barrel_1.generateQueriesBarrel)(tables),
|
|
71
|
+
});
|
|
72
|
+
// 6. Generate table-based mutation hooks (mutations/*.ts)
|
|
73
|
+
const mutationHooks = (0, mutations_1.generateAllMutationHooks)(tables);
|
|
74
|
+
for (const hook of mutationHooks) {
|
|
75
|
+
files.push({
|
|
76
|
+
path: `mutations/${hook.fileName}`,
|
|
77
|
+
content: hook.content,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
// 7. Generate custom mutation hooks if available
|
|
81
|
+
let customMutationHooks = [];
|
|
82
|
+
if (customOperations && customOperations.mutations.length > 0) {
|
|
83
|
+
customMutationHooks = (0, custom_mutations_1.generateAllCustomMutationHooks)({
|
|
84
|
+
operations: customOperations.mutations,
|
|
85
|
+
typeRegistry: customOperations.typeRegistry,
|
|
86
|
+
maxDepth,
|
|
87
|
+
skipQueryField,
|
|
88
|
+
});
|
|
89
|
+
for (const hook of customMutationHooks) {
|
|
90
|
+
files.push({
|
|
91
|
+
path: `mutations/${hook.fileName}`,
|
|
92
|
+
content: hook.content,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// 8. Generate mutations/index.ts barrel (includes both table and custom mutations)
|
|
97
|
+
files.push({
|
|
98
|
+
path: 'mutations/index.ts',
|
|
99
|
+
content: customMutationHooks.length > 0
|
|
100
|
+
? (0, barrel_1.generateCustomMutationsBarrel)(tables, customMutationHooks.map((h) => h.operationName))
|
|
101
|
+
: (0, barrel_1.generateMutationsBarrel)(tables),
|
|
102
|
+
});
|
|
103
|
+
// 9. Generate main index.ts barrel
|
|
104
|
+
files.push({
|
|
105
|
+
path: 'index.ts',
|
|
106
|
+
content: (0, barrel_1.generateMainBarrel)(tables),
|
|
107
|
+
});
|
|
108
|
+
return {
|
|
109
|
+
files,
|
|
110
|
+
stats: {
|
|
111
|
+
tables: tables.length,
|
|
112
|
+
queryHooks: queryHooks.length,
|
|
113
|
+
mutationHooks: mutationHooks.length,
|
|
114
|
+
customQueryHooks: customQueryHooks.length,
|
|
115
|
+
customMutationHooks: customMutationHooks.length,
|
|
116
|
+
totalFiles: files.length,
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
// ============================================================================
|
|
121
|
+
// Re-exports for convenience
|
|
122
|
+
// ============================================================================
|
|
123
|
+
var client_2 = require("./client");
|
|
124
|
+
Object.defineProperty(exports, "generateClientFile", { enumerable: true, get: function () { return client_2.generateClientFile; } });
|
|
125
|
+
var types_2 = require("./types");
|
|
126
|
+
Object.defineProperty(exports, "generateTypesFile", { enumerable: true, get: function () { return types_2.generateTypesFile; } });
|
|
127
|
+
var queries_2 = require("./queries");
|
|
128
|
+
Object.defineProperty(exports, "generateAllQueryHooks", { enumerable: true, get: function () { return queries_2.generateAllQueryHooks; } });
|
|
129
|
+
Object.defineProperty(exports, "generateListQueryHook", { enumerable: true, get: function () { return queries_2.generateListQueryHook; } });
|
|
130
|
+
Object.defineProperty(exports, "generateSingleQueryHook", { enumerable: true, get: function () { return queries_2.generateSingleQueryHook; } });
|
|
131
|
+
var mutations_2 = require("./mutations");
|
|
132
|
+
Object.defineProperty(exports, "generateAllMutationHooks", { enumerable: true, get: function () { return mutations_2.generateAllMutationHooks; } });
|
|
133
|
+
Object.defineProperty(exports, "generateCreateMutationHook", { enumerable: true, get: function () { return mutations_2.generateCreateMutationHook; } });
|
|
134
|
+
Object.defineProperty(exports, "generateUpdateMutationHook", { enumerable: true, get: function () { return mutations_2.generateUpdateMutationHook; } });
|
|
135
|
+
Object.defineProperty(exports, "generateDeleteMutationHook", { enumerable: true, get: function () { return mutations_2.generateDeleteMutationHook; } });
|
|
136
|
+
var custom_queries_2 = require("./custom-queries");
|
|
137
|
+
Object.defineProperty(exports, "generateAllCustomQueryHooks", { enumerable: true, get: function () { return custom_queries_2.generateAllCustomQueryHooks; } });
|
|
138
|
+
Object.defineProperty(exports, "generateCustomQueryHook", { enumerable: true, get: function () { return custom_queries_2.generateCustomQueryHook; } });
|
|
139
|
+
var custom_mutations_2 = require("./custom-mutations");
|
|
140
|
+
Object.defineProperty(exports, "generateAllCustomMutationHooks", { enumerable: true, get: function () { return custom_mutations_2.generateAllCustomMutationHooks; } });
|
|
141
|
+
Object.defineProperty(exports, "generateCustomMutationHook", { enumerable: true, get: function () { return custom_mutations_2.generateCustomMutationHook; } });
|
|
142
|
+
var barrel_2 = require("./barrel");
|
|
143
|
+
Object.defineProperty(exports, "generateQueriesBarrel", { enumerable: true, get: function () { return barrel_2.generateQueriesBarrel; } });
|
|
144
|
+
Object.defineProperty(exports, "generateMutationsBarrel", { enumerable: true, get: function () { return barrel_2.generateMutationsBarrel; } });
|
|
145
|
+
Object.defineProperty(exports, "generateMainBarrel", { enumerable: true, get: function () { return barrel_2.generateMainBarrel; } });
|
|
146
|
+
Object.defineProperty(exports, "generateCustomQueriesBarrel", { enumerable: true, get: function () { return barrel_2.generateCustomQueriesBarrel; } });
|
|
147
|
+
Object.defineProperty(exports, "generateCustomMutationsBarrel", { enumerable: true, get: function () { return barrel_2.generateCustomMutationsBarrel; } });
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mutation hook generators using AST-based code generation
|
|
3
|
+
*
|
|
4
|
+
* Output structure:
|
|
5
|
+
* mutations/
|
|
6
|
+
* useCreateCarMutation.ts
|
|
7
|
+
* useUpdateCarMutation.ts
|
|
8
|
+
* useDeleteCarMutation.ts
|
|
9
|
+
*/
|
|
10
|
+
import type { CleanTable } from '../../types/schema';
|
|
11
|
+
export interface GeneratedMutationFile {
|
|
12
|
+
fileName: string;
|
|
13
|
+
content: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Generate create mutation hook file content using AST
|
|
17
|
+
*/
|
|
18
|
+
export declare function generateCreateMutationHook(table: CleanTable): GeneratedMutationFile;
|
|
19
|
+
/**
|
|
20
|
+
* Generate update mutation hook file content using AST
|
|
21
|
+
*/
|
|
22
|
+
export declare function generateUpdateMutationHook(table: CleanTable): GeneratedMutationFile | null;
|
|
23
|
+
/**
|
|
24
|
+
* Generate delete mutation hook file content using AST
|
|
25
|
+
*/
|
|
26
|
+
export declare function generateDeleteMutationHook(table: CleanTable): GeneratedMutationFile | null;
|
|
27
|
+
/**
|
|
28
|
+
* Generate all mutation hook files for all tables
|
|
29
|
+
*/
|
|
30
|
+
export declare function generateAllMutationHooks(tables: CleanTable[]): GeneratedMutationFile[];
|