@luvio/compiler 0.78.0 → 0.82.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/dist/codegen/adapter/adapter-network-cache-policy.js +5 -1
- package/dist/codegen/adapter/adapter-network-cache-policy.js.map +1 -1
- package/dist/codegen/adapter/adapter-param-type-check.js +2 -1
- package/dist/codegen/adapter/adapter-param-type-check.js.map +1 -1
- package/dist/codegen/adapter/index.d.ts +4 -0
- package/dist/codegen/adapter/index.js +5 -1
- package/dist/codegen/adapter/index.js.map +1 -1
- package/dist/codegen/adapter-tests/index.js +1 -1
- package/dist/codegen/adapter-tests/index.js.map +1 -1
- package/dist/codegen/graphql/enum/index.d.ts +2 -2
- package/dist/codegen/graphql/enum/index.js +6 -5
- package/dist/codegen/graphql/enum/index.js.map +1 -1
- package/dist/codegen/graphql/enum/interface.d.ts +4 -0
- package/dist/codegen/graphql/enum/interface.js +32 -0
- package/dist/codegen/graphql/enum/interface.js.map +1 -0
- package/dist/codegen/graphql/source-printer/graphql-adapter-source-printer.d.ts +7 -0
- package/dist/codegen/graphql/source-printer/graphql-adapter-source-printer.js +11 -0
- package/dist/codegen/graphql/source-printer/graphql-adapter-source-printer.js.map +1 -0
- package/dist/codegen/graphql/source-printer/graphql-resource-source-printer.d.ts +7 -0
- package/dist/codegen/graphql/source-printer/graphql-resource-source-printer.js +11 -0
- package/dist/codegen/graphql/source-printer/graphql-resource-source-printer.js.map +1 -0
- package/dist/codegen/graphql/source-printer/graphql-source-printer.d.ts +27 -0
- package/dist/codegen/graphql/source-printer/graphql-source-printer.js +50 -0
- package/dist/codegen/graphql/source-printer/graphql-source-printer.js.map +1 -0
- package/dist/codegen/graphql/source-printer/graphql-type-source-printer.d.ts +13 -0
- package/dist/codegen/graphql/source-printer/graphql-type-source-printer.js +65 -0
- package/dist/codegen/graphql/source-printer/graphql-type-source-printer.js.map +1 -0
- package/dist/codegen/graphql/source-printer/index.d.ts +5 -0
- package/dist/codegen/graphql/source-printer/index.js +12 -0
- package/dist/codegen/graphql/source-printer/index.js.map +1 -0
- package/dist/codegen/graphql/type/constants.d.ts +7 -0
- package/dist/codegen/graphql/type/constants.js +11 -0
- package/dist/codegen/graphql/type/constants.js.map +1 -0
- package/dist/codegen/graphql/type/index.d.ts +3 -2
- package/dist/codegen/graphql/type/index.js +30 -5
- package/dist/codegen/graphql/type/index.js.map +1 -1
- package/dist/codegen/graphql/type/ingest.d.ts +9 -0
- package/dist/codegen/graphql/type/ingest.js +131 -0
- package/dist/codegen/graphql/type/ingest.js.map +1 -0
- package/dist/codegen/graphql/type/interface.d.ts +3 -3
- package/dist/codegen/graphql/type/interface.js +2 -48
- package/dist/codegen/graphql/type/interface.js.map +1 -1
- package/dist/codegen/graphql/union/index.d.ts +2 -2
- package/dist/codegen/graphql/union/index.js +6 -5
- package/dist/codegen/graphql/union/index.js.map +1 -1
- package/dist/codegen/graphql/union/interface.d.ts +4 -0
- package/dist/codegen/graphql/union/interface.js +30 -0
- package/dist/codegen/graphql/union/interface.js.map +1 -0
- package/dist/codegen/graphql/utils/index.d.ts +1 -0
- package/dist/codegen/graphql/utils/index.js +8 -0
- package/dist/codegen/graphql/utils/index.js.map +1 -0
- package/dist/codegen/graphql/utils/types.d.ts +10 -0
- package/dist/codegen/graphql/utils/types.js +45 -0
- package/dist/codegen/graphql/utils/types.js.map +1 -0
- package/dist/codegen/resource/create-resource-request.js +2 -2
- package/dist/codegen/resource/create-resource-request.js.map +1 -1
- package/dist/codegen/rest/source-printer/rest-adapter-source-printer.d.ts +12 -0
- package/dist/codegen/rest/source-printer/rest-adapter-source-printer.js +60 -0
- package/dist/codegen/rest/source-printer/rest-adapter-source-printer.js.map +1 -0
- package/dist/codegen/rest/source-printer/rest-source-printer.d.ts +12 -0
- package/dist/codegen/rest/source-printer/rest-source-printer.js +78 -0
- package/dist/codegen/rest/source-printer/rest-source-printer.js.map +1 -0
- package/dist/codegen/source-writer/file-system-source-writer.d.ts +14 -0
- package/dist/codegen/source-writer/file-system-source-writer.js +31 -0
- package/dist/codegen/source-writer/file-system-source-writer.js.map +1 -0
- package/dist/compiler/raml-compiler.d.ts +15 -0
- package/dist/compiler/raml-compiler.js +34 -0
- package/dist/compiler/raml-compiler.js.map +1 -0
- package/dist/generate.d.ts +3 -5
- package/dist/generate.js +0 -134
- package/dist/generate.js.map +1 -1
- package/dist/interfaces/compiler.d.ts +4 -0
- package/dist/interfaces/compiler.js +3 -0
- package/dist/interfaces/compiler.js.map +1 -0
- package/dist/interfaces/index.d.ts +5 -0
- package/dist/interfaces/index.js +3 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/source-printers/graphql/graphql-adapter-printer.d.ts +6 -0
- package/dist/interfaces/source-printers/graphql/graphql-adapter-printer.js +3 -0
- package/dist/interfaces/source-printers/graphql/graphql-adapter-printer.js.map +1 -0
- package/dist/interfaces/source-printers/graphql/graphql-resource-printer.d.ts +6 -0
- package/dist/interfaces/source-printers/graphql/graphql-resource-printer.js +3 -0
- package/dist/interfaces/source-printers/graphql/graphql-resource-printer.js.map +1 -0
- package/dist/interfaces/source-printers/graphql/graphql-type-printer.d.ts +6 -0
- package/dist/interfaces/source-printers/graphql/graphql-type-printer.js +3 -0
- package/dist/interfaces/source-printers/graphql/graphql-type-printer.js.map +1 -0
- package/dist/interfaces/source-printers/index.d.ts +5 -0
- package/dist/interfaces/source-printers/index.js +3 -0
- package/dist/interfaces/source-printers/index.js.map +1 -0
- package/dist/interfaces/source-printers/rest/rest-adapter-printer.d.ts +5 -0
- package/dist/interfaces/source-printers/rest/rest-adapter-printer.js +3 -0
- package/dist/interfaces/source-printers/rest/rest-adapter-printer.js.map +1 -0
- package/dist/interfaces/source-printers/source-printer.d.ts +6 -0
- package/dist/interfaces/source-printers/source-printer.js +3 -0
- package/dist/interfaces/source-printers/source-printer.js.map +1 -0
- package/dist/interfaces/source-writer.d.ts +6 -0
- package/dist/interfaces/source-writer.js +3 -0
- package/dist/interfaces/source-writer.js.map +1 -0
- package/dist/main.d.ts +8 -3
- package/dist/main.js +16 -5
- package/dist/main.js.map +1 -1
- package/dist/parser/main.d.ts +8 -1
- package/dist/parser/main.js +186 -180
- package/dist/parser/main.js.map +1 -1
- package/dist/utils/files.d.ts +0 -8
- package/dist/utils/files.js +1 -16
- package/dist/utils/files.js.map +1 -1
- package/dist/utils/generation.js +5 -5
- package/dist/utils/generation.js.map +1 -1
- package/dist/utils/imports.js +4 -3
- package/dist/utils/imports.js.map +1 -1
- package/package.json +4 -4
- package/dist/codegen/graphql/index.d.ts +0 -13
- package/dist/codegen/graphql/index.js +0 -87
- package/dist/codegen/graphql/index.js.map +0 -1
- package/dist/parse.d.ts +0 -2
- package/dist/parse.js +0 -14
- package/dist/parse.js.map +0 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FieldDefinitionNode, InterfaceTypeDefinitionNode, ListTypeNode, LuvioGraphQLSchema, NamedTypeNode, ObjectTypeDefinitionNode, TypeNode } from '@luvio/graphql-parser';
|
|
2
|
+
import type { ImportContext } from '../../../utils/imports';
|
|
3
|
+
import type { GraphQLGenerateState } from '../source-printer';
|
|
4
|
+
import type { NormalizableTypes } from '../utils';
|
|
5
|
+
export declare function ingestNamedType(field: FieldDefinitionNode, typeNode: NamedTypeNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
|
|
6
|
+
export declare function ingestListType(field: FieldDefinitionNode, typeNode: ListTypeNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
|
|
7
|
+
export declare function ingestType(field: FieldDefinitionNode, typeNode: TypeNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
|
|
8
|
+
export declare function generateIngestFromDef(luvioSchema: LuvioGraphQLSchema, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
|
|
9
|
+
export declare function generateIngest(state: GraphQLGenerateState, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, importContext: ImportContext): string;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateIngest = exports.generateIngestFromDef = exports.ingestType = exports.ingestListType = exports.ingestNamedType = void 0;
|
|
7
|
+
const deindent_1 = __importDefault(require("../../../utils/deindent"));
|
|
8
|
+
const constants_1 = require("../../shared/constants");
|
|
9
|
+
const utils_1 = require("../utils");
|
|
10
|
+
const constants_2 = require("./constants");
|
|
11
|
+
function ingestNamedType(field, typeNode, importContext, normalizableTypeMap) {
|
|
12
|
+
const typeName = (0, utils_1.resolveTypeName)(typeNode);
|
|
13
|
+
const { importGraphQLArtifact } = importContext;
|
|
14
|
+
// check for ingestable types - non-scalars
|
|
15
|
+
if (normalizableTypeMap[typeName] === undefined) {
|
|
16
|
+
return '';
|
|
17
|
+
}
|
|
18
|
+
const typeNameIngestImport = importGraphQLArtifact(typeName, constants_2.TYPE_INGEST_IDENTIFIER);
|
|
19
|
+
return (0, deindent_1.default) `
|
|
20
|
+
if (data.${field.name.value} !== undefined && data.${field.name.value} !== null) {
|
|
21
|
+
data.${field.name.value} = ${typeNameIngestImport}({
|
|
22
|
+
...state,
|
|
23
|
+
path: {
|
|
24
|
+
parent: null,
|
|
25
|
+
propertyName: '${field.name.value}',
|
|
26
|
+
fullPath: key + '__${field.name.value}'
|
|
27
|
+
},
|
|
28
|
+
data: data.${field.name.value},
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
`;
|
|
32
|
+
}
|
|
33
|
+
exports.ingestNamedType = ingestNamedType;
|
|
34
|
+
function ingestListType(field, typeNode, importContext, normalizableTypeMap) {
|
|
35
|
+
const { importGraphQLArtifact } = importContext;
|
|
36
|
+
const fieldName = field.name.value;
|
|
37
|
+
const typeName = (0, utils_1.resolveTypeName)(typeNode);
|
|
38
|
+
const fullPathIdentifier = `fullPath__${fieldName}`;
|
|
39
|
+
const typeDefinition = normalizableTypeMap[typeName];
|
|
40
|
+
const dataIdentifier = `data.${fieldName}`;
|
|
41
|
+
const collectionIdentifier = `${fieldName}__items`;
|
|
42
|
+
// Non-normalizable types
|
|
43
|
+
if (typeDefinition === undefined) {
|
|
44
|
+
return (0, deindent_1.default) `
|
|
45
|
+
if (${dataIdentifier} !== undefined && ${dataIdentifier} !== null) {
|
|
46
|
+
const ${fullPathIdentifier} = key + '__${fieldName}';
|
|
47
|
+
store.publish(${fullPathIdentifier}, ${dataIdentifier})
|
|
48
|
+
${dataIdentifier} = {
|
|
49
|
+
__ref: ${fullPathIdentifier}
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
`;
|
|
53
|
+
}
|
|
54
|
+
const typeNameIngestImport = importGraphQLArtifact(typeName, constants_2.TYPE_INGEST_IDENTIFIER);
|
|
55
|
+
return (0, deindent_1.default) `
|
|
56
|
+
if(${dataIdentifier} !== undefined && ${dataIdentifier} !== null) {
|
|
57
|
+
const ${collectionIdentifier}: ${constants_1.LUVIO_STORE_LINK_IMPORT}[] = [];
|
|
58
|
+
const ${fullPathIdentifier} = key + '__${fieldName}';
|
|
59
|
+
for(let i = 0, len = ${dataIdentifier}.length; i < len; i++) {
|
|
60
|
+
const item = ${dataIdentifier}[i];
|
|
61
|
+
// add TTL Info
|
|
62
|
+
${collectionIdentifier}[i] = ${typeNameIngestImport}({
|
|
63
|
+
...state,
|
|
64
|
+
path: {
|
|
65
|
+
parent: null,
|
|
66
|
+
propertyName: i,
|
|
67
|
+
fullPath: ${fullPathIdentifier} + i
|
|
68
|
+
},
|
|
69
|
+
data: item,
|
|
70
|
+
})
|
|
71
|
+
}
|
|
72
|
+
${constants_1.LUVIO_STORE_IDENTIFIER}.publish(${fullPathIdentifier}, ${collectionIdentifier})
|
|
73
|
+
${dataIdentifier} = {
|
|
74
|
+
__ref: ${fullPathIdentifier}
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
`;
|
|
78
|
+
}
|
|
79
|
+
exports.ingestListType = ingestListType;
|
|
80
|
+
function ingestType(field, typeNode, importContext, normalizableTypeMap) {
|
|
81
|
+
if (field === undefined) {
|
|
82
|
+
return '';
|
|
83
|
+
}
|
|
84
|
+
switch (typeNode.kind) {
|
|
85
|
+
case 'NamedType':
|
|
86
|
+
return ingestNamedType(field, typeNode, importContext, normalizableTypeMap);
|
|
87
|
+
case 'ListType':
|
|
88
|
+
return ingestListType(field, typeNode, importContext, normalizableTypeMap);
|
|
89
|
+
default:
|
|
90
|
+
return ingestType(field, typeNode.type, importContext, normalizableTypeMap);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.ingestType = ingestType;
|
|
94
|
+
function generateIngestFromDef(luvioSchema, def, importContext, normalizableTypeMap) {
|
|
95
|
+
const { schema } = luvioSchema;
|
|
96
|
+
const type = schema.getType(def.name.value);
|
|
97
|
+
const fieldMap = type.getFields();
|
|
98
|
+
const fieldList = Object.keys(fieldMap);
|
|
99
|
+
const statements = fieldList.map((fieldName) => {
|
|
100
|
+
var _a, _b;
|
|
101
|
+
const field = fieldMap[fieldName];
|
|
102
|
+
if (((_a = field.astNode) === null || _a === void 0 ? void 0 : _a.type) === undefined) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
return ingestType(field.astNode, (_b = field.astNode) === null || _b === void 0 ? void 0 : _b.type, importContext, normalizableTypeMap);
|
|
106
|
+
});
|
|
107
|
+
return statements.filter((statement) => statement !== '').join('\n');
|
|
108
|
+
}
|
|
109
|
+
exports.generateIngestFromDef = generateIngestFromDef;
|
|
110
|
+
function generateIngest(state, def, importContext) {
|
|
111
|
+
const { schema } = state;
|
|
112
|
+
const { importGraphQLArtifact } = importContext;
|
|
113
|
+
const normalizableTypeMap = (0, utils_1.getNormalizableTypeMap)(schema.schema);
|
|
114
|
+
const createLink = importGraphQLArtifact(constants_2.TYPE_UTIL_IDENTIFIER, constants_2.CREATE_LINK_IDENTIFIER);
|
|
115
|
+
const graphQLStateInterface = importGraphQLArtifact(constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GRAPHQL_STATE_INTERFACE_IDENTIFIER);
|
|
116
|
+
return (0, deindent_1.default) `
|
|
117
|
+
export function ingest<D>(state: ${graphQLStateInterface}<D>) {
|
|
118
|
+
const { path, ${constants_1.LUVIO_STORE_IDENTIFIER} } = state;
|
|
119
|
+
const data: any = state.data;
|
|
120
|
+
const key = ${constants_2.KEY_BUILDER_IDENTIFIER}(path, data as any);
|
|
121
|
+
// normalize
|
|
122
|
+
${generateIngestFromDef(schema, def, importContext, normalizableTypeMap)};
|
|
123
|
+
|
|
124
|
+
// publish
|
|
125
|
+
${constants_1.LUVIO_STORE_IDENTIFIER}.publish(key, data);
|
|
126
|
+
return ${createLink}(key);
|
|
127
|
+
}
|
|
128
|
+
`;
|
|
129
|
+
}
|
|
130
|
+
exports.generateIngest = generateIngest;
|
|
131
|
+
//# sourceMappingURL=ingest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/ingest.ts"],"names":[],"mappings":";;;;;;AAUA,uEAA+C;AAE/C,sDAAyF;AAGzF,oCAAmE;AACnE,2CAMqB;AAErB,SAAgB,eAAe,CAC3B,KAA0B,EAC1B,QAAuB,EACvB,aAA4B,EAC5B,mBAAsC;IAEtC,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAAC;IAChD,2CAA2C;IAC3C,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;QAC7C,OAAO,EAAE,CAAC;KACb;IAED,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,kCAAsB,CAAC,CAAC;IAErF,OAAO,IAAA,kBAAQ,EAAA;mBACA,KAAK,CAAC,IAAI,CAAC,KAAK,0BAA0B,KAAK,CAAC,IAAI,CAAC,KAAK;mBAC1D,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,oBAAoB;;;;qCAIxB,KAAK,CAAC,IAAI,CAAC,KAAK;yCACZ,KAAK,CAAC,IAAI,CAAC,KAAK;;6BAE5B,KAAK,CAAC,IAAI,CAAC,KAAK;;;KAGxC,CAAC;AACN,CAAC;AA5BD,0CA4BC;AAED,SAAgB,cAAc,CAC1B,KAA0B,EAC1B,QAAsB,EACtB,aAA4B,EAC5B,mBAAsC;IAEtC,MAAM,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,kBAAkB,GAAG,aAAa,SAAS,EAAE,CAAC;IACpD,MAAM,cAAc,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,QAAQ,SAAS,EAAE,CAAC;IAC3C,MAAM,oBAAoB,GAAG,GAAG,SAAS,SAAS,CAAC;IAEnD,yBAAyB;IACzB,IAAI,cAAc,KAAK,SAAS,EAAE;QAC9B,OAAO,IAAA,kBAAQ,EAAA;cACT,cAAc,qBAAqB,cAAc;oBAC3C,kBAAkB,eAAe,SAAS;4BAClC,kBAAkB,KAAK,cAAc;cACnD,cAAc;yBACH,kBAAkB;;;KAGtC,CAAC;KACD;IAED,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,kCAAsB,CAAC,CAAC;IAErF,OAAO,IAAA,kBAAQ,EAAA;aACN,cAAc,qBAAqB,cAAc;oBAC1C,oBAAoB,KAAK,mCAAuB;oBAChD,kBAAkB,eAAe,SAAS;mCAC3B,cAAc;+BAClB,cAAc;;kBAE3B,oBAAoB,SAAS,oBAAoB;;;;;oCAK/B,kBAAkB;;;;;cAKxC,kCAAsB,YAAY,kBAAkB,KAAK,oBAAoB;cAC7E,cAAc;yBACH,kBAAkB;;;KAGtC,CAAC;AACN,CAAC;AApDD,wCAoDC;AAED,SAAgB,UAAU,CACtB,KAA0B,EAC1B,QAAkB,EAClB,aAA4B,EAC5B,mBAAsC;IAEtC,IAAI,KAAK,KAAK,SAAS,EAAE;QACrB,OAAO,EAAE,CAAC;KACb;IAED,QAAQ,QAAQ,CAAC,IAAI,EAAE;QACnB,KAAK,WAAW;YACZ,OAAO,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;QAChF,KAAK,UAAU;YACX,OAAO,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;QAC/E;YACI,OAAO,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;KACnF;AACL,CAAC;AAlBD,gCAkBC;AAED,SAAgB,qBAAqB,CACjC,WAA+B,EAC/B,GAA2D,EAC3D,aAA4B,EAC5B,mBAAsC;IAEtC,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAsB,CAAC;IACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAElC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAExC,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAElC,IAAI,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAI,MAAK,SAAS,EAAE;YACnC,OAAO;SACV;QACD,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAI,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC;AAtBD,sDAsBC;AAED,SAAgB,cAAc,CAC1B,KAA2B,EAC3B,GAA2D,EAC3D,aAA4B;IAE5B,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAAC;IAChD,MAAM,mBAAmB,GAAG,IAAA,8BAAsB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,qBAAqB,CAAC,gCAAoB,EAAE,kCAAsB,CAAC,CAAC;IACvF,MAAM,qBAAqB,GAAG,qBAAqB,CAC/C,gCAAoB,EACpB,8CAAkC,CACrC,CAAC;IAEF,OAAO,IAAA,kBAAQ,EAAA;2CACwB,qBAAqB;4BACpC,kCAAsB;;0BAExB,kCAAsB;;cAElC,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,mBAAmB,CAAC;;;cAGtE,kCAAsB;qBACf,UAAU;;KAE1B,CAAC;AACN,CAAC;AA3BD,wCA2BC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { GraphQLGenerateState } from '
|
|
1
|
+
import type { InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode, TypeNode } from '@luvio/graphql-parser';
|
|
2
|
+
import type { GraphQLGenerateState, GraphQLCodegenMetadata } from '../source-printer/graphql-source-printer';
|
|
3
3
|
import type { ImportContext } from '../../../utils/imports';
|
|
4
4
|
export declare const TYPE_INTERFACE_IDENTIFIER = "Interface";
|
|
5
5
|
export declare const MINIMUM_INTERFACE_IDENTIFIER: string;
|
|
@@ -8,4 +8,4 @@ export declare function generateTypeReference(type: TypeNode, importContext: Imp
|
|
|
8
8
|
required: boolean;
|
|
9
9
|
array: boolean;
|
|
10
10
|
}): string;
|
|
11
|
-
export declare function generateInterface(state: GraphQLGenerateState, name: string, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode
|
|
11
|
+
export declare function generateInterface(state: GraphQLGenerateState, name: string, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
|
|
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.generateInterface = exports.generateTypeReference = exports.PARTIAL_INTERFACE_IDENTIFIER = exports.MINIMUM_INTERFACE_IDENTIFIER = exports.TYPE_INTERFACE_IDENTIFIER = void 0;
|
|
7
|
-
const graphql_parser_1 = require("@luvio/graphql-parser");
|
|
8
7
|
const deindent_1 = __importDefault(require("../../../utils/deindent"));
|
|
9
8
|
const key_1 = require("./key");
|
|
10
9
|
exports.TYPE_INTERFACE_IDENTIFIER = 'Interface';
|
|
@@ -88,53 +87,8 @@ function generateObjectTypeDefinitionNode(name, def, importContext, scalarToPrim
|
|
|
88
87
|
export type ${exports.PARTIAL_INTERFACE_IDENTIFIER} = ${partialDef};
|
|
89
88
|
`;
|
|
90
89
|
}
|
|
91
|
-
function
|
|
92
|
-
|
|
93
|
-
if (values === undefined) {
|
|
94
|
-
return (0, deindent_1.default) `
|
|
95
|
-
enum ${exports.TYPE_INTERFACE_IDENTIFIER} {}
|
|
96
|
-
`;
|
|
97
|
-
}
|
|
98
|
-
const rendered = values.map((value) => {
|
|
99
|
-
const { value: enumName } = value.name;
|
|
100
|
-
return (0, deindent_1.default) `
|
|
101
|
-
${enumName} = '${enumName}'
|
|
102
|
-
`;
|
|
103
|
-
});
|
|
104
|
-
return (0, deindent_1.default) `
|
|
105
|
-
export enum ${exports.TYPE_INTERFACE_IDENTIFIER} {
|
|
106
|
-
${rendered.join(',\n')}
|
|
107
|
-
}
|
|
108
|
-
`;
|
|
109
|
-
}
|
|
110
|
-
function generateUnionDefinitionNode(name, def, importContext, scalarToPrimitiveMap) {
|
|
111
|
-
const { types } = def;
|
|
112
|
-
if (types === undefined) {
|
|
113
|
-
return (0, deindent_1.default) `
|
|
114
|
-
export type ${exports.TYPE_INTERFACE_IDENTIFIER} = never;
|
|
115
|
-
`;
|
|
116
|
-
}
|
|
117
|
-
const unions = types.map((type) => {
|
|
118
|
-
return generateTypeReference(type, importContext, scalarToPrimitiveMap, {
|
|
119
|
-
required: true,
|
|
120
|
-
array: false,
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
return (0, deindent_1.default) `
|
|
124
|
-
export type ${exports.TYPE_INTERFACE_IDENTIFIER} = ${unions.join(' | ')}
|
|
125
|
-
`;
|
|
126
|
-
}
|
|
127
|
-
function generateInterface(state, name, def, importContext) {
|
|
128
|
-
switch (def.kind) {
|
|
129
|
-
case graphql_parser_1.Kind.OBJECT_TYPE_DEFINITION:
|
|
130
|
-
case graphql_parser_1.Kind.INTERFACE_TYPE_DEFINITION:
|
|
131
|
-
return generateObjectTypeDefinitionNode(name, def, importContext, state.scalarToPrimitiveMap);
|
|
132
|
-
case graphql_parser_1.Kind.UNION_TYPE_DEFINITION:
|
|
133
|
-
return generateUnionDefinitionNode(name, def, importContext, state.scalarToPrimitiveMap);
|
|
134
|
-
case graphql_parser_1.Kind.ENUM_TYPE_DEFINITION:
|
|
135
|
-
return generateEnumDefinitionNode(name, def);
|
|
136
|
-
}
|
|
137
|
-
return '';
|
|
90
|
+
function generateInterface(state, name, def, importContext, metadata) {
|
|
91
|
+
return generateObjectTypeDefinitionNode(name, def, importContext, metadata.scalarToPrimitiveMap);
|
|
138
92
|
}
|
|
139
93
|
exports.generateInterface = generateInterface;
|
|
140
94
|
//# sourceMappingURL=interface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/interface.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { UnionTypeDefinitionNode } from '@luvio/graphql-parser';
|
|
2
|
-
import type { GraphQLGenerateState } from '..';
|
|
3
2
|
import type { ImportContext } from '../../../utils/imports';
|
|
4
|
-
|
|
3
|
+
import type { GraphQLGenerateState, GraphQLCodegenMetadata } from '../source-printer/graphql-source-printer';
|
|
4
|
+
export declare function generate(state: GraphQLGenerateState, name: string, def: UnionTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
|
|
@@ -5,11 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.generate = void 0;
|
|
7
7
|
const deindent_1 = __importDefault(require("../../../utils/deindent"));
|
|
8
|
-
const interface_1 = require("
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
const interface_1 = require("./interface");
|
|
9
|
+
const imports_1 = require("../../../utils/imports");
|
|
10
|
+
function generate(state, name, def, importContext, metadata) {
|
|
11
|
+
return (0, imports_1.resolveImports)((0, deindent_1.default) `
|
|
12
|
+
${(0, interface_1.generateInterface)(state, name, def, importContext, metadata)}
|
|
13
|
+
`);
|
|
13
14
|
}
|
|
14
15
|
exports.generate = generate;
|
|
15
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/union/index.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/union/index.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAE/C,2CAAgD;AAChD,oDAAwD;AAMxD,SAAgB,QAAQ,CACpB,KAA2B,EAC3B,IAAY,EACZ,GAA4B,EAC5B,aAA4B,EAC5B,QAAgC;IAEhC,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;UACxB,IAAA,6BAAiB,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;KACjE,CAAC,CAAC;AACP,CAAC;AAVD,4BAUC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { UnionTypeDefinitionNode } from '@luvio/graphql-parser';
|
|
2
|
+
import type { ImportContext } from '../../../utils/imports';
|
|
3
|
+
import type { GraphQLCodegenMetadata, GraphQLGenerateState } from '../source-printer/graphql-source-printer';
|
|
4
|
+
export declare function generateInterface(state: GraphQLGenerateState, name: string, def: UnionTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateInterface = void 0;
|
|
7
|
+
const deindent_1 = __importDefault(require("../../../utils/deindent"));
|
|
8
|
+
const interface_1 = require("../type/interface");
|
|
9
|
+
function generateInterface(state, name, def, importContext, metadata) {
|
|
10
|
+
return generateUnionDefinitionNode(name, def, importContext, metadata.scalarToPrimitiveMap);
|
|
11
|
+
}
|
|
12
|
+
exports.generateInterface = generateInterface;
|
|
13
|
+
function generateUnionDefinitionNode(name, def, importContext, scalarToPrimitiveMap) {
|
|
14
|
+
const { types } = def;
|
|
15
|
+
if (types === undefined) {
|
|
16
|
+
return (0, deindent_1.default) `
|
|
17
|
+
export type ${interface_1.TYPE_INTERFACE_IDENTIFIER} = never;
|
|
18
|
+
`;
|
|
19
|
+
}
|
|
20
|
+
const unions = types.map((type) => {
|
|
21
|
+
return (0, interface_1.generateTypeReference)(type, importContext, scalarToPrimitiveMap, {
|
|
22
|
+
required: true,
|
|
23
|
+
array: false,
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
return (0, deindent_1.default) `
|
|
27
|
+
export type ${interface_1.TYPE_INTERFACE_IDENTIFIER} = ${unions.join(' | ')}
|
|
28
|
+
`;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/union/interface.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAM/C,iDAAqF;AAErF,SAAgB,iBAAiB,CAC7B,KAA2B,EAC3B,IAAY,EACZ,GAA4B,EAC5B,aAA4B,EAC5B,QAAgC;IAEhC,OAAO,2BAA2B,CAAC,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAChG,CAAC;AARD,8CAQC;AAED,SAAS,2BAA2B,CAChC,IAAY,EACZ,GAA4B,EAC5B,aAA4B,EAC5B,oBAA4C;IAE5C,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAEtB,IAAI,KAAK,KAAK,SAAS,EAAE;QACrB,OAAO,IAAA,kBAAQ,EAAA;0BACG,qCAAyB;SAC1C,CAAC;KACL;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,OAAO,IAAA,iCAAqB,EAAC,IAAI,EAAE,aAAa,EAAE,oBAAoB,EAAE;YACpE,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,KAAK;SACf,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,OAAO,IAAA,kBAAQ,EAAA;sBACG,qCAAyB,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;KAClE,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { resolveTypeName, resolveFieldTypeName, getNormalizableTypeMap, NormalizableTypes, } from './types';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNormalizableTypeMap = exports.resolveFieldTypeName = exports.resolveTypeName = void 0;
|
|
4
|
+
var types_1 = require("./types");
|
|
5
|
+
Object.defineProperty(exports, "resolveTypeName", { enumerable: true, get: function () { return types_1.resolveTypeName; } });
|
|
6
|
+
Object.defineProperty(exports, "resolveFieldTypeName", { enumerable: true, get: function () { return types_1.resolveFieldTypeName; } });
|
|
7
|
+
Object.defineProperty(exports, "getNormalizableTypeMap", { enumerable: true, get: function () { return types_1.getNormalizableTypeMap; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/utils/index.ts"],"names":[],"mappings":";;;AAAA,iCAKiB;AAJb,wGAAA,eAAe,OAAA;AACf,6GAAA,oBAAoB,OAAA;AACpB,+GAAA,sBAAsB,OAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { GraphQLInterfaceType, GraphQLObjectType, LuvioGraphQLSchema, TypeNode } from '@luvio/graphql-parser';
|
|
2
|
+
export declare type NormalizableTypes = Record<string, GraphQLInterfaceType | GraphQLObjectType<any, any>>;
|
|
3
|
+
export declare function resolveTypeName(typeNode: TypeNode): string;
|
|
4
|
+
export declare function resolveFieldTypeName(schema: LuvioGraphQLSchema['schema'], field: any): string | null;
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* @param schema : GraphQLSchema
|
|
8
|
+
* @returns : NormalizableTypes Map
|
|
9
|
+
*/
|
|
10
|
+
export declare function getNormalizableTypeMap(schema: LuvioGraphQLSchema['schema']): NormalizableTypes;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNormalizableTypeMap = exports.resolveFieldTypeName = exports.resolveTypeName = void 0;
|
|
4
|
+
function resolveTypeName(typeNode) {
|
|
5
|
+
switch (typeNode.kind) {
|
|
6
|
+
case 'NamedType':
|
|
7
|
+
return typeNode.name.value;
|
|
8
|
+
default:
|
|
9
|
+
return resolveTypeName(typeNode.type);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.resolveTypeName = resolveTypeName;
|
|
13
|
+
function resolveFieldTypeName(schema, field) {
|
|
14
|
+
const typeName = resolveTypeName(field.astNode.type);
|
|
15
|
+
const type = schema.getType(typeName);
|
|
16
|
+
if (type === null || type === undefined) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return type.name;
|
|
20
|
+
}
|
|
21
|
+
exports.resolveFieldTypeName = resolveFieldTypeName;
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @param schema : GraphQLSchema
|
|
25
|
+
* @returns : NormalizableTypes Map
|
|
26
|
+
*/
|
|
27
|
+
function getNormalizableTypeMap(schema) {
|
|
28
|
+
var _a, _b;
|
|
29
|
+
const typeMap = schema.getTypeMap();
|
|
30
|
+
const typeNames = Object.keys(typeMap);
|
|
31
|
+
const normalizableTypeMap = {};
|
|
32
|
+
for (const typeName of typeNames) {
|
|
33
|
+
const type = typeMap[typeName];
|
|
34
|
+
if (((_a = type.astNode) === null || _a === void 0 ? void 0 : _a.kind) === 'InterfaceTypeDefinition' ||
|
|
35
|
+
((_b = type.astNode) === null || _b === void 0 ? void 0 : _b.kind) === 'ObjectTypeDefinition') {
|
|
36
|
+
// Even though we are filtering the types based on kind
|
|
37
|
+
// TS still thinks we might be assigning other types like Scalar which aren't permitted
|
|
38
|
+
// @ts-ignore
|
|
39
|
+
normalizableTypeMap[typeName] = type;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return normalizableTypeMap;
|
|
43
|
+
}
|
|
44
|
+
exports.getNormalizableTypeMap = getNormalizableTypeMap;
|
|
45
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/utils/types.ts"],"names":[],"mappings":";;;AASA,SAAgB,eAAe,CAAC,QAAkB;IAC9C,QAAQ,QAAQ,CAAC,IAAI,EAAE;QACnB,KAAK,WAAW;YACZ,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/B;YACI,OAAO,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC7C;AACL,CAAC;AAPD,0CAOC;AAED,SAAgB,oBAAoB,CAChC,MAAoC,EACpC,KAAU;IAEV,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;QACrC,OAAO,IAAI,CAAC;KACf;IAED,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,CAAC;AAbD,oDAaC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,MAAoC;;IACvE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,mBAAmB,GAAsB,EAAE,CAAC;IAElD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/B,IACI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,MAAK,yBAAyB;YAChD,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,MAAK,sBAAsB,EAC/C;YACE,uDAAuD;YACvD,uFAAuF;YACvF,aAAa;YACb,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;SACxC;KACJ;IAED,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AApBD,wDAoBC"}
|
|
@@ -104,8 +104,8 @@ function generateFulfill(importContext, resource, compilerConfig, relPath) {
|
|
|
104
104
|
return '';
|
|
105
105
|
}
|
|
106
106
|
const { importAbsolutePath } = importContext;
|
|
107
|
-
const {
|
|
108
|
-
const absResourceLocation = path_1.default.resolve(
|
|
107
|
+
const { outputDirectory } = compilerConfig.sourceWriter;
|
|
108
|
+
const absResourceLocation = path_1.default.resolve(outputDirectory, path_1.default.dirname(relPath));
|
|
109
109
|
return importAbsolutePath(absResourceLocation, 'default');
|
|
110
110
|
}
|
|
111
111
|
function generateCreateResourceRequest(importContext, resource, compilerConfig, relPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-resource-request.js","sourceRoot":"","sources":["../../../src/codegen/resource/create-resource-request.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"create-resource-request.js","sourceRoot":"","sources":["../../../src/codegen/resource/create-resource-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RestAdapterPrinter } from '../../../interfaces/source-printers/rest/rest-adapter-printer';
|
|
2
|
+
import type { CodeGenerationEnvironment, CompilerEnvironment } from '../../../generate';
|
|
3
|
+
import type { RestResource } from '../../../intermediate/resource';
|
|
4
|
+
import type { ModelInfo } from '../../../intermediate/model-info';
|
|
5
|
+
import type { AdapterAnnotation } from '../../../intermediate/adapter-annotation';
|
|
6
|
+
export declare class RestAdapterSourcePrinter implements RestAdapterPrinter {
|
|
7
|
+
private adapterDirName;
|
|
8
|
+
private env;
|
|
9
|
+
constructor(adapterDirName: string, env: CompilerEnvironment);
|
|
10
|
+
generate(resource: RestResource, modelInfo: ModelInfo): Record<string, string>;
|
|
11
|
+
generateAdapter(env: CodeGenerationEnvironment, adapterAnnotation: AdapterAnnotation, resource: RestResource, modelInfo: ModelInfo): string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RestAdapterSourcePrinter = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const imports_1 = require("../../../utils/imports");
|
|
9
|
+
const adapter_tests_1 = require("../../adapter-tests");
|
|
10
|
+
const adapter_1 = require("../../adapter");
|
|
11
|
+
class RestAdapterSourcePrinter {
|
|
12
|
+
constructor(adapterDirName, env) {
|
|
13
|
+
this.adapterDirName = adapterDirName;
|
|
14
|
+
this.env = env;
|
|
15
|
+
}
|
|
16
|
+
generate(resource, modelInfo) {
|
|
17
|
+
const { adapter } = resource;
|
|
18
|
+
const modules = {};
|
|
19
|
+
if (adapter === undefined) {
|
|
20
|
+
return modules;
|
|
21
|
+
}
|
|
22
|
+
const { config: compilerConfig, plugin } = this.env;
|
|
23
|
+
const adapterRelPath = `${this.adapterDirName}/${adapter.name}.ts`;
|
|
24
|
+
const adapterAbsPath = path_1.default.resolve(compilerConfig.sourceWriter.outputDirectory, adapterRelPath);
|
|
25
|
+
const adapterConfig = {
|
|
26
|
+
compiler: this.env,
|
|
27
|
+
output: path_1.default.parse(adapterAbsPath),
|
|
28
|
+
};
|
|
29
|
+
modules[adapterRelPath] = this.generateAdapter(adapterConfig, adapter, resource, modelInfo);
|
|
30
|
+
// generate adapter tests as well
|
|
31
|
+
// TODO: move generateAdapterTestModules to a private method here.
|
|
32
|
+
const testModules = (0, adapter_tests_1.generateAdapterTestModules)(compilerConfig, adapter, resource, this.adapterDirName, plugin);
|
|
33
|
+
for (const key of Object.keys(testModules)) {
|
|
34
|
+
modules[key] = testModules[key];
|
|
35
|
+
}
|
|
36
|
+
return modules;
|
|
37
|
+
}
|
|
38
|
+
generateAdapter(env, adapterAnnotation, resource, modelInfo) {
|
|
39
|
+
const { method: resourceMethod, alternativeMethod } = resource;
|
|
40
|
+
const method = alternativeMethod || resourceMethod;
|
|
41
|
+
let code;
|
|
42
|
+
switch (method) {
|
|
43
|
+
case 'patch':
|
|
44
|
+
case 'put':
|
|
45
|
+
code = (0, adapter_1.generatePatchAdapter)(env, adapterAnnotation, resource, modelInfo);
|
|
46
|
+
break;
|
|
47
|
+
case 'delete':
|
|
48
|
+
code = (0, adapter_1.generateDeleteAdapter)(env, adapterAnnotation, resource, modelInfo);
|
|
49
|
+
break;
|
|
50
|
+
case 'post':
|
|
51
|
+
code = (0, adapter_1.generatePostAdapter)(env, adapterAnnotation, resource, modelInfo);
|
|
52
|
+
break;
|
|
53
|
+
default:
|
|
54
|
+
code = (0, adapter_1.generateGetAdapter)(env, adapterAnnotation, resource, modelInfo);
|
|
55
|
+
}
|
|
56
|
+
return (0, imports_1.resolveImports)(code);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.RestAdapterSourcePrinter = RestAdapterSourcePrinter;
|
|
60
|
+
//# sourceMappingURL=rest-adapter-source-printer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest-adapter-source-printer.js","sourceRoot":"","sources":["../../../../src/codegen/rest/source-printer/rest-adapter-source-printer.ts"],"names":[],"mappings":";;;;;;AAMA,gDAAwB;AACxB,oDAAwD;AACxD,uDAAiE;AACjE,2CAKuB;AAEvB,MAAa,wBAAwB;IACjC,YAAoB,cAAsB,EAAU,GAAwB;QAAxD,mBAAc,GAAd,cAAc,CAAQ;QAAU,QAAG,GAAH,GAAG,CAAqB;IAAG,CAAC;IAEhF,QAAQ,CAAC,QAAsB,EAAE,SAAoB;QACjD,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;QAC7B,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,OAAO,KAAK,SAAS,EAAE;YACvB,OAAO,OAAO,CAAC;SAClB;QACD,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACpD,MAAM,cAAc,GAAG,GAAG,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;QACnE,MAAM,cAAc,GAAG,cAAI,CAAC,OAAO,CAC/B,cAAc,CAAC,YAAY,CAAC,eAAe,EAC3C,cAAc,CACjB,CAAC;QACF,MAAM,aAAa,GAA8B;YAC7C,QAAQ,EAAE,IAAI,CAAC,GAAG;YAClB,MAAM,EAAE,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC;SACrC,CAAC;QAEF,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE5F,iCAAiC;QACjC,kEAAkE;QAClE,MAAM,WAAW,GAAG,IAAA,0CAA0B,EAC1C,cAAc,EACd,OAAO,EACP,QAAQ,EACR,IAAI,CAAC,cAAc,EACnB,MAAM,CACT,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACxC,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;SACnC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,eAAe,CACX,GAA8B,EAC9B,iBAAoC,EACpC,QAAsB,EACtB,SAAoB;QAEpB,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,QAAQ,CAAC;QAC/D,MAAM,MAAM,GAAG,iBAAiB,IAAI,cAAc,CAAC;QAEnD,IAAI,IAAI,CAAC;QACT,QAAQ,MAAM,EAAE;YACZ,KAAK,OAAO,CAAC;YACb,KAAK,KAAK;gBACN,IAAI,GAAG,IAAA,8BAAoB,EAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACzE,MAAM;YACV,KAAK,QAAQ;gBACT,IAAI,GAAG,IAAA,+BAAqB,EAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAC1E,MAAM;YACV,KAAK,MAAM;gBACP,IAAI,GAAG,IAAA,6BAAmB,EAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACxE,MAAM;YACV;gBACI,IAAI,GAAG,IAAA,4BAAkB,EAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;SAC9E;QAED,OAAO,IAAA,wBAAc,EAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACJ;AAhED,4DAgEC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SourcePrinter } from '../../../interfaces';
|
|
2
|
+
import type { ModelInfo } from '../../../main';
|
|
3
|
+
import type { CompilerEnvironment } from '../../../generate';
|
|
4
|
+
import type { RestAdapterPrinter } from '../../../interfaces/source-printers/rest/rest-adapter-printer';
|
|
5
|
+
export declare class RestSourcePrinter implements SourcePrinter {
|
|
6
|
+
private env;
|
|
7
|
+
private restAdapterPrinter;
|
|
8
|
+
constructor(env: CompilerEnvironment, restAdapterPrinter: RestAdapterPrinter);
|
|
9
|
+
generateModules(modelInfo: ModelInfo): {
|
|
10
|
+
[path: string]: string;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RestSourcePrinter = void 0;
|
|
7
|
+
const resource_1 = require("../../resource");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const adapter_utils_1 = require("../../adapter-utils");
|
|
10
|
+
const shape_1 = require("../../shape");
|
|
11
|
+
const cursor_based_1 = require("../../../codegen/pagination-utils/cursor-based");
|
|
12
|
+
const synthetic_cursor_1 = require("../../../codegen/pagination-utils/synthetic-cursor");
|
|
13
|
+
const utils_1 = require("../../../intermediate/utils");
|
|
14
|
+
const imports_1 = require("../../../utils/imports");
|
|
15
|
+
const pagination_1 = require("../../../intermediate/pagination");
|
|
16
|
+
const RESOURCES_DIRECTORY_NAME = 'resources';
|
|
17
|
+
const TYPES_DIRECTORY_NAME = 'types';
|
|
18
|
+
const PAGINATION_DIRECTORY_NAME = 'pagination';
|
|
19
|
+
class RestSourcePrinter {
|
|
20
|
+
constructor(env, restAdapterPrinter) {
|
|
21
|
+
this.env = env;
|
|
22
|
+
this.restAdapterPrinter = restAdapterPrinter;
|
|
23
|
+
}
|
|
24
|
+
generateModules(modelInfo) {
|
|
25
|
+
const { config: compilerConfig } = this.env; // how to get this? try including in constructor
|
|
26
|
+
const { resources, declaredShapeDefinitions } = modelInfo;
|
|
27
|
+
const modules = {};
|
|
28
|
+
for (const resource of resources) {
|
|
29
|
+
if (resource.resourceType !== 'Rest') {
|
|
30
|
+
// we don't tackle any other resource types except 'Rest'
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
// potentially abstract resource "printing" to its own module
|
|
34
|
+
const resourceRelPath = `${RESOURCES_DIRECTORY_NAME}/${resource.name}.ts`; // dynamically include this? or hardcode it? looks like hardcoding :)
|
|
35
|
+
const resourceAbsPath = path_1.default.resolve(compilerConfig.sourceWriter.outputDirectory, resourceRelPath);
|
|
36
|
+
const resourceConfig = {
|
|
37
|
+
compiler: this.env,
|
|
38
|
+
output: path_1.default.parse(resourceAbsPath),
|
|
39
|
+
};
|
|
40
|
+
modules[resourceRelPath] = (0, resource_1.generateResource)(resourceConfig, resource, modelInfo, resourceRelPath);
|
|
41
|
+
// generate adapter factories for any resources with adapter annotation
|
|
42
|
+
Object.assign(modules, this.restAdapterPrinter.generate(resource, modelInfo));
|
|
43
|
+
}
|
|
44
|
+
modules['adapters/adapter-utils.ts'] = (0, adapter_utils_1.generateAdapterUtils)(modelInfo);
|
|
45
|
+
for (const shape of Object.values(declaredShapeDefinitions)) {
|
|
46
|
+
if ((0, utils_1.isNodeShape)(shape)) {
|
|
47
|
+
const relPath = `${TYPES_DIRECTORY_NAME}/${shape.name}.ts`;
|
|
48
|
+
const shapeAbsPath = path_1.default.resolve(compilerConfig.sourceWriter.outputDirectory, relPath);
|
|
49
|
+
const shapeConfig = {
|
|
50
|
+
shape,
|
|
51
|
+
modelInfo,
|
|
52
|
+
shapeLocation: relPath,
|
|
53
|
+
importContext: (0, imports_1.createImportContext)({
|
|
54
|
+
compiler: this.env,
|
|
55
|
+
output: path_1.default.parse(shapeAbsPath),
|
|
56
|
+
}),
|
|
57
|
+
};
|
|
58
|
+
modules[relPath] = (0, shape_1.generateModule)(shapeConfig);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
modules[`${TYPES_DIRECTORY_NAME}/type-utils.ts`] = (0, shape_1.generateTypeUtils)();
|
|
62
|
+
if (Object.keys(modelInfo.shapePaginated).length > 0) {
|
|
63
|
+
// Only cursor-based for now. When we support more strategies,
|
|
64
|
+
// collect declared pagination strategies, then generate needed utils
|
|
65
|
+
modules[`${PAGINATION_DIRECTORY_NAME}/cursor.ts`] = (0, cursor_based_1.generatePaginationUtils)();
|
|
66
|
+
const hasSyntheticCursor = Object.values(modelInfo.shapePaginated).find((shapePaginated) => {
|
|
67
|
+
return shapePaginated.strategy === pagination_1.Strategy.SyntheticCursor;
|
|
68
|
+
});
|
|
69
|
+
if (hasSyntheticCursor !== undefined) {
|
|
70
|
+
modules[`${PAGINATION_DIRECTORY_NAME}/syntheticCursor.ts`] =
|
|
71
|
+
(0, synthetic_cursor_1.generatePaginationUtils)();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return modules;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.RestSourcePrinter = RestSourcePrinter;
|
|
78
|
+
//# sourceMappingURL=rest-source-printer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest-source-printer.js","sourceRoot":"","sources":["../../../../src/codegen/rest/source-printer/rest-source-printer.ts"],"names":[],"mappings":"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"}
|