@luvio/compiler 0.82.1 → 0.83.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/codegen/adapter/index.d.ts +8 -6
- package/dist/codegen/adapter/index.js +13 -13
- package/dist/codegen/adapter/index.js.map +1 -1
- package/dist/codegen/adapter-tests/index.d.ts +3 -2
- package/dist/codegen/adapter-tests/index.js +3 -7
- 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 +2 -2
- package/dist/codegen/graphql/enum/index.js.map +1 -1
- package/dist/codegen/graphql/enum/interface.d.ts +2 -2
- package/dist/codegen/graphql/enum/interface.js +1 -1
- package/dist/codegen/graphql/enum/interface.js.map +1 -1
- package/dist/codegen/graphql/graphql-dsl.d.ts +13 -0
- package/dist/codegen/graphql/graphql-dsl.js +26 -0
- package/dist/codegen/graphql/graphql-dsl.js.map +1 -0
- package/dist/codegen/graphql/source-printer/graphql-adapter-source-printer.d.ts +7 -4
- package/dist/codegen/graphql/source-printer/graphql-adapter-source-printer.js +31 -3
- package/dist/codegen/graphql/source-printer/graphql-adapter-source-printer.js.map +1 -1
- package/dist/codegen/graphql/source-printer/graphql-resource-source-printer.d.ts +6 -2
- package/dist/codegen/graphql/source-printer/graphql-resource-source-printer.js +15 -3
- package/dist/codegen/graphql/source-printer/graphql-resource-source-printer.js.map +1 -1
- package/dist/codegen/graphql/source-printer/graphql-source-printer.d.ts +12 -17
- package/dist/codegen/graphql/source-printer/graphql-source-printer.js +16 -19
- package/dist/codegen/graphql/source-printer/graphql-source-printer.js.map +1 -1
- package/dist/codegen/graphql/source-printer/graphql-type-source-printer.d.ts +6 -3
- package/dist/codegen/graphql/source-printer/graphql-type-source-printer.js +14 -18
- package/dist/codegen/graphql/source-printer/graphql-type-source-printer.js.map +1 -1
- package/dist/codegen/graphql/source-printer/index.d.ts +2 -2
- package/dist/codegen/graphql/source-printer/index.js.map +1 -1
- package/dist/codegen/graphql/type/index.d.ts +5 -3
- package/dist/codegen/graphql/type/index.js +13 -5
- package/dist/codegen/graphql/type/index.js.map +1 -1
- package/dist/codegen/graphql/type/ingest.d.ts +5 -4
- package/dist/codegen/graphql/type/ingest.js +27 -13
- package/dist/codegen/graphql/type/ingest.js.map +1 -1
- package/dist/codegen/graphql/type/interface.d.ts +2 -2
- package/dist/codegen/graphql/type/interface.js +1 -1
- package/dist/codegen/graphql/type/interface.js.map +1 -1
- package/dist/codegen/graphql/type/ttl.d.ts +4 -0
- package/dist/codegen/graphql/type/ttl.js +18 -0
- package/dist/codegen/graphql/type/ttl.js.map +1 -0
- package/dist/codegen/graphql/union/index.d.ts +2 -2
- package/dist/codegen/graphql/union/index.js +2 -2
- package/dist/codegen/graphql/union/index.js.map +1 -1
- package/dist/codegen/graphql/union/interface.d.ts +2 -2
- package/dist/codegen/graphql/union/interface.js +1 -1
- package/dist/codegen/graphql/union/interface.js.map +1 -1
- package/dist/codegen/graphql/utils/index.d.ts +1 -1
- package/dist/codegen/graphql/utils/index.js +2 -1
- package/dist/codegen/graphql/utils/index.js.map +1 -1
- package/dist/codegen/graphql/utils/types.d.ts +9 -3
- package/dist/codegen/graphql/utils/types.js +13 -1
- package/dist/codegen/graphql/utils/types.js.map +1 -1
- package/dist/codegen/package-renderer/index.d.ts +2 -0
- package/dist/codegen/package-renderer/index.js +6 -0
- package/dist/codegen/package-renderer/index.js.map +1 -0
- package/dist/codegen/package-renderer/package-renderer.d.ts +16 -0
- package/dist/codegen/package-renderer/package-renderer.js +72 -0
- package/dist/codegen/package-renderer/package-renderer.js.map +1 -0
- package/dist/codegen/package-renderer/text-file.d.ts +6 -0
- package/dist/{generate.js → codegen/package-renderer/text-file.js} +1 -1
- package/dist/codegen/package-renderer/text-file.js.map +1 -0
- package/dist/codegen/resource/create-resource-request.d.ts +3 -2
- package/dist/codegen/resource/create-resource-request.js +4 -5
- package/dist/codegen/resource/create-resource-request.js.map +1 -1
- package/dist/codegen/resource/index.d.ts +4 -2
- package/dist/codegen/resource/index.js +3 -3
- package/dist/codegen/resource/index.js.map +1 -1
- package/dist/codegen/rest/source-printer/rest-adapter-source-printer.d.ts +7 -4
- package/dist/codegen/rest/source-printer/rest-adapter-source-printer.js +11 -15
- package/dist/codegen/rest/source-printer/rest-adapter-source-printer.js.map +1 -1
- package/dist/codegen/rest/source-printer/rest-source-printer.d.ts +6 -3
- package/dist/codegen/rest/source-printer/rest-source-printer.js +8 -14
- package/dist/codegen/rest/source-printer/rest-source-printer.js.map +1 -1
- package/dist/codegen/shape/shape-select-paginated.js +6 -16
- package/dist/codegen/shape/shape-select-paginated.js.map +1 -1
- package/dist/codegen/typescript/index.d.ts +3 -0
- package/dist/codegen/typescript/index.js +15 -0
- package/dist/codegen/typescript/index.js.map +1 -0
- package/dist/codegen/typescript/typescript-import.d.ts +93 -0
- package/dist/codegen/typescript/typescript-import.js +110 -0
- package/dist/codegen/typescript/typescript-import.js.map +1 -0
- package/dist/codegen/typescript/typescript-package.d.ts +13 -0
- package/dist/codegen/typescript/typescript-package.js +85 -0
- package/dist/codegen/typescript/typescript-package.js.map +1 -0
- package/dist/codegen/typescript/typescript-source-file-id.d.ts +13 -0
- package/dist/codegen/typescript/typescript-source-file-id.js +21 -0
- package/dist/codegen/typescript/typescript-source-file-id.js.map +1 -0
- package/dist/codegen/typescript/typescript-source-file.d.ts +10 -0
- package/dist/codegen/typescript/typescript-source-file.js +19 -0
- package/dist/codegen/typescript/typescript-source-file.js.map +1 -0
- package/dist/compiler/raml-compiler.d.ts +11 -12
- package/dist/compiler/raml-compiler.js +17 -10
- package/dist/compiler/raml-compiler.js.map +1 -1
- package/dist/interfaces/source-printers/graphql/graphql-adapter-printer.d.ts +5 -2
- package/dist/interfaces/source-printers/graphql/graphql-resource-printer.d.ts +5 -2
- package/dist/interfaces/source-printers/graphql/graphql-type-printer.d.ts +5 -2
- package/dist/interfaces/source-writer.d.ts +0 -1
- package/dist/intermediate/graphql-annotation.d.ts +1 -1
- package/dist/intermediate/graphql.d.ts +10 -3
- package/dist/intermediate/resource.d.ts +2 -2
- package/dist/main.d.ts +2 -3
- package/dist/main.js.map +1 -1
- package/dist/parser/annotation-graphql.d.ts +2 -2
- package/dist/parser/resource.js +13 -11
- package/dist/parser/resource.js.map +1 -1
- package/dist/plugin.d.ts +4 -2
- package/dist/utils/generation.d.ts +4 -2
- package/dist/utils/generation.js +5 -11
- package/dist/utils/generation.js.map +1 -1
- package/dist/utils/imports.d.ts +4 -2
- package/dist/utils/imports.js +27 -31
- package/dist/utils/imports.js.map +1 -1
- package/package.json +4 -4
- package/dist/generate.d.ts +0 -15
- package/dist/generate.js.map +0 -1
|
@@ -0,0 +1,110 @@
|
|
|
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.ExternalTypescriptNamedImport = exports.ExternalTypescriptDefaultImport = exports.ExternalTypescriptImport = exports.LocalTypescriptNamedImport = exports.LocalTypescriptDefaultImport = exports.LocalTypescriptImport = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
class LocalTypescriptImport {
|
|
9
|
+
constructor(id, importType) {
|
|
10
|
+
this.id = id;
|
|
11
|
+
this.importType = importType;
|
|
12
|
+
this.local = true;
|
|
13
|
+
}
|
|
14
|
+
generateImportModule(sourceFileId) {
|
|
15
|
+
const sourceFilePath = sourceFileId.generateFilePath();
|
|
16
|
+
const importFilePath = this.id.generateFilePath();
|
|
17
|
+
const modulePath = sourceFilePath.dir === importFilePath.dir
|
|
18
|
+
? `./${importFilePath.name}${importFilePath.ext}`
|
|
19
|
+
: path_1.default.relative(sourceFilePath.dir, path_1.default.format(importFilePath));
|
|
20
|
+
// Cut off the .ts extension
|
|
21
|
+
return modulePath.slice(0, -3);
|
|
22
|
+
}
|
|
23
|
+
get moduleId() {
|
|
24
|
+
return this.id.getIdString();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.LocalTypescriptImport = LocalTypescriptImport;
|
|
28
|
+
class LocalTypescriptDefaultImport extends LocalTypescriptImport {
|
|
29
|
+
constructor(id, asName) {
|
|
30
|
+
super(id, 'default');
|
|
31
|
+
this.id = id;
|
|
32
|
+
this.asName = asName;
|
|
33
|
+
}
|
|
34
|
+
get importName() {
|
|
35
|
+
return this.asName;
|
|
36
|
+
}
|
|
37
|
+
get defaultImportName() {
|
|
38
|
+
return this.asName;
|
|
39
|
+
}
|
|
40
|
+
get importClause() {
|
|
41
|
+
return this.importName;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.LocalTypescriptDefaultImport = LocalTypescriptDefaultImport;
|
|
45
|
+
class LocalTypescriptNamedImport extends LocalTypescriptImport {
|
|
46
|
+
constructor(id, defaultImportName, asAlias) {
|
|
47
|
+
super(id, 'named');
|
|
48
|
+
this.id = id;
|
|
49
|
+
this.defaultImportName = defaultImportName;
|
|
50
|
+
this.asAlias = asAlias;
|
|
51
|
+
}
|
|
52
|
+
get importName() {
|
|
53
|
+
return this.asAlias ? this.asAlias : this.defaultImportName;
|
|
54
|
+
}
|
|
55
|
+
get importClause() {
|
|
56
|
+
return this.asAlias
|
|
57
|
+
? `${this.defaultImportName} as ${this.asAlias}`
|
|
58
|
+
: this.defaultImportName;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.LocalTypescriptNamedImport = LocalTypescriptNamedImport;
|
|
62
|
+
class ExternalTypescriptImport {
|
|
63
|
+
constructor(moduleName, importType) {
|
|
64
|
+
this.moduleName = moduleName;
|
|
65
|
+
this.importType = importType;
|
|
66
|
+
this.local = false;
|
|
67
|
+
}
|
|
68
|
+
generateImportModule() {
|
|
69
|
+
return this.moduleName;
|
|
70
|
+
}
|
|
71
|
+
get moduleId() {
|
|
72
|
+
return this.moduleName;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.ExternalTypescriptImport = ExternalTypescriptImport;
|
|
76
|
+
class ExternalTypescriptDefaultImport extends ExternalTypescriptImport {
|
|
77
|
+
constructor(moduleName, asName) {
|
|
78
|
+
super(moduleName, 'default');
|
|
79
|
+
this.moduleName = moduleName;
|
|
80
|
+
this.asName = asName;
|
|
81
|
+
}
|
|
82
|
+
get importClause() {
|
|
83
|
+
return this.importName;
|
|
84
|
+
}
|
|
85
|
+
get importName() {
|
|
86
|
+
return this.asName;
|
|
87
|
+
}
|
|
88
|
+
get defaultImportName() {
|
|
89
|
+
return this.asName;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.ExternalTypescriptDefaultImport = ExternalTypescriptDefaultImport;
|
|
93
|
+
class ExternalTypescriptNamedImport extends ExternalTypescriptImport {
|
|
94
|
+
constructor(moduleName, defaultImportName, asAlias) {
|
|
95
|
+
super(moduleName, 'named');
|
|
96
|
+
this.moduleName = moduleName;
|
|
97
|
+
this.defaultImportName = defaultImportName;
|
|
98
|
+
this.asAlias = asAlias;
|
|
99
|
+
}
|
|
100
|
+
get importName() {
|
|
101
|
+
return this.asAlias ? this.asAlias : this.defaultImportName;
|
|
102
|
+
}
|
|
103
|
+
get importClause() {
|
|
104
|
+
return this.asAlias
|
|
105
|
+
? `${this.defaultImportName} as ${this.asAlias}`
|
|
106
|
+
: this.defaultImportName;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.ExternalTypescriptNamedImport = ExternalTypescriptNamedImport;
|
|
110
|
+
//# sourceMappingURL=typescript-import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-import.js","sourceRoot":"","sources":["../../../src/codegen/typescript/typescript-import.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TypescriptSourceFile } from './typescript-source-file';
|
|
2
|
+
import type { TypescriptSourceFileId } from './typescript-source-file-id';
|
|
3
|
+
export declare class TypescriptPackage {
|
|
4
|
+
sourceFiles: TypescriptSourceFile[];
|
|
5
|
+
private sourceFileIdToFileMap;
|
|
6
|
+
constructor(sourceFiles: TypescriptSourceFile[]);
|
|
7
|
+
getModuleById(id: TypescriptSourceFileId): TypescriptSourceFile;
|
|
8
|
+
private getModuleByIdString;
|
|
9
|
+
private validatePackage;
|
|
10
|
+
private validateSourceFileImports;
|
|
11
|
+
private validateLocalDefaultImport;
|
|
12
|
+
private validateLocalNamedImport;
|
|
13
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypescriptPackage = void 0;
|
|
4
|
+
class TypescriptPackage {
|
|
5
|
+
constructor(sourceFiles) {
|
|
6
|
+
this.sourceFiles = sourceFiles;
|
|
7
|
+
this.sourceFileIdToFileMap = {};
|
|
8
|
+
this.sourceFiles.forEach((file) => {
|
|
9
|
+
this.sourceFileIdToFileMap[file.id.getIdString()] = file;
|
|
10
|
+
});
|
|
11
|
+
if (Object.keys(this.sourceFileIdToFileMap).length !== sourceFiles.length) {
|
|
12
|
+
throw new Error('Files must all have unique identifiers.');
|
|
13
|
+
}
|
|
14
|
+
this.validatePackage();
|
|
15
|
+
}
|
|
16
|
+
getModuleById(id) {
|
|
17
|
+
return this.getModuleByIdString(id.getIdString());
|
|
18
|
+
}
|
|
19
|
+
getModuleByIdString(id) {
|
|
20
|
+
const sourceFile = this.sourceFileIdToFileMap[id];
|
|
21
|
+
if (!sourceFile) {
|
|
22
|
+
throw new Error(`File not found for ID: ${id}`);
|
|
23
|
+
}
|
|
24
|
+
return sourceFile;
|
|
25
|
+
}
|
|
26
|
+
validatePackage() {
|
|
27
|
+
this.sourceFiles.forEach((file) => {
|
|
28
|
+
this.validateSourceFileImports(file);
|
|
29
|
+
file.imports.forEach((sourceImport) => {
|
|
30
|
+
if (sourceImport.local) {
|
|
31
|
+
if (sourceImport.importType === 'default') {
|
|
32
|
+
this.validateLocalDefaultImport(sourceImport);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.validateLocalNamedImport(sourceImport);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
validateSourceFileImports(sourceFile) {
|
|
42
|
+
const importNameSet = new Set();
|
|
43
|
+
const defaultImportClausesSetByModuleId = {};
|
|
44
|
+
const namedImportClausesSetByModuleId = {};
|
|
45
|
+
const defaultImportClausesArrayByModuleId = {};
|
|
46
|
+
const namedImportClausesArrayByModuleId = {};
|
|
47
|
+
sourceFile.imports.forEach((sourceImport) => {
|
|
48
|
+
importNameSet.add(sourceImport.importName);
|
|
49
|
+
const clauseSetMap = sourceImport.importType === 'default'
|
|
50
|
+
? defaultImportClausesSetByModuleId
|
|
51
|
+
: namedImportClausesSetByModuleId;
|
|
52
|
+
const clauseArrayMap = sourceImport.importType === 'default'
|
|
53
|
+
? defaultImportClausesArrayByModuleId
|
|
54
|
+
: namedImportClausesArrayByModuleId;
|
|
55
|
+
if (!clauseSetMap[sourceImport.moduleId]) {
|
|
56
|
+
clauseSetMap[sourceImport.moduleId] = new Set();
|
|
57
|
+
clauseArrayMap[sourceImport.moduleId] = [];
|
|
58
|
+
}
|
|
59
|
+
clauseSetMap[sourceImport.moduleId].add(sourceImport.importClause);
|
|
60
|
+
clauseArrayMap[sourceImport.moduleId].push(sourceImport.importClause);
|
|
61
|
+
});
|
|
62
|
+
if (importNameSet.size !== sourceFile.imports.length) {
|
|
63
|
+
throw new Error(`Imports in file with ID ${sourceFile.id.getIdString()} must use unique names.`);
|
|
64
|
+
}
|
|
65
|
+
Object.values(defaultImportClausesSetByModuleId).forEach((defaultImportClauseSet) => {
|
|
66
|
+
if (defaultImportClauseSet.size > 1) {
|
|
67
|
+
throw new Error(`Only one default import name can be specified for file ID ${sourceFile.id.getIdString()}, found: ${Array.from(defaultImportClauseSet)}`);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
validateLocalDefaultImport(sourceImport) {
|
|
72
|
+
const importedFile = this.getModuleByIdString(sourceImport.moduleId);
|
|
73
|
+
if (!importedFile.defaultExport) {
|
|
74
|
+
throw new Error(`Import with ID ${sourceImport.moduleId} expected a default export.`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
validateLocalNamedImport(sourceImport) {
|
|
78
|
+
const importedFile = this.getModuleByIdString(sourceImport.moduleId);
|
|
79
|
+
if (!importedFile.namedExports.includes(sourceImport.defaultImportName)) {
|
|
80
|
+
throw new Error(`Source file with ID ${importedFile.id.getIdString()} does not export ${sourceImport.defaultImportName}.`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.TypescriptPackage = TypescriptPackage;
|
|
85
|
+
//# sourceMappingURL=typescript-package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-package.js","sourceRoot":"","sources":["../../../src/codegen/typescript/typescript-package.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import path from 'path';
|
|
3
|
+
export interface TypescriptSourceFileId {
|
|
4
|
+
getIdString(): string;
|
|
5
|
+
generateFilePath(): path.ParsedPath;
|
|
6
|
+
}
|
|
7
|
+
export declare class LuvioTypescriptSourceFileId implements TypescriptSourceFileId {
|
|
8
|
+
readonly type: 'adapters' | 'resources' | 'types';
|
|
9
|
+
readonly identifier: string;
|
|
10
|
+
constructor(type: 'adapters' | 'resources' | 'types', identifier: string);
|
|
11
|
+
getIdString(): string;
|
|
12
|
+
generateFilePath(): path.ParsedPath;
|
|
13
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
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.LuvioTypescriptSourceFileId = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
class LuvioTypescriptSourceFileId {
|
|
9
|
+
constructor(type, identifier) {
|
|
10
|
+
this.type = type;
|
|
11
|
+
this.identifier = identifier;
|
|
12
|
+
}
|
|
13
|
+
getIdString() {
|
|
14
|
+
return `${this.type}:${this.identifier}`;
|
|
15
|
+
}
|
|
16
|
+
generateFilePath() {
|
|
17
|
+
return path_1.default.parse(`${this.type}/${this.identifier}.ts`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.LuvioTypescriptSourceFileId = LuvioTypescriptSourceFileId;
|
|
21
|
+
//# sourceMappingURL=typescript-source-file-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-source-file-id.js","sourceRoot":"","sources":["../../../src/codegen/typescript/typescript-source-file-id.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAOxB,MAAa,2BAA2B;IACpC,YACoB,IAAwC,EACxC,UAAkB;QADlB,SAAI,GAAJ,IAAI,CAAoC;QACxC,eAAU,GAAV,UAAU,CAAQ;IACnC,CAAC;IACJ,WAAW;QACP,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7C,CAAC;IACD,gBAAgB;QACZ,OAAO,cAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC;IAC5D,CAAC;CACJ;AAXD,kEAWC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TypescriptImport } from './typescript-import';
|
|
2
|
+
import type { TypescriptSourceFileId } from './typescript-source-file-id';
|
|
3
|
+
export declare class TypescriptSourceFile {
|
|
4
|
+
readonly id: TypescriptSourceFileId;
|
|
5
|
+
readonly imports: TypescriptImport[];
|
|
6
|
+
readonly namedExports: string[];
|
|
7
|
+
readonly defaultExport: boolean;
|
|
8
|
+
readonly code: string;
|
|
9
|
+
constructor(id: TypescriptSourceFileId, imports: TypescriptImport[], namedExports: string[], defaultExport: boolean, code: string);
|
|
10
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypescriptSourceFile = void 0;
|
|
4
|
+
class TypescriptSourceFile {
|
|
5
|
+
constructor(id, imports, namedExports, defaultExport, code) {
|
|
6
|
+
this.id = id;
|
|
7
|
+
this.imports = imports;
|
|
8
|
+
this.namedExports = namedExports;
|
|
9
|
+
this.defaultExport = defaultExport;
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.imports.forEach((sourceImport) => {
|
|
12
|
+
if (sourceImport.moduleId === this.id.getIdString()) {
|
|
13
|
+
throw new Error(`File with ID ${id.getIdString()} is trying to import itself.`);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.TypescriptSourceFile = TypescriptSourceFile;
|
|
19
|
+
//# sourceMappingURL=typescript-source-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-source-file.js","sourceRoot":"","sources":["../../../src/codegen/typescript/typescript-source-file.ts"],"names":[],"mappings":";;;AAGA,MAAa,oBAAoB;IAC7B,YACoB,EAA0B,EAC1B,OAA2B,EAC3B,YAAsB,EACtB,aAAsB,EACtB,IAAY;QAJZ,OAAE,GAAF,EAAE,CAAwB;QAC1B,YAAO,GAAP,OAAO,CAAoB;QAC3B,iBAAY,GAAZ,YAAY,CAAU;QACtB,kBAAa,GAAb,aAAa,CAAS;QACtB,SAAI,GAAJ,IAAI,CAAQ;QAE5B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAClC,IAAI,YAAY,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE;gBACjD,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC;aACnF;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAdD,oDAcC"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
import type { Parser, SourcePrinter } from '../interfaces';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
export interface LuvioRamlCompilerEnvironment extends CompilerEnvironment {
|
|
8
|
-
config: LuvioRamlCompilerConfig;
|
|
9
|
-
}
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { CompilerSourceWriter, Parser, SourcePrinter } from '../interfaces';
|
|
3
|
+
import type { LuvioCompiler, ParseError } from '../main';
|
|
4
|
+
import type { CompilerPlugin } from '../plugin';
|
|
5
|
+
import path from 'path';
|
|
10
6
|
export declare class LuvioRamlCompiler implements LuvioCompiler {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
private parser;
|
|
8
|
+
private sourceWriter;
|
|
9
|
+
private sourcePrinters;
|
|
10
|
+
private compilerBaseOutputDir;
|
|
11
|
+
private plugin?;
|
|
12
|
+
constructor(parser: Parser, sourceWriter: CompilerSourceWriter, sourcePrinters: SourcePrinter[], compilerBaseOutputDir: path.ParsedPath, plugin?: CompilerPlugin | undefined);
|
|
14
13
|
generate(): Promise<void | ParseError[]>;
|
|
15
14
|
}
|
|
@@ -1,32 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.LuvioRamlCompiler = void 0;
|
|
4
7
|
const generation_1 = require("../utils/generation");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
5
9
|
class LuvioRamlCompiler {
|
|
6
|
-
constructor(
|
|
7
|
-
this.
|
|
10
|
+
constructor(parser, sourceWriter, sourcePrinters, compilerBaseOutputDir, plugin) {
|
|
11
|
+
this.parser = parser;
|
|
12
|
+
this.sourceWriter = sourceWriter;
|
|
8
13
|
this.sourcePrinters = sourcePrinters;
|
|
14
|
+
this.compilerBaseOutputDir = compilerBaseOutputDir;
|
|
15
|
+
this.plugin = plugin;
|
|
9
16
|
}
|
|
10
17
|
async generate() {
|
|
11
18
|
var _a, _b;
|
|
12
|
-
const
|
|
13
|
-
const parser = compilerConfig.parser;
|
|
14
|
-
const { modelInfo, errors } = await parser.parse();
|
|
19
|
+
const { modelInfo, errors } = await this.parser.parse();
|
|
15
20
|
if (modelInfo === undefined) {
|
|
16
21
|
return Promise.resolve(errors);
|
|
17
22
|
}
|
|
18
|
-
if ((_a = this.
|
|
19
|
-
const pluginResult = await this.
|
|
23
|
+
if ((_a = this.plugin) === null || _a === void 0 ? void 0 : _a.validate) {
|
|
24
|
+
const pluginResult = await this.plugin.validate(modelInfo);
|
|
20
25
|
if (pluginResult.hasErrors === true) {
|
|
21
26
|
return Promise.resolve(pluginResult.errors);
|
|
22
27
|
}
|
|
23
28
|
}
|
|
24
29
|
this.sourcePrinters.forEach((printer) => {
|
|
25
30
|
const generatedModules = printer.generateModules(modelInfo);
|
|
26
|
-
this.
|
|
31
|
+
this.sourceWriter.writeModules(generatedModules);
|
|
27
32
|
});
|
|
28
|
-
if ((_b = this.
|
|
29
|
-
await this.
|
|
33
|
+
if ((_b = this.plugin) === null || _b === void 0 ? void 0 : _b.afterGenerate) {
|
|
34
|
+
await this.plugin.afterGenerate({
|
|
35
|
+
outputDir: path_1.default.format(this.compilerBaseOutputDir),
|
|
36
|
+
}, modelInfo, (0, generation_1.createCodeGenerationContext)(this.plugin, this.compilerBaseOutputDir, this.sourceWriter));
|
|
30
37
|
}
|
|
31
38
|
}
|
|
32
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raml-compiler.js","sourceRoot":"","sources":["../../src/compiler/raml-compiler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"raml-compiler.js","sourceRoot":"","sources":["../../src/compiler/raml-compiler.ts"],"names":[],"mappings":";;;;;;AAGA,oDAAkE;AAClE,gDAAwB;AACxB,MAAa,iBAAiB;IAC1B,YACY,MAAc,EACd,YAAkC,EAClC,cAA+B,EAC/B,qBAAsC,EACtC,MAAmC;QAJnC,WAAM,GAAN,MAAM,CAAQ;QACd,iBAAY,GAAZ,YAAY,CAAsB;QAClC,mBAAc,GAAd,cAAc,CAAiB;QAC/B,0BAAqB,GAArB,qBAAqB,CAAiB;QACtC,WAAM,GAAN,MAAM,CAA6B;IAC5C,CAAC;IAEJ,KAAK,CAAC,QAAQ;;QACV,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACxD,IAAI,SAAS,KAAK,SAAS,EAAE;YACzB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAClC;QAED,IAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,EAAE;YACvB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAE3D,IAAI,YAAY,CAAC,SAAS,KAAK,IAAI,EAAE;gBACjC,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;aAC/C;SACJ;QAED,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,MAAM,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,aAAa,EAAE;YAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAC3B;gBACI,SAAS,EAAE,cAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC;aACrD,EACD,SAAS,EACT,IAAA,wCAA2B,EACvB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,YAAY,CACpB,CACJ,CAAC;SACL;IACL,CAAC;CACJ;AA1CD,8CA0CC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { ModelInfo } from '../../../main';
|
|
3
|
+
import type { GraphQLResource } from '../../../intermediate/resource';
|
|
4
|
+
import type path from 'path';
|
|
2
5
|
export interface GraphQLAdapterPrinter {
|
|
3
|
-
generate(
|
|
6
|
+
generate(modelInfo: ModelInfo, resource: GraphQLResource, compilerBaseOutputDir: path.ParsedPath): {
|
|
4
7
|
[path: string]: string;
|
|
5
8
|
};
|
|
6
9
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { ModelInfo } from '../../../main';
|
|
3
|
+
import type { GraphQLResource } from '../../../intermediate/resource';
|
|
4
|
+
import type path from 'path';
|
|
2
5
|
export interface GraphQLResourcePrinter {
|
|
3
|
-
generate(
|
|
6
|
+
generate(modelInfo: ModelInfo, resource: GraphQLResource, compilerBaseOutputDir: path.ParsedPath): {
|
|
4
7
|
[path: string]: string;
|
|
5
8
|
};
|
|
6
9
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { GraphQLResource } from '../../../intermediate/resource';
|
|
3
|
+
import type { GraphQLCodegenMetadata } from '../../../codegen/graphql/source-printer/graphql-source-printer';
|
|
4
|
+
import type path from 'path';
|
|
2
5
|
export interface GraphQLTypePrinter {
|
|
3
|
-
generate(
|
|
6
|
+
generate(graphQLResource: GraphQLResource, compilerBaseOutputDir: path.ParsedPath, metadata: GraphQLCodegenMetadata): {
|
|
4
7
|
[path: string]: string;
|
|
5
8
|
};
|
|
6
9
|
}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { GraphQLSchema, GraphQLScalarType } from '@luvio/graphql-parser';
|
|
2
|
+
export interface LuvioGraphQLDSLParams {
|
|
3
|
+
schema: GraphQLSchema;
|
|
4
|
+
schemaName: string;
|
|
5
|
+
typeExtensions: Record<string, GraphQLTypeExtension>;
|
|
6
|
+
}
|
|
2
7
|
export interface GraphQLTypeExtension {
|
|
3
8
|
ttl: number;
|
|
4
9
|
line: number;
|
|
5
10
|
col: number;
|
|
6
11
|
}
|
|
7
|
-
export interface
|
|
8
|
-
schema:
|
|
12
|
+
export interface LuvioGraphQLDSL {
|
|
13
|
+
schema: Readonly<GraphQLSchema>;
|
|
14
|
+
schemaName: Readonly<string>;
|
|
15
|
+
customScalars: GraphQLScalarType[];
|
|
9
16
|
typeExtensions: Record<string, GraphQLTypeExtension>;
|
|
10
17
|
}
|
|
@@ -4,7 +4,7 @@ import type { AdapterAnnotation } from './adapter-annotation';
|
|
|
4
4
|
import type { NodeShapeDefinition, ParameterDefinition } from './definitions';
|
|
5
5
|
import type { MockPayload } from './mock-payload';
|
|
6
6
|
import type { StringMap } from './utils';
|
|
7
|
-
import type {
|
|
7
|
+
import type { LuvioGraphQLDSL } from './graphql';
|
|
8
8
|
export declare type HTTPStatusCode = 200 | 201 | 304 | 400 | 404 | 500;
|
|
9
9
|
export interface ResourceReturnShapeDefinition {
|
|
10
10
|
statusCode: HTTPStatusCode;
|
|
@@ -60,7 +60,7 @@ export interface RestResource extends BaseResource {
|
|
|
60
60
|
}
|
|
61
61
|
export interface GraphQLResource extends BaseResource {
|
|
62
62
|
resourceType: 'GraphQL';
|
|
63
|
-
|
|
63
|
+
graphqlDSL: LuvioGraphQLDSL;
|
|
64
64
|
}
|
|
65
65
|
export declare type Resource = RestResource | GraphQLResource;
|
|
66
66
|
export declare function isPurePost(resource: Resource): boolean;
|
package/dist/main.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
export { CompilerConfig } from './generate';
|
|
2
1
|
export { ParseError } from './parser/logger';
|
|
3
2
|
export { ParseResults, LuvioRamlFileParser } from './parser/main';
|
|
4
3
|
export { ModelInfo, ShapePrivate } from './intermediate/model-info';
|
|
5
4
|
export { ShapeTypes, ParameterDefinition, ShapeDefinition, PropertyShapeDefinition, NodeShapeDefinition, ArrayShapeDefinition, UnionShapeDefinition, ScalarShapeDefinition, } from './intermediate/definitions';
|
|
6
|
-
export { CompilerPlugin, PluginResult } from './plugin';
|
|
7
|
-
export { LuvioRamlCompiler
|
|
5
|
+
export { CompilerPlugin, CompilerPluginConfig, PluginResult } from './plugin';
|
|
6
|
+
export { LuvioRamlCompiler } from './compiler/raml-compiler';
|
|
8
7
|
export { CompilerSourceWriter, LuvioCompiler, Parser } from './interfaces';
|
|
9
8
|
export { FileSystemSourceWriter } from './codegen/source-writer/file-system-source-writer';
|
|
10
9
|
export { GraphQLSourcePrinter, GraphQLTypeSourcePrinter, GraphQLResourceSourcePrinter, GraphQLAdapterSourcePrinter, } from './codegen/graphql/source-printer';
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AACA,sCAAkE;AAA3C,2GAAA,mBAAmB,OAAA;AAE1C,0DASoC;AARhC,yGAAA,UAAU,OAAA;AAUd,0DAA6D;AAApD,kHAAA,iBAAiB,OAAA;AAE1B,+FAA2F;AAAlF,mIAAA,sBAAsB,OAAA;AAC/B,mEAK0C;AAJtC,sHAAA,oBAAoB,OAAA;AACpB,0HAAA,wBAAwB,OAAA;AACxB,8HAAA,4BAA4B,OAAA;AAC5B,6HAAA,2BAA2B,OAAA;AAE/B,yFAAsF;AAA7E,wHAAA,iBAAiB,OAAA;AAC1B,yGAAqG;AAA5F,uIAAA,wBAAwB,OAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { model as amf } from 'amf-client-js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { GraphQLAnnotation } from '../intermediate/graphql-annotation';
|
|
3
3
|
export declare const GRAPHQL_ANNOTATION_NAME = "graphql";
|
|
4
4
|
export declare const SCHEMA_FILE_EXTENSION = ".graphql";
|
|
5
|
-
export declare function collectGraphqlAnnotation(operation: amf.domain.Operation, document: amf.document.Document):
|
|
5
|
+
export declare function collectGraphqlAnnotation(operation: amf.domain.Operation, document: amf.document.Document): GraphQLAnnotation | undefined;
|
package/dist/parser/resource.js
CHANGED
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.collectResources = exports.getEndpointBody = exports.resolveShapeLink = exports.buildResourceName = exports.getJSONPayloadShape = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const amf_client_js_1 = require("amf-client-js");
|
|
6
|
-
const graphql_parser_1 = require("@luvio/graphql-parser");
|
|
7
6
|
const resource_1 = require("../intermediate/resource");
|
|
8
7
|
const aml_1 = require("../utils/aml");
|
|
9
8
|
const files_1 = require("../utils/files");
|
|
@@ -15,6 +14,7 @@ const annotation_1 = require("../utils/annotation");
|
|
|
15
14
|
const annotation_key_1 = require("./annotation-key");
|
|
16
15
|
const annotation_paginationParams_1 = require("./annotation-paginationParams");
|
|
17
16
|
const annotation_graphql_1 = require("./annotation-graphql");
|
|
17
|
+
const graphql_dsl_1 = require("../codegen/graphql/graphql-dsl");
|
|
18
18
|
const JSON_MIME_TYPE = 'application/json';
|
|
19
19
|
function getJSONPayloadShape(response) {
|
|
20
20
|
for (let i = 0, len = response.payloads.length; i < len; i++) {
|
|
@@ -398,16 +398,18 @@ function collectResources(api, document, rootTtl, shapeKeys, shapeTtls, shapeCoe
|
|
|
398
398
|
if (graphqlAnnotation !== undefined) {
|
|
399
399
|
const graphqlSchemaLocation = (0, files_1.resolveFileLocation)(graphqlAnnotation.schemaPath, document);
|
|
400
400
|
const graphqlSchemaString = (0, fs_1.readFileSync)(graphqlSchemaLocation).toString();
|
|
401
|
-
const
|
|
402
|
-
|
|
403
|
-
const
|
|
401
|
+
const graphqlSchemaAST = (0, graphql_dsl_1.interpretGraphQLSchema)(graphqlSchemaString);
|
|
402
|
+
const validatedTypeExtensions = validateTypeExtensions(graphqlAnnotation.typeExtensions, graphqlSchemaAST);
|
|
403
|
+
const graphqlDSL = new graphql_dsl_1.GraphQLDSL({
|
|
404
|
+
schema: graphqlSchemaAST,
|
|
405
|
+
schemaName: (0, files_1.getFileName)(graphqlSchemaLocation, annotation_graphql_1.SCHEMA_FILE_EXTENSION),
|
|
406
|
+
typeExtensions: validatedTypeExtensions,
|
|
407
|
+
});
|
|
408
|
+
validateSchemaTypes(graphqlDSL, graphqlSchemaLocation);
|
|
404
409
|
resource = {
|
|
405
410
|
...resource,
|
|
406
411
|
resourceType: 'GraphQL',
|
|
407
|
-
|
|
408
|
-
schema,
|
|
409
|
-
typeExtensions: validatedTypeExtensions,
|
|
410
|
-
},
|
|
412
|
+
graphqlDSL,
|
|
411
413
|
};
|
|
412
414
|
}
|
|
413
415
|
resources.push(resource);
|
|
@@ -425,7 +427,7 @@ function validateTypeExtensions(typeExtensions, schema) {
|
|
|
425
427
|
const validatedTypeExtensions = {};
|
|
426
428
|
Object.keys(typeExtensions).forEach((typeName) => {
|
|
427
429
|
const typeExtension = typeExtensions[typeName];
|
|
428
|
-
if (schema.
|
|
430
|
+
if (schema.getType(typeName) !== undefined) {
|
|
429
431
|
validatedTypeExtensions[typeName] = typeExtension;
|
|
430
432
|
return;
|
|
431
433
|
}
|
|
@@ -433,9 +435,9 @@ function validateTypeExtensions(typeExtensions, schema) {
|
|
|
433
435
|
});
|
|
434
436
|
return validatedTypeExtensions;
|
|
435
437
|
}
|
|
436
|
-
function validateSchemaTypes(
|
|
438
|
+
function validateSchemaTypes(graphqlDsl, graphqlSchemaLocation) {
|
|
437
439
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
438
|
-
const schema =
|
|
440
|
+
const { schema } = graphqlDsl;
|
|
439
441
|
const subscriptionType = schema.getSubscriptionType();
|
|
440
442
|
const graphqlSchemaFileName = graphqlSchemaLocation.split('/').pop();
|
|
441
443
|
if (subscriptionType !== undefined) {
|