@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.
Files changed (118) hide show
  1. package/dist/codegen/adapter/adapter-network-cache-policy.js +5 -1
  2. package/dist/codegen/adapter/adapter-network-cache-policy.js.map +1 -1
  3. package/dist/codegen/adapter/adapter-param-type-check.js +2 -1
  4. package/dist/codegen/adapter/adapter-param-type-check.js.map +1 -1
  5. package/dist/codegen/adapter/index.d.ts +4 -0
  6. package/dist/codegen/adapter/index.js +5 -1
  7. package/dist/codegen/adapter/index.js.map +1 -1
  8. package/dist/codegen/adapter-tests/index.js +1 -1
  9. package/dist/codegen/adapter-tests/index.js.map +1 -1
  10. package/dist/codegen/graphql/enum/index.d.ts +2 -2
  11. package/dist/codegen/graphql/enum/index.js +6 -5
  12. package/dist/codegen/graphql/enum/index.js.map +1 -1
  13. package/dist/codegen/graphql/enum/interface.d.ts +4 -0
  14. package/dist/codegen/graphql/enum/interface.js +32 -0
  15. package/dist/codegen/graphql/enum/interface.js.map +1 -0
  16. package/dist/codegen/graphql/source-printer/graphql-adapter-source-printer.d.ts +7 -0
  17. package/dist/codegen/graphql/source-printer/graphql-adapter-source-printer.js +11 -0
  18. package/dist/codegen/graphql/source-printer/graphql-adapter-source-printer.js.map +1 -0
  19. package/dist/codegen/graphql/source-printer/graphql-resource-source-printer.d.ts +7 -0
  20. package/dist/codegen/graphql/source-printer/graphql-resource-source-printer.js +11 -0
  21. package/dist/codegen/graphql/source-printer/graphql-resource-source-printer.js.map +1 -0
  22. package/dist/codegen/graphql/source-printer/graphql-source-printer.d.ts +27 -0
  23. package/dist/codegen/graphql/source-printer/graphql-source-printer.js +50 -0
  24. package/dist/codegen/graphql/source-printer/graphql-source-printer.js.map +1 -0
  25. package/dist/codegen/graphql/source-printer/graphql-type-source-printer.d.ts +13 -0
  26. package/dist/codegen/graphql/source-printer/graphql-type-source-printer.js +65 -0
  27. package/dist/codegen/graphql/source-printer/graphql-type-source-printer.js.map +1 -0
  28. package/dist/codegen/graphql/source-printer/index.d.ts +5 -0
  29. package/dist/codegen/graphql/source-printer/index.js +12 -0
  30. package/dist/codegen/graphql/source-printer/index.js.map +1 -0
  31. package/dist/codegen/graphql/type/constants.d.ts +7 -0
  32. package/dist/codegen/graphql/type/constants.js +11 -0
  33. package/dist/codegen/graphql/type/constants.js.map +1 -0
  34. package/dist/codegen/graphql/type/index.d.ts +3 -2
  35. package/dist/codegen/graphql/type/index.js +30 -5
  36. package/dist/codegen/graphql/type/index.js.map +1 -1
  37. package/dist/codegen/graphql/type/ingest.d.ts +9 -0
  38. package/dist/codegen/graphql/type/ingest.js +131 -0
  39. package/dist/codegen/graphql/type/ingest.js.map +1 -0
  40. package/dist/codegen/graphql/type/interface.d.ts +3 -3
  41. package/dist/codegen/graphql/type/interface.js +2 -48
  42. package/dist/codegen/graphql/type/interface.js.map +1 -1
  43. package/dist/codegen/graphql/union/index.d.ts +2 -2
  44. package/dist/codegen/graphql/union/index.js +6 -5
  45. package/dist/codegen/graphql/union/index.js.map +1 -1
  46. package/dist/codegen/graphql/union/interface.d.ts +4 -0
  47. package/dist/codegen/graphql/union/interface.js +30 -0
  48. package/dist/codegen/graphql/union/interface.js.map +1 -0
  49. package/dist/codegen/graphql/utils/index.d.ts +1 -0
  50. package/dist/codegen/graphql/utils/index.js +8 -0
  51. package/dist/codegen/graphql/utils/index.js.map +1 -0
  52. package/dist/codegen/graphql/utils/types.d.ts +10 -0
  53. package/dist/codegen/graphql/utils/types.js +45 -0
  54. package/dist/codegen/graphql/utils/types.js.map +1 -0
  55. package/dist/codegen/resource/create-resource-request.js +2 -2
  56. package/dist/codegen/resource/create-resource-request.js.map +1 -1
  57. package/dist/codegen/rest/source-printer/rest-adapter-source-printer.d.ts +12 -0
  58. package/dist/codegen/rest/source-printer/rest-adapter-source-printer.js +60 -0
  59. package/dist/codegen/rest/source-printer/rest-adapter-source-printer.js.map +1 -0
  60. package/dist/codegen/rest/source-printer/rest-source-printer.d.ts +12 -0
  61. package/dist/codegen/rest/source-printer/rest-source-printer.js +78 -0
  62. package/dist/codegen/rest/source-printer/rest-source-printer.js.map +1 -0
  63. package/dist/codegen/source-writer/file-system-source-writer.d.ts +14 -0
  64. package/dist/codegen/source-writer/file-system-source-writer.js +31 -0
  65. package/dist/codegen/source-writer/file-system-source-writer.js.map +1 -0
  66. package/dist/compiler/raml-compiler.d.ts +15 -0
  67. package/dist/compiler/raml-compiler.js +34 -0
  68. package/dist/compiler/raml-compiler.js.map +1 -0
  69. package/dist/generate.d.ts +3 -5
  70. package/dist/generate.js +0 -134
  71. package/dist/generate.js.map +1 -1
  72. package/dist/interfaces/compiler.d.ts +4 -0
  73. package/dist/interfaces/compiler.js +3 -0
  74. package/dist/interfaces/compiler.js.map +1 -0
  75. package/dist/interfaces/index.d.ts +5 -0
  76. package/dist/interfaces/index.js +3 -0
  77. package/dist/interfaces/index.js.map +1 -0
  78. package/dist/interfaces/source-printers/graphql/graphql-adapter-printer.d.ts +6 -0
  79. package/dist/interfaces/source-printers/graphql/graphql-adapter-printer.js +3 -0
  80. package/dist/interfaces/source-printers/graphql/graphql-adapter-printer.js.map +1 -0
  81. package/dist/interfaces/source-printers/graphql/graphql-resource-printer.d.ts +6 -0
  82. package/dist/interfaces/source-printers/graphql/graphql-resource-printer.js +3 -0
  83. package/dist/interfaces/source-printers/graphql/graphql-resource-printer.js.map +1 -0
  84. package/dist/interfaces/source-printers/graphql/graphql-type-printer.d.ts +6 -0
  85. package/dist/interfaces/source-printers/graphql/graphql-type-printer.js +3 -0
  86. package/dist/interfaces/source-printers/graphql/graphql-type-printer.js.map +1 -0
  87. package/dist/interfaces/source-printers/index.d.ts +5 -0
  88. package/dist/interfaces/source-printers/index.js +3 -0
  89. package/dist/interfaces/source-printers/index.js.map +1 -0
  90. package/dist/interfaces/source-printers/rest/rest-adapter-printer.d.ts +5 -0
  91. package/dist/interfaces/source-printers/rest/rest-adapter-printer.js +3 -0
  92. package/dist/interfaces/source-printers/rest/rest-adapter-printer.js.map +1 -0
  93. package/dist/interfaces/source-printers/source-printer.d.ts +6 -0
  94. package/dist/interfaces/source-printers/source-printer.js +3 -0
  95. package/dist/interfaces/source-printers/source-printer.js.map +1 -0
  96. package/dist/interfaces/source-writer.d.ts +6 -0
  97. package/dist/interfaces/source-writer.js +3 -0
  98. package/dist/interfaces/source-writer.js.map +1 -0
  99. package/dist/main.d.ts +8 -3
  100. package/dist/main.js +16 -5
  101. package/dist/main.js.map +1 -1
  102. package/dist/parser/main.d.ts +8 -1
  103. package/dist/parser/main.js +186 -180
  104. package/dist/parser/main.js.map +1 -1
  105. package/dist/utils/files.d.ts +0 -8
  106. package/dist/utils/files.js +1 -16
  107. package/dist/utils/files.js.map +1 -1
  108. package/dist/utils/generation.js +5 -5
  109. package/dist/utils/generation.js.map +1 -1
  110. package/dist/utils/imports.js +4 -3
  111. package/dist/utils/imports.js.map +1 -1
  112. package/package.json +4 -4
  113. package/dist/codegen/graphql/index.d.ts +0 -13
  114. package/dist/codegen/graphql/index.js +0 -87
  115. package/dist/codegen/graphql/index.js.map +0 -1
  116. package/dist/parse.d.ts +0 -2
  117. package/dist/parse.js +0 -14
  118. 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":"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"}
@@ -1,5 +1,5 @@
1
- import type { EnumTypeDefinitionNode, FieldDefinitionNode, InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode, TypeNode, UnionTypeDefinitionNode } from '@luvio/graphql-parser';
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 | EnumTypeDefinitionNode | UnionTypeDefinitionNode | FieldDefinitionNode, importContext: ImportContext): string;
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 generateEnumDefinitionNode(name, def) {
92
- const { values } = def;
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":"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"}
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
- export declare function generate(state: GraphQLGenerateState, name: string, def: UnionTypeDefinitionNode, importContext: ImportContext): string;
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("../type/interface");
9
- function generate(state, name, def, importContext) {
10
- return (0, deindent_1.default) `
11
- ${(0, interface_1.generateInterface)(state, name, def, importContext)}
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":";;;;;;AAEA,uEAA+C;AAE/C,iDAAsD;AAEtD,SAAgB,QAAQ,CACpB,KAA2B,EAC3B,IAAY,EACZ,GAA4B,EAC5B,aAA4B;IAE5B,OAAO,IAAA,kBAAQ,EAAA;UACT,IAAA,6BAAiB,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC;KACvD,CAAC;AACN,CAAC;AATD,4BASC"}
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 { outputDir } = compilerConfig;
108
- const absResourceLocation = path_1.default.resolve(outputDir, path_1.default.dirname(relPath));
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":";;;;;;AAAA,gDAAwB;AAIxB,0DAKqC;AACrC,oDAA2E;AAC3E,oDAAuD;AACvD,oEAA4C;AAC5C,+CAAsD;AAEtD,uDAA8D;AAE9D,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEtB,QAAA,kCAAkC,GAAG,uBAAuB,CAAC;AAE1E,SAAS,WAAW,CAAC,QAAgB;IACjC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACjD,OAAO,OAAO,iBAAiB,IAAI,qCAA0B,IAAI,KAAK,MAAM,CAAC;IACjF,CAAC,CAAC,GAAG,CAAC;AACV,CAAC;AASD,SAAS,iCAAiC,CACtC,KAA0B,EAC1B,OAA2B;IAE3B,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,EAAE,iBAAiB,EAAE,GAAG,aAAa,CAAC;IAC5C,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAEvE,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7C,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,WAAW,KAAK,IAAI,EAAE;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC;YAC3C,OAAO,wBAAwB,CAAC,IAAI,CAAC,KAAK,EAAE;gBACxC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;gBAC7B,kBAAkB,EAAE,GAAG,kBAAkB,IAAI,IAAI,EAAE;gBACnD,QAAQ;gBACR,aAAa;aAChB,CAAC,CAAC;SACN;QAED,OAAO,IAAA,kBAAQ,EAAA;cACT,qBAAqB,IAAI,kBAAkB;SAChD,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAsB,EAAE,OAA2B;IACjF,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE;QAChC,OAAO,wBAAwB,CAAC,KAAK,CAAC,UAA6B,EAAE,OAAO,CAAC,CAAC;KACjF;IAED,IAAI,IAAA,mBAAW,EAAC,KAAK,CAAC,EAAE;QACpB,OAAO,iCAAiC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KAC5D;IAED,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACpE,IAAI,QAAQ,KAAK,IAAI,EAAE;QACnB,OAAO,IAAA,kBAAQ,EAAA;eACR,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,kBAAkB;SACrD,CAAC;KACL;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,IAAA,kBAAQ,EAAA;WACR,kBAAkB,qBAAqB,YAAY,QAAQ,YAAY,QAAQ,kBAAkB;KACvG,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAkB;IAC3C,OAAO,QAAQ,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;QACxC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,GAAG,iBAAiB,IAAI,uCAA4B,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAkB;IACzC,OAAO,QAAQ,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;QACtC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,GAAG,iBAAiB,IAAI,qCAA0B,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB;IACpC,OAAO,QAAQ,CAAC,SAAS,KAAK,SAAS;QACnC,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,GAAG,iBAAiB,IAAI,+BAAoB,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,eAAe,CAAC,QAAkB;IACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO;SAC9B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACZ,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAA,yBAAgB,EAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,mBAAmB,GAAG,GAAG,iBAAiB,IAAI,kCAAuB,IAAI,SAAS,EAAE,CAAC;QAE3F,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC1B,OAAO,IAAA,kBAAQ,EAAA;+BACA,UAAU,QAAQ,mBAAmB;iBACnD,CAAC;SACL;QACD,MAAM,gBAAgB,GAAG,UAAU,SAAS,EAAE,CAAC;QAC/C,OAAO,IAAA,kBAAQ,EAAA;wBACH,gBAAgB,MAAM,mBAAmB;qBAC5C,gBAAgB;+BACN,UAAU,QAAQ,gBAAgB;;aAEpD,CAAC;IACN,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,OAAO,IAAA,kBAAQ,EAAA;;UAET,UAAU;KACf,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CACpB,aAA4B,EAC5B,QAAkB,EAClB,cAA8B,EAC9B,OAAe;IAEf,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC7B,IAAI,OAAO,KAAK,SAAS,EAAE;QACvB,OAAO,EAAE,CAAC;KACb;IACD,MAAM,EAAE,kBAAkB,EAAE,GAAG,aAAa,CAAC;IAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC;IACrC,MAAM,mBAAmB,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,OAAO,kBAAkB,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;AAC9D,CAAC;AAED,SAAgB,6BAA6B,CACzC,aAA4B,EAC5B,QAAkB,EAClB,cAA8B,EAC9B,OAAe;IAEf,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAEhC,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,iBAAiB,GAAG,eAAe,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAE5F,MAAM,eAAe,GAAG,iBAAiB,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,iBAAiB,GAAG,CAAC;IAEzF,MAAM,qBAAqB,GAAG,aAAa,CAAC,kBAAkB,CAAC,EAAE,EAAE,2CAAyB,CAAC,CAAC;IAC9F,OAAO,IAAA,kBAAQ,EAAA;0BACO,0CAAkC,IAAI,iBAAiB,KAAK,qBAAqB,MAAM,+CAAmC;cACtI,OAAO;;;4BAGO,QAAQ,CAAC,OAAO;4BAChB,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;2BAC3B,MAAM;wBACT,IAAI;6BACC,SAAS;+BACP,WAAW;;;kBAGxB,eAAe;;;;yBAIR,0CAAkC;KACtD,CAAC;AACN,CAAC;AApCD,sEAoCC"}
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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"}