@looker/sdk-codegen-scripts 21.5.9 → 21.5.11
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/CHANGELOG.md +14 -0
- package/lib/convert.js.map +1 -1
- package/lib/declarationMiner.js.map +1 -1
- package/lib/esm/convert.js +13 -20
- package/lib/esm/convert.js.map +1 -1
- package/lib/esm/declarationMiner.js +12 -22
- package/lib/esm/declarationMiner.js.map +1 -1
- package/lib/esm/exampleMiner.js +28 -51
- package/lib/esm/exampleMiner.js.map +1 -1
- package/lib/esm/fetchSpec.js +39 -60
- package/lib/esm/fetchSpec.js.map +1 -1
- package/lib/esm/index.js +8 -93
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/languages.js +9 -17
- package/lib/esm/languages.js.map +1 -1
- package/lib/esm/legacy.js +6 -8
- package/lib/esm/legacy.js.map +1 -1
- package/lib/esm/legacyGenerator.js +12 -19
- package/lib/esm/legacyGenerator.js.map +1 -1
- package/lib/esm/nodeUtils.js +19 -39
- package/lib/esm/nodeUtils.js.map +1 -1
- package/lib/esm/prettify.js +2 -11
- package/lib/esm/prettify.js.map +1 -1
- package/lib/esm/reformatter.js +41 -50
- package/lib/esm/reformatter.js.map +1 -1
- package/lib/esm/sdkConfig.js +9 -19
- package/lib/esm/sdkConfig.js.map +1 -1
- package/lib/esm/sdkGen.js +33 -43
- package/lib/esm/sdkGen.js.map +1 -1
- package/lib/esm/sdkGenerator.js +16 -31
- package/lib/esm/sdkGenerator.js.map +1 -1
- package/lib/esm/specConvert.js +16 -20
- package/lib/esm/specConvert.js.map +1 -1
- package/lib/esm/testUtils/index.js +2 -27
- package/lib/esm/testUtils/index.js.map +1 -1
- package/lib/esm/testUtils/mocks.js +1 -8
- package/lib/esm/testUtils/mocks.js.map +1 -1
- package/lib/esm/testUtils/testUtils.js +11 -24
- package/lib/esm/testUtils/testUtils.js.map +1 -1
- package/lib/esm/utils.js +27 -38
- package/lib/esm/utils.js.map +1 -1
- package/lib/esm/yamlToJson.js +4 -8
- package/lib/esm/yamlToJson.js.map +1 -1
- package/lib/exampleMiner.js +1 -1
- package/lib/exampleMiner.js.map +1 -1
- package/lib/fetchSpec.js.map +1 -1
- package/lib/languages.js.map +1 -1
- package/lib/legacy.js.map +1 -1
- package/lib/legacyGenerator.js.map +1 -1
- package/lib/nodeUtils.js.map +1 -1
- package/lib/reformatter.js.map +1 -1
- package/lib/sdkConfig.js.map +1 -1
- package/lib/sdkGen.js.map +1 -1
- package/lib/sdkGenerator.js.map +1 -1
- package/lib/specConvert.js.map +1 -1
- package/lib/testUtils/testUtils.js.map +1 -1
- package/lib/utils.js.map +1 -1
- package/lib/yamlToJson.js.map +1 -1
- package/package.json +4 -4
package/lib/esm/reformatter.js
CHANGED
|
@@ -1,25 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.FilesFormatter = void 0;
|
|
7
|
-
var path = _interopRequireWildcard(require("path"));
|
|
8
|
-
var fs = _interopRequireWildcard(require("fs"));
|
|
9
|
-
var _sdkCodegenUtils = require("@looker/sdk-codegen-utils");
|
|
10
|
-
var _nodeUtils = require("./nodeUtils");
|
|
11
|
-
var _prettify = require("./prettify");
|
|
12
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
1
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
2
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
16
3
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
import * as fs from 'fs';
|
|
6
|
+
import { danger, success, warn } from '@looker/sdk-codegen-utils';
|
|
7
|
+
import { isFileSync, readFileSync, run, utf8Encoding } from './nodeUtils';
|
|
8
|
+
import { prettify } from './prettify';
|
|
17
9
|
var writeFile = (fileName, content) => {
|
|
18
|
-
fs.writeFileSync(fileName, content,
|
|
10
|
+
fs.writeFileSync(fileName, content, utf8Encoding);
|
|
19
11
|
};
|
|
20
12
|
var noFormatter = (language, files) => {
|
|
21
13
|
var list = files.join('\n ');
|
|
22
|
-
return
|
|
14
|
+
return warn("There is no ".concat(language, " formatter. Skipped reformatting of:\n ").concat(list));
|
|
23
15
|
};
|
|
24
16
|
var fullPath = weirdPath => path.resolve(weirdPath);
|
|
25
17
|
class BaseFormatter {
|
|
@@ -32,10 +24,10 @@ class BaseFormatter {
|
|
|
32
24
|
return noFormatter(this.language, files);
|
|
33
25
|
}
|
|
34
26
|
skipping() {
|
|
35
|
-
return
|
|
27
|
+
return warn("Version information was not retrieved. Skipping ".concat(this.language, " SDK version updating."));
|
|
36
28
|
}
|
|
37
29
|
reformatted(files) {
|
|
38
|
-
return
|
|
30
|
+
return success("Reformatted ".concat(this.language, " files:\n ").concat(files.join(this.fileSep)));
|
|
39
31
|
}
|
|
40
32
|
}
|
|
41
33
|
class PythonFormatter extends BaseFormatter {
|
|
@@ -44,28 +36,28 @@ class PythonFormatter extends BaseFormatter {
|
|
|
44
36
|
_defineProperty(this, "instructions", 'To reformat Python files, please install pipenv: https://docs.pipenv.org/en/latest/install/#installing-pipenv');
|
|
45
37
|
}
|
|
46
38
|
reformat(files) {
|
|
47
|
-
var pipEnvExists =
|
|
39
|
+
var pipEnvExists = run('command', ['-v', 'pipenv'], this.instructions, true);
|
|
48
40
|
if (pipEnvExists.includes('pipenv')) {
|
|
49
41
|
var list = files.join(' ');
|
|
50
|
-
|
|
51
|
-
return
|
|
42
|
+
run('pipenv', ['run', 'black', list], 'Python reformat', true);
|
|
43
|
+
return success(files);
|
|
52
44
|
} else {
|
|
53
|
-
return
|
|
45
|
+
return danger(this.instructions);
|
|
54
46
|
}
|
|
55
47
|
}
|
|
56
48
|
versionStamp(gen) {
|
|
57
49
|
if (gen.versions && gen.versions.lookerVersion) {
|
|
58
50
|
var stampFile = fullPath(gen.fileName('sdk/constants'));
|
|
59
|
-
if (!
|
|
60
|
-
|
|
51
|
+
if (!isFileSync(stampFile)) {
|
|
52
|
+
warn("".concat(stampFile, " was not found. Skipping version update."));
|
|
61
53
|
}
|
|
62
|
-
var content =
|
|
54
|
+
var content = readFileSync(stampFile);
|
|
63
55
|
var sdkVersionPattern = /sdk_version = ['"].*['"]/i;
|
|
64
56
|
var envPattern = /environment_prefix = ['"].*['"]/i;
|
|
65
57
|
content = content.replace(sdkVersionPattern, "sdk_version = \"".concat(gen.versions.lookerVersion, "\""));
|
|
66
58
|
content = content.replace(envPattern, "environment_prefix = \"".concat(gen.environmentPrefix, "\""));
|
|
67
59
|
writeFile(stampFile, content);
|
|
68
|
-
return
|
|
60
|
+
return success("updated ".concat(stampFile, " to ").concat(gen.versions.lookerVersion));
|
|
69
61
|
}
|
|
70
62
|
return this.skipping();
|
|
71
63
|
}
|
|
@@ -78,10 +70,10 @@ class TypescriptFormatter extends BaseFormatter {
|
|
|
78
70
|
files.forEach(f => {
|
|
79
71
|
this.reformatFile(f);
|
|
80
72
|
});
|
|
81
|
-
return
|
|
73
|
+
return success(files);
|
|
82
74
|
}
|
|
83
75
|
reformatFile(fileName) {
|
|
84
|
-
var source =
|
|
76
|
+
var source = prettify(readFileSync(fileName));
|
|
85
77
|
if (source) {
|
|
86
78
|
writeFile(fileName, source);
|
|
87
79
|
}
|
|
@@ -90,16 +82,16 @@ class TypescriptFormatter extends BaseFormatter {
|
|
|
90
82
|
versionStamp(gen) {
|
|
91
83
|
if (gen.versions && gen.versions.lookerVersion) {
|
|
92
84
|
var stampFile = fullPath(gen.fileName('../../sdk/src/constants'));
|
|
93
|
-
if (!
|
|
94
|
-
|
|
85
|
+
if (!isFileSync(stampFile)) {
|
|
86
|
+
warn("".concat(stampFile, " was not found. Skipping version update."));
|
|
95
87
|
}
|
|
96
|
-
var content =
|
|
88
|
+
var content = readFileSync(stampFile);
|
|
97
89
|
var sdkVersionPattern = /sdkVersion = ['"].*['"]/i;
|
|
98
90
|
var envPattern = /environmentPrefix = ['"].*['"]/i;
|
|
99
91
|
content = content.replace(sdkVersionPattern, "sdkVersion = '".concat(gen.versions.lookerVersion, "'"));
|
|
100
92
|
content = content.replace(envPattern, "environmentPrefix = '".concat(gen.environmentPrefix, "'"));
|
|
101
93
|
writeFile(stampFile, content);
|
|
102
|
-
return
|
|
94
|
+
return success("updated ".concat(stampFile, " to ").concat(gen.versions.lookerVersion));
|
|
103
95
|
}
|
|
104
96
|
return this.skipping();
|
|
105
97
|
}
|
|
@@ -111,10 +103,10 @@ class KotlinFormatter extends BaseFormatter {
|
|
|
111
103
|
versionStamp(gen) {
|
|
112
104
|
if (gen.versions && gen.versions.lookerVersion) {
|
|
113
105
|
var stampFile = fullPath(gen.fileName('sdk/Constants'));
|
|
114
|
-
if (!
|
|
115
|
-
|
|
106
|
+
if (!isFileSync(stampFile)) {
|
|
107
|
+
warn("".concat(stampFile, " was not found. Skipping version update."));
|
|
116
108
|
}
|
|
117
|
-
var content =
|
|
109
|
+
var content = readFileSync(stampFile);
|
|
118
110
|
var lookerPattern = /\bLOOKER_VERSION = ['"].*['"]/i;
|
|
119
111
|
var apiPattern = /\bAPI_VERSION = ['"].*['"]/i;
|
|
120
112
|
var envPattern = /\bENVIRONMENT_PREFIX = ['"].*['"]/i;
|
|
@@ -122,7 +114,7 @@ class KotlinFormatter extends BaseFormatter {
|
|
|
122
114
|
content = content.replace(apiPattern, "API_VERSION = \"".concat(gen.versions.spec.version, "\""));
|
|
123
115
|
content = content.replace(envPattern, "ENVIRONMENT_PREFIX = \"".concat(gen.environmentPrefix, "\""));
|
|
124
116
|
writeFile(stampFile, content);
|
|
125
|
-
return
|
|
117
|
+
return success("updated ".concat(stampFile, " to ").concat(gen.versions.spec.version, ".").concat(gen.versions.lookerVersion));
|
|
126
118
|
}
|
|
127
119
|
return this.skipping();
|
|
128
120
|
}
|
|
@@ -134,10 +126,10 @@ class SwiftFormatter extends BaseFormatter {
|
|
|
134
126
|
versionStamp(gen) {
|
|
135
127
|
if (gen.versions && gen.versions.lookerVersion) {
|
|
136
128
|
var stampFile = fullPath(gen.fileName('rtl/constants'));
|
|
137
|
-
if (!
|
|
138
|
-
|
|
129
|
+
if (!isFileSync(stampFile)) {
|
|
130
|
+
warn("".concat(stampFile, " was not found. Skipping version update."));
|
|
139
131
|
}
|
|
140
|
-
var content =
|
|
132
|
+
var content = readFileSync(stampFile);
|
|
141
133
|
var lookerPattern = /lookerVersion = ['"].*['"]/i;
|
|
142
134
|
var apiPattern = /apiVersion = ['"].*['"]/i;
|
|
143
135
|
var envPattern = /environmentPrefix = ['"].*['"]/i;
|
|
@@ -145,7 +137,7 @@ class SwiftFormatter extends BaseFormatter {
|
|
|
145
137
|
content = content.replace(apiPattern, "apiVersion = \"".concat(gen.versions.spec.version, "\""));
|
|
146
138
|
content = content.replace(envPattern, "environmentPrefix = \"".concat(gen.environmentPrefix, "\""));
|
|
147
139
|
writeFile(stampFile, content);
|
|
148
|
-
return
|
|
140
|
+
return success("updated ".concat(stampFile, " to ").concat(gen.versions.spec.version, ".").concat(gen.versions.lookerVersion));
|
|
149
141
|
}
|
|
150
142
|
return this.skipping();
|
|
151
143
|
}
|
|
@@ -157,10 +149,10 @@ class CsharpFormatter extends BaseFormatter {
|
|
|
157
149
|
versionStamp(gen) {
|
|
158
150
|
if (gen.versions && gen.versions.lookerVersion) {
|
|
159
151
|
var stampFile = fullPath(gen.fileName('rtl/Constants'));
|
|
160
|
-
if (!
|
|
161
|
-
|
|
152
|
+
if (!isFileSync(stampFile)) {
|
|
153
|
+
warn("".concat(stampFile, " was not found. Skipping version update."));
|
|
162
154
|
}
|
|
163
|
-
var content =
|
|
155
|
+
var content = readFileSync(stampFile);
|
|
164
156
|
var lookerPattern = /LookerVersion = ['"].*['"]/i;
|
|
165
157
|
var apiPattern = /ApiVersion = ['"].*['"]/i;
|
|
166
158
|
var envPattern = /EnvironmentPrefix = ['"].*['"]/i;
|
|
@@ -168,7 +160,7 @@ class CsharpFormatter extends BaseFormatter {
|
|
|
168
160
|
content = content.replace(apiPattern, "ApiVersion = \"".concat(gen.versions.spec.version, "\""));
|
|
169
161
|
content = content.replace(envPattern, "EnvironmentPrefix = \"".concat(gen.environmentPrefix, "\""));
|
|
170
162
|
writeFile(stampFile, content);
|
|
171
|
-
return
|
|
163
|
+
return success("updated ".concat(stampFile, " to ").concat(gen.versions.spec.version, ".").concat(gen.versions.lookerVersion));
|
|
172
164
|
}
|
|
173
165
|
return this.skipping();
|
|
174
166
|
}
|
|
@@ -179,17 +171,17 @@ class GoFormatter extends BaseFormatter {
|
|
|
179
171
|
_defineProperty(this, "instructions", 'To reformat Go files, please install gofmt: https://go.dev/blog/gofmt');
|
|
180
172
|
}
|
|
181
173
|
reformat(files) {
|
|
182
|
-
var gofmtExists =
|
|
174
|
+
var gofmtExists = run('command', ['-v', 'gofmt'], this.instructions, true);
|
|
183
175
|
if (gofmtExists.includes('gofmt')) {
|
|
184
176
|
var list = files.join(' ');
|
|
185
|
-
|
|
186
|
-
return
|
|
177
|
+
run('gofmt', ['-w', list], 'Go reformat', true);
|
|
178
|
+
return success(files);
|
|
187
179
|
} else {
|
|
188
|
-
return
|
|
180
|
+
return danger(this.instructions);
|
|
189
181
|
}
|
|
190
182
|
}
|
|
191
183
|
versionStamp() {
|
|
192
|
-
return
|
|
184
|
+
return warn('Skipping SDK version updating - not implemented for Go.');
|
|
193
185
|
}
|
|
194
186
|
}
|
|
195
187
|
var fileFormatters = {
|
|
@@ -200,7 +192,7 @@ var fileFormatters = {
|
|
|
200
192
|
'.ts': new TypescriptFormatter(),
|
|
201
193
|
'.go': new GoFormatter()
|
|
202
194
|
};
|
|
203
|
-
class FilesFormatter {
|
|
195
|
+
export class FilesFormatter {
|
|
204
196
|
constructor() {
|
|
205
197
|
_defineProperty(this, "files", {});
|
|
206
198
|
}
|
|
@@ -229,5 +221,4 @@ class FilesFormatter {
|
|
|
229
221
|
return formatter.versionStamp(gen);
|
|
230
222
|
}
|
|
231
223
|
}
|
|
232
|
-
exports.FilesFormatter = FilesFormatter;
|
|
233
224
|
//# sourceMappingURL=reformatter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reformatter.js","names":["path","_interopRequireWildcard","require","fs","_sdkCodegenUtils","_nodeUtils","_prettify","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_defineProperty","value","_toPropertyKey","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","writeFile","fileName","content","writeFileSync","utf8Encoding","noFormatter","language","files","list","join","warn","concat","fullPath","weirdPath","resolve","BaseFormatter","constructor","fileSep","arguments","length","reformat","skipping","reformatted","success","PythonFormatter","pipEnvExists","run","instructions","includes","danger","versionStamp","gen","versions","lookerVersion","stampFile","isFileSync","readFileSync","sdkVersionPattern","envPattern","replace","environmentPrefix","TypescriptFormatter","forEach","f","reformatFile","source","prettify","KotlinFormatter","lookerPattern","apiPattern","spec","version","SwiftFormatter","CsharpFormatter","GoFormatter","gofmtExists","fileFormatters","FilesFormatter","addFile","extname","push","clear","entries","_ref","formatter","fileExtension","exports"],"sources":["../../src/reformatter.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport * as path from 'path'\nimport * as fs from 'fs'\nimport { danger, success, warn } from '@looker/sdk-codegen-utils'\nimport type { ICodeGen } from '@looker/sdk-codegen'\nimport { isFileSync, readFileSync, run, utf8Encoding } from './nodeUtils'\nimport { prettify } from './prettify'\n\nexport interface IReformat {\n fileSep: string\n language: string\n reformat(files: string[]): string\n versionStamp(gen: ICodeGen): string\n skipping(): string\n reformatted(files: string[]): string\n}\n\n/**\n * wrapper function for writing reformatted files with utf-8 encoding synchronously\n * @param {string} fileName name of file to write\n * @param {string} content content to write\n */\nconst writeFile = (fileName: string, content: string) => {\n fs.writeFileSync(fileName, content, utf8Encoding)\n}\n\nconst noFormatter = (language: string, files: string[]) => {\n const list = files.join('\\n ')\n return warn(\n `There is no ${language} formatter. Skipped reformatting of:\\n ${list}`\n )\n}\n\nconst fullPath = (weirdPath: string) => path.resolve(weirdPath)\n\nabstract class BaseFormatter implements IReformat {\n constructor(public language: string, public fileSep = ` \\n`) {}\n reformat(files: string[]): string {\n return noFormatter(this.language, files)\n }\n\n abstract versionStamp(gen: ICodeGen): string\n\n skipping() {\n return warn(\n `Version information was not retrieved. Skipping ${this.language} SDK version updating.`\n )\n }\n\n reformatted(files: string[]) {\n return success(\n `Reformatted ${this.language} files:\\n ${files.join(this.fileSep)}`\n )\n }\n}\n\nclass PythonFormatter extends BaseFormatter {\n constructor() {\n super('Python')\n }\n\n instructions =\n 'To reformat Python files, please install pipenv: https://docs.pipenv.org/en/latest/install/#installing-pipenv'\n\n reformat(files: string[]): string {\n const pipEnvExists = run(\n 'command',\n ['-v', 'pipenv'],\n this.instructions,\n true\n )\n if (pipEnvExists.includes('pipenv')) {\n const list = files.join(' ')\n // pipenv check completed without error\n run('pipenv', ['run', 'black', list], 'Python reformat', true)\n return success(files)\n } else {\n return danger(this.instructions)\n }\n }\n\n versionStamp(gen: ICodeGen) {\n if (gen.versions && gen.versions.lookerVersion) {\n const stampFile = fullPath(gen.fileName('sdk/constants'))\n if (!isFileSync(stampFile)) {\n warn(`${stampFile} was not found. Skipping version update.`)\n }\n let content = readFileSync(stampFile)\n const sdkVersionPattern = /sdk_version = ['\"].*['\"]/i\n const envPattern = /environment_prefix = ['\"].*['\"]/i\n content = content.replace(\n sdkVersionPattern,\n `sdk_version = \"${gen.versions.lookerVersion}\"`\n )\n content = content.replace(\n envPattern,\n `environment_prefix = \"${gen.environmentPrefix}\"`\n )\n writeFile(stampFile, content)\n return success(`updated ${stampFile} to ${gen.versions.lookerVersion}`)\n }\n\n return this.skipping()\n }\n}\n\nclass TypescriptFormatter extends BaseFormatter {\n constructor() {\n super('TypeScript')\n }\n\n reformat(files: string[]): string {\n files.forEach((f) => {\n this.reformatFile(f)\n })\n return success(files)\n }\n\n reformatFile(fileName: string) {\n const source = prettify(readFileSync(fileName))\n if (source) {\n writeFile(fileName, source)\n }\n return fileName\n }\n\n versionStamp(gen: ICodeGen) {\n if (gen.versions && gen.versions.lookerVersion) {\n const stampFile = fullPath(gen.fileName('../../sdk/src/constants'))\n if (!isFileSync(stampFile)) {\n warn(`${stampFile} was not found. Skipping version update.`)\n }\n let content = readFileSync(stampFile)\n const sdkVersionPattern = /sdkVersion = ['\"].*['\"]/i\n const envPattern = /environmentPrefix = ['\"].*['\"]/i\n content = content.replace(\n sdkVersionPattern,\n `sdkVersion = '${gen.versions.lookerVersion}'`\n )\n content = content.replace(\n envPattern,\n `environmentPrefix = '${gen.environmentPrefix}'`\n )\n writeFile(stampFile, content)\n return success(`updated ${stampFile} to ${gen.versions.lookerVersion}`)\n }\n\n return this.skipping()\n }\n}\n\nclass KotlinFormatter extends BaseFormatter {\n // TODO Kotlin formatter\n constructor() {\n super('Kotlin')\n }\n\n versionStamp(gen: ICodeGen) {\n if (gen.versions && gen.versions.lookerVersion) {\n const stampFile = fullPath(gen.fileName('sdk/Constants'))\n if (!isFileSync(stampFile)) {\n warn(`${stampFile} was not found. Skipping version update.`)\n }\n let content = readFileSync(stampFile)\n const lookerPattern = /\\bLOOKER_VERSION = ['\"].*['\"]/i\n const apiPattern = /\\bAPI_VERSION = ['\"].*['\"]/i\n const envPattern = /\\bENVIRONMENT_PREFIX = ['\"].*['\"]/i\n content = content.replace(\n lookerPattern,\n `LOOKER_VERSION = \"${gen.versions.lookerVersion}\"`\n )\n content = content.replace(\n apiPattern,\n `API_VERSION = \"${gen.versions.spec.version}\"`\n )\n content = content.replace(\n envPattern,\n `ENVIRONMENT_PREFIX = \"${gen.environmentPrefix}\"`\n )\n writeFile(stampFile, content)\n return success(\n `updated ${stampFile} to ${gen.versions.spec.version}.${gen.versions.lookerVersion}`\n )\n }\n return this.skipping()\n }\n}\n\nclass SwiftFormatter extends BaseFormatter {\n // TODO Swift formatter\n constructor() {\n super('Swift')\n }\n\n versionStamp(gen: ICodeGen) {\n if (gen.versions && gen.versions.lookerVersion) {\n const stampFile = fullPath(gen.fileName('rtl/constants'))\n if (!isFileSync(stampFile)) {\n warn(`${stampFile} was not found. Skipping version update.`)\n }\n let content = readFileSync(stampFile)\n const lookerPattern = /lookerVersion = ['\"].*['\"]/i\n const apiPattern = /apiVersion = ['\"].*['\"]/i\n const envPattern = /environmentPrefix = ['\"].*['\"]/i\n content = content.replace(\n lookerPattern,\n `lookerVersion = \"${gen.versions.lookerVersion}\"`\n )\n content = content.replace(\n apiPattern,\n `apiVersion = \"${gen.versions.spec.version}\"`\n )\n content = content.replace(\n envPattern,\n `environmentPrefix = \"${gen.environmentPrefix}\"`\n )\n writeFile(stampFile, content)\n return success(\n `updated ${stampFile} to ${gen.versions.spec.version}.${gen.versions.lookerVersion}`\n )\n }\n return this.skipping()\n }\n}\n\nclass CsharpFormatter extends BaseFormatter {\n // TODO C# formatter https://github.com/dotnet/format\n constructor() {\n super('C#')\n }\n\n versionStamp(gen: ICodeGen) {\n if (gen.versions && gen.versions.lookerVersion) {\n const stampFile = fullPath(gen.fileName('rtl/Constants'))\n if (!isFileSync(stampFile)) {\n warn(`${stampFile} was not found. Skipping version update.`)\n }\n let content = readFileSync(stampFile)\n const lookerPattern = /LookerVersion = ['\"].*['\"]/i\n const apiPattern = /ApiVersion = ['\"].*['\"]/i\n const envPattern = /EnvironmentPrefix = ['\"].*['\"]/i\n content = content.replace(\n lookerPattern,\n `LookerVersion = \"${gen.versions.lookerVersion}\"`\n )\n content = content.replace(\n apiPattern,\n `ApiVersion = \"${gen.versions.spec.version}\"`\n )\n content = content.replace(\n envPattern,\n `EnvironmentPrefix = \"${gen.environmentPrefix}\"`\n )\n writeFile(stampFile, content)\n return success(\n `updated ${stampFile} to ${gen.versions.spec.version}.${gen.versions.lookerVersion}`\n )\n }\n return this.skipping()\n }\n}\n\nclass GoFormatter extends BaseFormatter {\n // TODO Go formatter\n constructor() {\n super('Go')\n }\n\n instructions =\n 'To reformat Go files, please install gofmt: https://go.dev/blog/gofmt'\n\n reformat(files: string[]): string {\n const gofmtExists = run('command', ['-v', 'gofmt'], this.instructions, true)\n if (gofmtExists.includes('gofmt')) {\n const list = files.join(' ')\n // gofmt check completed without error\n run('gofmt', ['-w', list], 'Go reformat', true)\n return success(files)\n } else {\n return danger(this.instructions)\n }\n }\n\n versionStamp() {\n return warn('Skipping SDK version updating - not implemented for Go.')\n }\n}\n\ntype IFormatFiles = { [key: string]: string[] }\n\ntype IFormatters = { [key: string]: IReformat }\n\nconst fileFormatters: IFormatters = {\n '.cs': new CsharpFormatter(),\n '.kt': new KotlinFormatter(),\n '.py': new PythonFormatter(),\n '.swift': new SwiftFormatter(),\n '.ts': new TypescriptFormatter(),\n '.go': new GoFormatter(),\n}\n\nexport class FilesFormatter {\n files: IFormatFiles = {}\n\n addFile(fileName: string) {\n const key = path.extname(fileName)\n if (key in this.files) {\n this.files[key].push(fileName)\n } else {\n this.files[key] = [fileName]\n }\n }\n\n clear() {\n this.files = {}\n }\n\n reformat(files?: string[]) {\n if (files) files.forEach((f) => this.addFile(f))\n Object.entries(this.files).forEach(([key, list]) => {\n if (key in fileFormatters) {\n fileFormatters[key].reformat(list)\n }\n })\n }\n\n versionStamp(gen: ICodeGen) {\n const formatter = fileFormatters[gen.fileExtension]\n return formatter.versionStamp(gen)\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reformatter.js","names":["path","fs","danger","success","warn","isFileSync","readFileSync","run","utf8Encoding","prettify","writeFile","fileName","content","writeFileSync","noFormatter","language","files","list","join","concat","fullPath","weirdPath","resolve","BaseFormatter","constructor","fileSep","arguments","length","undefined","reformat","skipping","reformatted","PythonFormatter","_defineProperty","pipEnvExists","instructions","includes","versionStamp","gen","versions","lookerVersion","stampFile","sdkVersionPattern","envPattern","replace","environmentPrefix","TypescriptFormatter","forEach","f","reformatFile","source","KotlinFormatter","lookerPattern","apiPattern","spec","version","SwiftFormatter","CsharpFormatter","GoFormatter","gofmtExists","fileFormatters","FilesFormatter","addFile","key","extname","push","clear","Object","entries","_ref","formatter","fileExtension"],"sources":["../../src/reformatter.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport * as path from 'path'\nimport * as fs from 'fs'\nimport { danger, success, warn } from '@looker/sdk-codegen-utils'\nimport type { ICodeGen } from '@looker/sdk-codegen'\nimport { isFileSync, readFileSync, run, utf8Encoding } from './nodeUtils'\nimport { prettify } from './prettify'\n\nexport interface IReformat {\n fileSep: string\n language: string\n reformat(files: string[]): string\n versionStamp(gen: ICodeGen): string\n skipping(): string\n reformatted(files: string[]): string\n}\n\n/**\n * wrapper function for writing reformatted files with utf-8 encoding synchronously\n * @param {string} fileName name of file to write\n * @param {string} content content to write\n */\nconst writeFile = (fileName: string, content: string) => {\n fs.writeFileSync(fileName, content, utf8Encoding)\n}\n\nconst noFormatter = (language: string, files: string[]) => {\n const list = files.join('\\n ')\n return warn(\n `There is no ${language} formatter. Skipped reformatting of:\\n ${list}`\n )\n}\n\nconst fullPath = (weirdPath: string) => path.resolve(weirdPath)\n\nabstract class BaseFormatter implements IReformat {\n constructor(public language: string, public fileSep = ` \\n`) {}\n reformat(files: string[]): string {\n return noFormatter(this.language, files)\n }\n\n abstract versionStamp(gen: ICodeGen): string\n\n skipping() {\n return warn(\n `Version information was not retrieved. Skipping ${this.language} SDK version updating.`\n )\n }\n\n reformatted(files: string[]) {\n return success(\n `Reformatted ${this.language} files:\\n ${files.join(this.fileSep)}`\n )\n }\n}\n\nclass PythonFormatter extends BaseFormatter {\n constructor() {\n super('Python')\n }\n\n instructions =\n 'To reformat Python files, please install pipenv: https://docs.pipenv.org/en/latest/install/#installing-pipenv'\n\n reformat(files: string[]): string {\n const pipEnvExists = run(\n 'command',\n ['-v', 'pipenv'],\n this.instructions,\n true\n )\n if (pipEnvExists.includes('pipenv')) {\n const list = files.join(' ')\n // pipenv check completed without error\n run('pipenv', ['run', 'black', list], 'Python reformat', true)\n return success(files)\n } else {\n return danger(this.instructions)\n }\n }\n\n versionStamp(gen: ICodeGen) {\n if (gen.versions && gen.versions.lookerVersion) {\n const stampFile = fullPath(gen.fileName('sdk/constants'))\n if (!isFileSync(stampFile)) {\n warn(`${stampFile} was not found. Skipping version update.`)\n }\n let content = readFileSync(stampFile)\n const sdkVersionPattern = /sdk_version = ['\"].*['\"]/i\n const envPattern = /environment_prefix = ['\"].*['\"]/i\n content = content.replace(\n sdkVersionPattern,\n `sdk_version = \"${gen.versions.lookerVersion}\"`\n )\n content = content.replace(\n envPattern,\n `environment_prefix = \"${gen.environmentPrefix}\"`\n )\n writeFile(stampFile, content)\n return success(`updated ${stampFile} to ${gen.versions.lookerVersion}`)\n }\n\n return this.skipping()\n }\n}\n\nclass TypescriptFormatter extends BaseFormatter {\n constructor() {\n super('TypeScript')\n }\n\n reformat(files: string[]): string {\n files.forEach((f) => {\n this.reformatFile(f)\n })\n return success(files)\n }\n\n reformatFile(fileName: string) {\n const source = prettify(readFileSync(fileName))\n if (source) {\n writeFile(fileName, source)\n }\n return fileName\n }\n\n versionStamp(gen: ICodeGen) {\n if (gen.versions && gen.versions.lookerVersion) {\n const stampFile = fullPath(gen.fileName('../../sdk/src/constants'))\n if (!isFileSync(stampFile)) {\n warn(`${stampFile} was not found. Skipping version update.`)\n }\n let content = readFileSync(stampFile)\n const sdkVersionPattern = /sdkVersion = ['\"].*['\"]/i\n const envPattern = /environmentPrefix = ['\"].*['\"]/i\n content = content.replace(\n sdkVersionPattern,\n `sdkVersion = '${gen.versions.lookerVersion}'`\n )\n content = content.replace(\n envPattern,\n `environmentPrefix = '${gen.environmentPrefix}'`\n )\n writeFile(stampFile, content)\n return success(`updated ${stampFile} to ${gen.versions.lookerVersion}`)\n }\n\n return this.skipping()\n }\n}\n\nclass KotlinFormatter extends BaseFormatter {\n // TODO Kotlin formatter\n constructor() {\n super('Kotlin')\n }\n\n versionStamp(gen: ICodeGen) {\n if (gen.versions && gen.versions.lookerVersion) {\n const stampFile = fullPath(gen.fileName('sdk/Constants'))\n if (!isFileSync(stampFile)) {\n warn(`${stampFile} was not found. Skipping version update.`)\n }\n let content = readFileSync(stampFile)\n const lookerPattern = /\\bLOOKER_VERSION = ['\"].*['\"]/i\n const apiPattern = /\\bAPI_VERSION = ['\"].*['\"]/i\n const envPattern = /\\bENVIRONMENT_PREFIX = ['\"].*['\"]/i\n content = content.replace(\n lookerPattern,\n `LOOKER_VERSION = \"${gen.versions.lookerVersion}\"`\n )\n content = content.replace(\n apiPattern,\n `API_VERSION = \"${gen.versions.spec.version}\"`\n )\n content = content.replace(\n envPattern,\n `ENVIRONMENT_PREFIX = \"${gen.environmentPrefix}\"`\n )\n writeFile(stampFile, content)\n return success(\n `updated ${stampFile} to ${gen.versions.spec.version}.${gen.versions.lookerVersion}`\n )\n }\n return this.skipping()\n }\n}\n\nclass SwiftFormatter extends BaseFormatter {\n // TODO Swift formatter\n constructor() {\n super('Swift')\n }\n\n versionStamp(gen: ICodeGen) {\n if (gen.versions && gen.versions.lookerVersion) {\n const stampFile = fullPath(gen.fileName('rtl/constants'))\n if (!isFileSync(stampFile)) {\n warn(`${stampFile} was not found. Skipping version update.`)\n }\n let content = readFileSync(stampFile)\n const lookerPattern = /lookerVersion = ['\"].*['\"]/i\n const apiPattern = /apiVersion = ['\"].*['\"]/i\n const envPattern = /environmentPrefix = ['\"].*['\"]/i\n content = content.replace(\n lookerPattern,\n `lookerVersion = \"${gen.versions.lookerVersion}\"`\n )\n content = content.replace(\n apiPattern,\n `apiVersion = \"${gen.versions.spec.version}\"`\n )\n content = content.replace(\n envPattern,\n `environmentPrefix = \"${gen.environmentPrefix}\"`\n )\n writeFile(stampFile, content)\n return success(\n `updated ${stampFile} to ${gen.versions.spec.version}.${gen.versions.lookerVersion}`\n )\n }\n return this.skipping()\n }\n}\n\nclass CsharpFormatter extends BaseFormatter {\n // TODO C# formatter https://github.com/dotnet/format\n constructor() {\n super('C#')\n }\n\n versionStamp(gen: ICodeGen) {\n if (gen.versions && gen.versions.lookerVersion) {\n const stampFile = fullPath(gen.fileName('rtl/Constants'))\n if (!isFileSync(stampFile)) {\n warn(`${stampFile} was not found. Skipping version update.`)\n }\n let content = readFileSync(stampFile)\n const lookerPattern = /LookerVersion = ['\"].*['\"]/i\n const apiPattern = /ApiVersion = ['\"].*['\"]/i\n const envPattern = /EnvironmentPrefix = ['\"].*['\"]/i\n content = content.replace(\n lookerPattern,\n `LookerVersion = \"${gen.versions.lookerVersion}\"`\n )\n content = content.replace(\n apiPattern,\n `ApiVersion = \"${gen.versions.spec.version}\"`\n )\n content = content.replace(\n envPattern,\n `EnvironmentPrefix = \"${gen.environmentPrefix}\"`\n )\n writeFile(stampFile, content)\n return success(\n `updated ${stampFile} to ${gen.versions.spec.version}.${gen.versions.lookerVersion}`\n )\n }\n return this.skipping()\n }\n}\n\nclass GoFormatter extends BaseFormatter {\n // TODO Go formatter\n constructor() {\n super('Go')\n }\n\n instructions =\n 'To reformat Go files, please install gofmt: https://go.dev/blog/gofmt'\n\n reformat(files: string[]): string {\n const gofmtExists = run('command', ['-v', 'gofmt'], this.instructions, true)\n if (gofmtExists.includes('gofmt')) {\n const list = files.join(' ')\n // gofmt check completed without error\n run('gofmt', ['-w', list], 'Go reformat', true)\n return success(files)\n } else {\n return danger(this.instructions)\n }\n }\n\n versionStamp() {\n return warn('Skipping SDK version updating - not implemented for Go.')\n }\n}\n\ntype IFormatFiles = { [key: string]: string[] }\n\ntype IFormatters = { [key: string]: IReformat }\n\nconst fileFormatters: IFormatters = {\n '.cs': new CsharpFormatter(),\n '.kt': new KotlinFormatter(),\n '.py': new PythonFormatter(),\n '.swift': new SwiftFormatter(),\n '.ts': new TypescriptFormatter(),\n '.go': new GoFormatter(),\n}\n\nexport class FilesFormatter {\n files: IFormatFiles = {}\n\n addFile(fileName: string) {\n const key = path.extname(fileName)\n if (key in this.files) {\n this.files[key].push(fileName)\n } else {\n this.files[key] = [fileName]\n }\n }\n\n clear() {\n this.files = {}\n }\n\n reformat(files?: string[]) {\n if (files) files.forEach((f) => this.addFile(f))\n Object.entries(this.files).forEach(([key, list]) => {\n if (key in fileFormatters) {\n fileFormatters[key].reformat(list)\n }\n })\n }\n\n versionStamp(gen: ICodeGen) {\n const formatter = fileFormatters[gen.fileExtension]\n return formatter.versionStamp(gen)\n }\n}\n"],"mappings":"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"}
|
package/lib/esm/sdkConfig.js
CHANGED
|
@@ -1,37 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.SDKConfig = void 0;
|
|
7
|
-
var fs = _interopRequireWildcard(require("fs"));
|
|
8
|
-
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
9
|
-
var _sdkRtl = require("@looker/sdk-rtl");
|
|
10
|
-
var _sdkNode = require("@looker/sdk-node");
|
|
11
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
|
-
var SDKConfig = function SDKConfig() {
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import dotenv from 'dotenv';
|
|
3
|
+
import { boolDefault } from '@looker/sdk-rtl';
|
|
4
|
+
import { readIniConfig } from '@looker/sdk-node';
|
|
5
|
+
export var SDKConfig = function SDKConfig() {
|
|
15
6
|
var fileName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : './looker.ini';
|
|
16
7
|
var envPrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'LOOKERSDK';
|
|
17
8
|
var sectionName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Looker';
|
|
18
|
-
|
|
9
|
+
dotenv.config();
|
|
19
10
|
if (process.env.DOT_ENV_FILE) {
|
|
20
11
|
var name = process.env.DOT_ENV_FILE;
|
|
21
|
-
var vals =
|
|
12
|
+
var vals = dotenv.parse(fs.readFileSync(name, 'utf-8'));
|
|
22
13
|
Object.entries(vals).forEach(_ref => {
|
|
23
14
|
var [key, val] = _ref;
|
|
24
15
|
if (val) process.env[key] = val;
|
|
25
16
|
});
|
|
26
17
|
}
|
|
27
|
-
var section =
|
|
18
|
+
var section = readIniConfig(fileName, envPrefix, sectionName);
|
|
28
19
|
var config = {
|
|
29
20
|
api_version: section.api_version,
|
|
30
21
|
api_versions: section.api_versions,
|
|
31
22
|
base_url: section.base_url,
|
|
32
23
|
client_id: section.client_id,
|
|
33
24
|
client_secret: section.client_secret,
|
|
34
|
-
verify_ssl:
|
|
25
|
+
verify_ssl: boolDefault(section.verify_ssl, true)
|
|
35
26
|
};
|
|
36
27
|
if (!config.base_url) {
|
|
37
28
|
throw Error('Fatal error: base_url is not configured. Exiting.');
|
|
@@ -40,5 +31,4 @@ var SDKConfig = function SDKConfig() {
|
|
|
40
31
|
[sectionName]: config
|
|
41
32
|
};
|
|
42
33
|
};
|
|
43
|
-
exports.SDKConfig = SDKConfig;
|
|
44
34
|
//# sourceMappingURL=sdkConfig.js.map
|
package/lib/esm/sdkConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdkConfig.js","names":["fs","
|
|
1
|
+
{"version":3,"file":"sdkConfig.js","names":["fs","dotenv","boolDefault","readIniConfig","SDKConfig","fileName","arguments","length","undefined","envPrefix","sectionName","config","process","env","DOT_ENV_FILE","name","vals","parse","readFileSync","Object","entries","forEach","_ref","key","val","section","api_version","api_versions","base_url","client_id","client_secret","verify_ssl","Error"],"sources":["../../src/sdkConfig.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport * as fs from 'fs'\nimport dotenv from 'dotenv'\nimport { boolDefault } from '@looker/sdk-rtl'\nimport { readIniConfig } from '@looker/sdk-node'\n\nexport interface ISDKConfigProps {\n api_version: string\n api_versions: string\n base_url: string\n client_id: string\n client_secret: string\n verify_ssl: boolean\n}\n\nexport interface ISDKConfigSection {\n [key: string]: ISDKConfigProps\n}\n\nexport const SDKConfig = (\n fileName = './looker.ini',\n envPrefix = 'LOOKERSDK',\n sectionName = 'Looker'\n): ISDKConfigSection => {\n dotenv.config()\n if (process.env.DOT_ENV_FILE) {\n // Load custom env file\n const name = process.env.DOT_ENV_FILE\n const vals = dotenv.parse(fs.readFileSync(name, 'utf-8'))\n Object.entries(vals).forEach(([key, val]) => {\n if (val) process.env[key] = val\n })\n }\n\n const section = readIniConfig(fileName, envPrefix, sectionName)\n const config: ISDKConfigProps = {\n api_version: section.api_version,\n api_versions: section.api_versions,\n base_url: section.base_url,\n client_id: section.client_id,\n client_secret: section.client_secret,\n verify_ssl: boolDefault(section.verify_ssl, true),\n }\n\n if (!config.base_url) {\n throw Error('Fatal error: base_url is not configured. Exiting.')\n }\n return { [sectionName]: config }\n}\n"],"mappings":"AA0BA,OAAO,KAAKA,EAAE,MAAM,IAAI;AACxB,OAAOC,MAAM,MAAM,QAAQ;AAC3B,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,aAAa,QAAQ,kBAAkB;AAehD,OAAO,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAA,EAIE;EAAA,IAHtBC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,cAAc;EAAA,IACzBG,SAAS,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,WAAW;EAAA,IACvBI,WAAW,GAAAJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,QAAQ;EAEtBL,MAAM,CAACU,MAAM,CAAC,CAAC;EACf,IAAIC,OAAO,CAACC,GAAG,CAACC,YAAY,EAAE;IAE5B,IAAMC,IAAI,GAAGH,OAAO,CAACC,GAAG,CAACC,YAAY;IACrC,IAAME,IAAI,GAAGf,MAAM,CAACgB,KAAK,CAACjB,EAAE,CAACkB,YAAY,CAACH,IAAI,EAAE,OAAO,CAAC,CAAC;IACzDI,MAAM,CAACC,OAAO,CAACJ,IAAI,CAAC,CAACK,OAAO,CAACC,IAAA,IAAgB;MAAA,IAAf,CAACC,GAAG,EAAEC,GAAG,CAAC,GAAAF,IAAA;MACtC,IAAIE,GAAG,EAAEZ,OAAO,CAACC,GAAG,CAACU,GAAG,CAAC,GAAGC,GAAG;IACjC,CAAC,CAAC;EACJ;EAEA,IAAMC,OAAO,GAAGtB,aAAa,CAACE,QAAQ,EAAEI,SAAS,EAAEC,WAAW,CAAC;EAC/D,IAAMC,MAAuB,GAAG;IAC9Be,WAAW,EAAED,OAAO,CAACC,WAAW;IAChCC,YAAY,EAAEF,OAAO,CAACE,YAAY;IAClCC,QAAQ,EAAEH,OAAO,CAACG,QAAQ;IAC1BC,SAAS,EAAEJ,OAAO,CAACI,SAAS;IAC5BC,aAAa,EAAEL,OAAO,CAACK,aAAa;IACpCC,UAAU,EAAE7B,WAAW,CAACuB,OAAO,CAACM,UAAU,EAAE,IAAI;EAClD,CAAC;EAED,IAAI,CAACpB,MAAM,CAACiB,QAAQ,EAAE;IACpB,MAAMI,KAAK,CAAC,mDAAmD,CAAC;EAClE;EACA,OAAO;IAAE,CAACtB,WAAW,GAAGC;EAAO,CAAC;AAClC,CAAC"}
|
package/lib/esm/sdkGen.js
CHANGED
|
@@ -1,39 +1,29 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.writeCodeFile = void 0;
|
|
7
|
-
var fs = _interopRequireWildcard(require("fs"));
|
|
8
|
-
var _path = _interopRequireDefault(require("path"));
|
|
9
|
-
var _sdkCodegenUtils = require("@looker/sdk-codegen-utils");
|
|
10
|
-
var _sdkGenerator = require("./sdkGenerator");
|
|
11
|
-
var _reformatter = require("./reformatter");
|
|
12
|
-
var _nodeUtils = require("./nodeUtils");
|
|
13
|
-
var _languages = require("./languages");
|
|
14
|
-
var _utils = require("./utils");
|
|
15
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
1
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
19
2
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { danger, log, warn } from '@looker/sdk-codegen-utils';
|
|
6
|
+
import { FunctionGenerator, InterfaceGenerator, MethodGenerator, StreamGenerator, TypeGenerator } from './sdkGenerator';
|
|
7
|
+
import { FilesFormatter } from './reformatter';
|
|
8
|
+
import { isDirSync, quit } from './nodeUtils';
|
|
9
|
+
import { getGenerator } from './languages';
|
|
10
|
+
import { loadSpecs, prepGen } from './utils';
|
|
11
|
+
var formatter = new FilesFormatter();
|
|
12
|
+
export var writeCodeFile = (fileName, content) => {
|
|
13
|
+
var filePath = path.dirname(fileName);
|
|
14
|
+
if (!isDirSync(filePath)) fs.mkdirSync(filePath, {
|
|
24
15
|
recursive: true
|
|
25
16
|
});
|
|
26
17
|
fs.writeFileSync(fileName, content);
|
|
27
18
|
formatter.addFile(fileName);
|
|
28
19
|
return fileName;
|
|
29
20
|
};
|
|
30
|
-
exports.writeCodeFile = writeCodeFile;
|
|
31
21
|
_asyncToGenerator(function* () {
|
|
32
22
|
var config;
|
|
33
23
|
try {
|
|
34
|
-
config = yield
|
|
24
|
+
config = yield prepGen(process.argv.slice(2));
|
|
35
25
|
} catch (e) {
|
|
36
|
-
|
|
26
|
+
quit(e);
|
|
37
27
|
}
|
|
38
28
|
if (!config) return;
|
|
39
29
|
var {
|
|
@@ -43,9 +33,9 @@ _asyncToGenerator(function* () {
|
|
|
43
33
|
lastApi,
|
|
44
34
|
noStreams
|
|
45
35
|
} = config;
|
|
46
|
-
var specs = yield
|
|
36
|
+
var specs = yield loadSpecs(config);
|
|
47
37
|
var apis = config.apis;
|
|
48
|
-
|
|
38
|
+
log("generating ".concat(languages.join(','), " SDKs for APIs ").concat(apis));
|
|
49
39
|
try {
|
|
50
40
|
for (var language of languages) {
|
|
51
41
|
for (var api of apis) {
|
|
@@ -56,47 +46,47 @@ _asyncToGenerator(function* () {
|
|
|
56
46
|
};
|
|
57
47
|
var apiModel = spec.api;
|
|
58
48
|
if (!apiModel) {
|
|
59
|
-
|
|
49
|
+
danger("Could not fetch or compile apiModel for ".concat(api, " ").concat(spec.specURL));
|
|
60
50
|
continue;
|
|
61
51
|
}
|
|
62
|
-
var gen =
|
|
52
|
+
var gen = getGenerator(language, apiModel, versions);
|
|
63
53
|
if (!gen) {
|
|
64
|
-
|
|
54
|
+
danger("".concat(language, " does not have a code generator defined"));
|
|
65
55
|
continue;
|
|
66
56
|
}
|
|
67
57
|
if (api !== lastApi && !gen.supportsMultiApi()) {
|
|
68
|
-
|
|
58
|
+
danger("skipping API ".concat(api, " for ").concat(language, " because it doesn't support multiple API versions"));
|
|
69
59
|
continue;
|
|
70
60
|
}
|
|
71
|
-
|
|
72
|
-
|
|
61
|
+
log("generating ".concat(language, " from ").concat(props.base_url, " ").concat(api, " ..."));
|
|
62
|
+
log("generating ".concat(api, " methods ..."));
|
|
73
63
|
if (gen.useFunctions) {
|
|
74
|
-
|
|
75
|
-
var s = new
|
|
64
|
+
log("generating ".concat(api, " functions ..."));
|
|
65
|
+
var s = new FunctionGenerator(apiModel, gen);
|
|
76
66
|
var _output = s.render(gen.indentStr, noStreams);
|
|
77
67
|
writeCodeFile(gen.sdkFileName("funcs"), _output);
|
|
78
68
|
}
|
|
79
69
|
if (gen.useInterfaces) {
|
|
80
|
-
|
|
81
|
-
var _s = new
|
|
70
|
+
log("generating ".concat(api, " interfaces ..."));
|
|
71
|
+
var _s = new InterfaceGenerator(apiModel, gen);
|
|
82
72
|
var _output2 = _s.render(gen.indentStr, noStreams);
|
|
83
73
|
writeCodeFile(gen.sdkFileName("methodsInterface"), _output2);
|
|
84
74
|
}
|
|
85
|
-
var sdk = new
|
|
75
|
+
var sdk = new MethodGenerator(apiModel, gen);
|
|
86
76
|
var output = sdk.render(gen.indentStr, noStreams);
|
|
87
77
|
writeCodeFile(gen.sdkFileName("methods"), output);
|
|
88
78
|
if (gen.willItStream) {
|
|
89
79
|
if (noStreams) {
|
|
90
|
-
|
|
80
|
+
warn("SKIPPING ".concat(api, " streaming methods ..."));
|
|
91
81
|
} else {
|
|
92
|
-
|
|
93
|
-
var _s2 = new
|
|
82
|
+
log("generating ".concat(api, " streaming methods ..."));
|
|
83
|
+
var _s2 = new StreamGenerator(apiModel, gen);
|
|
94
84
|
var _output3 = _s2.render(gen.indentStr, noStreams);
|
|
95
85
|
writeCodeFile(gen.sdkFileName("streams"), _output3);
|
|
96
86
|
}
|
|
97
87
|
}
|
|
98
|
-
|
|
99
|
-
var types = new
|
|
88
|
+
log("generating ".concat(api, " models ..."));
|
|
89
|
+
var types = new TypeGenerator(apiModel, gen);
|
|
100
90
|
output = types.render('', noStreams);
|
|
101
91
|
writeCodeFile(gen.sdkFileName("models"), output);
|
|
102
92
|
if (api === lastApi) {
|
|
@@ -106,7 +96,7 @@ _asyncToGenerator(function* () {
|
|
|
106
96
|
}
|
|
107
97
|
formatter.reformat();
|
|
108
98
|
} catch (e) {
|
|
109
|
-
|
|
99
|
+
quit(e);
|
|
110
100
|
}
|
|
111
101
|
})();
|
|
112
102
|
//# sourceMappingURL=sdkGen.js.map
|
package/lib/esm/sdkGen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdkGen.js","names":["fs","_interopRequireWildcard","require","_path","_interopRequireDefault","_sdkCodegenUtils","_sdkGenerator","_reformatter","_nodeUtils","_languages","_utils","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","formatter","FilesFormatter","writeCodeFile","fileName","content","filePath","path","dirname","isDirSync","mkdirSync","recursive","writeFileSync","addFile","exports","config","prepGen","process","argv","slice","e","quit","props","languages","lookerVersion","lastApi","noStreams","specs","loadSpecs","apis","log","concat","join","language","api","spec","versions","apiModel","danger","specURL","getGenerator","supportsMultiApi","base_url","useFunctions","s","FunctionGenerator","output","render","indentStr","sdkFileName","useInterfaces","InterfaceGenerator","sdk","MethodGenerator","willItStream","warn","StreamGenerator","types","TypeGenerator","versionStamp","reformat"],"sources":["../../src/sdkGen.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport * as fs from 'fs'\nimport path from 'path'\nimport { danger, log, warn } from '@looker/sdk-codegen-utils'\nimport type { IVersionInfo } from '@looker/sdk-codegen'\nimport {\n FunctionGenerator,\n InterfaceGenerator,\n MethodGenerator,\n StreamGenerator,\n TypeGenerator,\n} from './sdkGenerator'\nimport { FilesFormatter } from './reformatter'\nimport { isDirSync, quit } from './nodeUtils'\nimport { getGenerator } from './languages'\nimport { loadSpecs, prepGen } from './utils'\n\nconst formatter = new FilesFormatter()\n\n/**\n * Writes the source code file and registers it with the file reformatter for processing\n * @param fileName name of source file\n * @param content contents to (over) write into source file\n * @returns the name of the file written\n */\nexport const writeCodeFile = (fileName: string, content: string): string => {\n const filePath = path.dirname(fileName)\n if (!isDirSync(filePath)) fs.mkdirSync(filePath, { recursive: true })\n\n fs.writeFileSync(fileName, content)\n formatter.addFile(fileName)\n return fileName\n}\n;(async () => {\n let config\n try {\n config = await prepGen(process.argv.slice(2))\n } catch (e: any) {\n quit(e)\n }\n if (!config) return\n const { props, languages, lookerVersion, lastApi, noStreams } = config\n\n // load the specifications and create the unique keys in case of spec API version overlap\n const specs = await loadSpecs(config)\n const apis = config.apis\n log(`generating ${languages.join(',')} SDKs for APIs ${apis}`)\n\n try {\n for (const language of languages) {\n for (const api of apis) {\n const spec = specs[api]\n const versions: IVersionInfo = {\n spec,\n lookerVersion,\n }\n const apiModel = spec.api\n if (!apiModel) {\n danger(\n `Could not fetch or compile apiModel for ${api} ${spec.specURL}`\n )\n continue\n }\n const gen = getGenerator(language, apiModel, versions)\n if (!gen) {\n danger(`${language} does not have a code generator defined`)\n continue\n }\n if (api !== lastApi && !gen.supportsMultiApi()) {\n danger(\n `skipping API ${api} for ${language} because it doesn't support multiple API versions`\n )\n continue\n }\n log(`generating ${language} from ${props.base_url} ${api} ...`)\n log(`generating ${api} methods ...`)\n\n if (gen.useFunctions) {\n log(`generating ${api} functions ...`)\n const s = new FunctionGenerator(apiModel, gen)\n const output = s.render(gen.indentStr, noStreams)\n writeCodeFile(gen.sdkFileName(`funcs`), output)\n }\n\n if (gen.useInterfaces) {\n log(`generating ${api} interfaces ...`)\n const s = new InterfaceGenerator(apiModel, gen)\n const output = s.render(gen.indentStr, noStreams)\n writeCodeFile(gen.sdkFileName(`methodsInterface`), output)\n }\n\n // Generate standard method declarations\n const sdk = new MethodGenerator(apiModel, gen)\n let output = sdk.render(gen.indentStr, noStreams)\n writeCodeFile(gen.sdkFileName(`methods`), output)\n\n if (gen.willItStream) {\n if (noStreams) {\n warn(`SKIPPING ${api} streaming methods ...`)\n } else {\n // Generate streaming method declarations\n log(`generating ${api} streaming methods ...`)\n const s = new StreamGenerator(apiModel, gen)\n const output = s.render(gen.indentStr, noStreams)\n writeCodeFile(gen.sdkFileName(`streams`), output)\n }\n }\n\n log(`generating ${api} models ...`)\n const types = new TypeGenerator(apiModel, gen)\n output = types.render('', noStreams)\n writeCodeFile(gen.sdkFileName(`models`), output)\n if (api === lastApi) {\n formatter.versionStamp(gen)\n }\n }\n }\n // finally, reformat all the files that have been generated\n formatter.reformat()\n } catch (e: any) {\n quit(e)\n }\n})()\n"],"mappings":";;;;;;AA0BA,IAAAA,EAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAEA,IAAAI,aAAA,GAAAJ,OAAA;AAOA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AAA4C,SAAAE,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAd,wBAAAU,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,mBAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAX,GAAA,EAAAY,GAAA,cAAAC,IAAA,GAAAN,GAAA,CAAAP,GAAA,EAAAY,GAAA,OAAAE,KAAA,GAAAD,IAAA,CAAAC,KAAA,WAAAC,KAAA,IAAAN,MAAA,CAAAM,KAAA,iBAAAF,IAAA,CAAAG,IAAA,IAAAR,OAAA,CAAAM,KAAA,YAAAG,OAAA,CAAAT,OAAA,CAAAM,KAAA,EAAAI,IAAA,CAAAR,KAAA,EAAAC,MAAA;AAAA,SAAAQ,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAAN,OAAA,WAAAT,OAAA,EAAAC,MAAA,QAAAF,GAAA,GAAAa,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAZ,MAAAI,KAAA,IAAAR,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAG,KAAA,cAAAH,OAAAc,GAAA,IAAAnB,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAc,GAAA,KAAAf,KAAA,CAAAgB,SAAA;AAE5C,IAAMC,SAAS,GAAG,IAAIC,2BAAc,EAAE;AAQ/B,IAAMC,aAAa,GAAGA,CAACC,QAAgB,EAAEC,OAAe,KAAa;EAC1E,IAAMC,QAAQ,GAAGC,aAAI,CAACC,OAAO,CAACJ,QAAQ,CAAC;EACvC,IAAI,CAAC,IAAAK,oBAAS,EAACH,QAAQ,CAAC,EAAE3D,EAAE,CAAC+D,SAAS,CAACJ,QAAQ,EAAE;IAAEK,SAAS,EAAE;EAAK,CAAC,CAAC;EAErEhE,EAAE,CAACiE,aAAa,CAACR,QAAQ,EAAEC,OAAO,CAAC;EACnCJ,SAAS,CAACY,OAAO,CAACT,QAAQ,CAAC;EAC3B,OAAOA,QAAQ;AACjB,CAAC;AACAU,OAAA,CAAAX,aAAA,GAAAA,aAAA;AAAAV,iBAAA,CAAC,aAAY;EACZ,IAAIsB,MAAM;EACV,IAAI;IACFA,MAAM,SAAS,IAAAC,cAAO,EAACC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC;EAC/C,CAAC,CAAC,OAAOC,CAAM,EAAE;IACf,IAAAC,eAAI,EAACD,CAAC,CAAC;EACT;EACA,IAAI,CAACL,MAAM,EAAE;EACb,IAAM;IAAEO,KAAK;IAAEC,SAAS;IAAEC,aAAa;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAGX,MAAM;EAGtE,IAAMY,KAAK,SAAS,IAAAC,gBAAS,EAACb,MAAM,CAAC;EACrC,IAAMc,IAAI,GAAGd,MAAM,CAACc,IAAI;EACxB,IAAAC,oBAAG,gBAAAC,MAAA,CAAeR,SAAS,CAACS,IAAI,CAAC,GAAG,CAAC,qBAAAD,MAAA,CAAkBF,IAAI,EAAG;EAE9D,IAAI;IACF,KAAK,IAAMI,QAAQ,IAAIV,SAAS,EAAE;MAChC,KAAK,IAAMW,GAAG,IAAIL,IAAI,EAAE;QACtB,IAAMM,IAAI,GAAGR,KAAK,CAACO,GAAG,CAAC;QACvB,IAAME,QAAsB,GAAG;UAC7BD,IAAI;UACJX;QACF,CAAC;QACD,IAAMa,QAAQ,GAAGF,IAAI,CAACD,GAAG;QACzB,IAAI,CAACG,QAAQ,EAAE;UACb,IAAAC,uBAAM,6CAAAP,MAAA,CACuCG,GAAG,OAAAH,MAAA,CAAII,IAAI,CAACI,OAAO,EAC/D;UACD;QACF;QACA,IAAM1D,GAAG,GAAG,IAAA2D,uBAAY,EAACP,QAAQ,EAAEI,QAAQ,EAAED,QAAQ,CAAC;QACtD,IAAI,CAACvD,GAAG,EAAE;UACR,IAAAyD,uBAAM,KAAAP,MAAA,CAAIE,QAAQ,6CAA0C;UAC5D;QACF;QACA,IAAIC,GAAG,KAAKT,OAAO,IAAI,CAAC5C,GAAG,CAAC4D,gBAAgB,EAAE,EAAE;UAC9C,IAAAH,uBAAM,kBAAAP,MAAA,CACYG,GAAG,WAAAH,MAAA,CAAQE,QAAQ,uDACpC;UACD;QACF;QACA,IAAAH,oBAAG,gBAAAC,MAAA,CAAeE,QAAQ,YAAAF,MAAA,CAAST,KAAK,CAACoB,QAAQ,OAAAX,MAAA,CAAIG,GAAG,UAAO;QAC/D,IAAAJ,oBAAG,gBAAAC,MAAA,CAAeG,GAAG,kBAAe;QAEpC,IAAIrD,GAAG,CAAC8D,YAAY,EAAE;UACpB,IAAAb,oBAAG,gBAAAC,MAAA,CAAeG,GAAG,oBAAiB;UACtC,IAAMU,CAAC,GAAG,IAAIC,+BAAiB,CAACR,QAAQ,EAAExD,GAAG,CAAC;UAC9C,IAAMiE,OAAM,GAAGF,CAAC,CAACG,MAAM,CAAClE,GAAG,CAACmE,SAAS,EAAEtB,SAAS,CAAC;UACjDvB,aAAa,CAACtB,GAAG,CAACoE,WAAW,SAAS,EAAEH,OAAM,CAAC;QACjD;QAEA,IAAIjE,GAAG,CAACqE,aAAa,EAAE;UACrB,IAAApB,oBAAG,gBAAAC,MAAA,CAAeG,GAAG,qBAAkB;UACvC,IAAMU,EAAC,GAAG,IAAIO,gCAAkB,CAACd,QAAQ,EAAExD,GAAG,CAAC;UAC/C,IAAMiE,QAAM,GAAGF,EAAC,CAACG,MAAM,CAAClE,GAAG,CAACmE,SAAS,EAAEtB,SAAS,CAAC;UACjDvB,aAAa,CAACtB,GAAG,CAACoE,WAAW,oBAAoB,EAAEH,QAAM,CAAC;QAC5D;QAGA,IAAMM,GAAG,GAAG,IAAIC,6BAAe,CAAChB,QAAQ,EAAExD,GAAG,CAAC;QAC9C,IAAIiE,MAAM,GAAGM,GAAG,CAACL,MAAM,CAAClE,GAAG,CAACmE,SAAS,EAAEtB,SAAS,CAAC;QACjDvB,aAAa,CAACtB,GAAG,CAACoE,WAAW,WAAW,EAAEH,MAAM,CAAC;QAEjD,IAAIjE,GAAG,CAACyE,YAAY,EAAE;UACpB,IAAI5B,SAAS,EAAE;YACb,IAAA6B,qBAAI,cAAAxB,MAAA,CAAaG,GAAG,4BAAyB;UAC/C,CAAC,MAAM;YAEL,IAAAJ,oBAAG,gBAAAC,MAAA,CAAeG,GAAG,4BAAyB;YAC9C,IAAMU,GAAC,GAAG,IAAIY,6BAAe,CAACnB,QAAQ,EAAExD,GAAG,CAAC;YAC5C,IAAMiE,QAAM,GAAGF,GAAC,CAACG,MAAM,CAAClE,GAAG,CAACmE,SAAS,EAAEtB,SAAS,CAAC;YACjDvB,aAAa,CAACtB,GAAG,CAACoE,WAAW,WAAW,EAAEH,QAAM,CAAC;UACnD;QACF;QAEA,IAAAhB,oBAAG,gBAAAC,MAAA,CAAeG,GAAG,iBAAc;QACnC,IAAMuB,KAAK,GAAG,IAAIC,2BAAa,CAACrB,QAAQ,EAAExD,GAAG,CAAC;QAC9CiE,MAAM,GAAGW,KAAK,CAACV,MAAM,CAAC,EAAE,EAAErB,SAAS,CAAC;QACpCvB,aAAa,CAACtB,GAAG,CAACoE,WAAW,UAAU,EAAEH,MAAM,CAAC;QAChD,IAAIZ,GAAG,KAAKT,OAAO,EAAE;UACnBxB,SAAS,CAAC0D,YAAY,CAAC9E,GAAG,CAAC;QAC7B;MACF;IACF;IAEAoB,SAAS,CAAC2D,QAAQ,EAAE;EACtB,CAAC,CAAC,OAAOxC,CAAM,EAAE;IACf,IAAAC,eAAI,EAACD,CAAC,CAAC;EACT;AACF,CAAC,GAAG"}
|
|
1
|
+
{"version":3,"file":"sdkGen.js","names":["fs","path","danger","log","warn","FunctionGenerator","InterfaceGenerator","MethodGenerator","StreamGenerator","TypeGenerator","FilesFormatter","isDirSync","quit","getGenerator","loadSpecs","prepGen","formatter","writeCodeFile","fileName","content","filePath","dirname","mkdirSync","recursive","writeFileSync","addFile","_asyncToGenerator","config","process","argv","slice","e","props","languages","lookerVersion","lastApi","noStreams","specs","apis","concat","join","language","api","spec","versions","apiModel","specURL","gen","supportsMultiApi","base_url","useFunctions","s","output","render","indentStr","sdkFileName","useInterfaces","sdk","willItStream","types","versionStamp","reformat"],"sources":["../../src/sdkGen.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport * as fs from 'fs'\nimport path from 'path'\nimport { danger, log, warn } from '@looker/sdk-codegen-utils'\nimport type { IVersionInfo } from '@looker/sdk-codegen'\nimport {\n FunctionGenerator,\n InterfaceGenerator,\n MethodGenerator,\n StreamGenerator,\n TypeGenerator,\n} from './sdkGenerator'\nimport { FilesFormatter } from './reformatter'\nimport { isDirSync, quit } from './nodeUtils'\nimport { getGenerator } from './languages'\nimport { loadSpecs, prepGen } from './utils'\n\nconst formatter = new FilesFormatter()\n\n/**\n * Writes the source code file and registers it with the file reformatter for processing\n * @param fileName name of source file\n * @param content contents to (over) write into source file\n * @returns the name of the file written\n */\nexport const writeCodeFile = (fileName: string, content: string): string => {\n const filePath = path.dirname(fileName)\n if (!isDirSync(filePath)) fs.mkdirSync(filePath, { recursive: true })\n\n fs.writeFileSync(fileName, content)\n formatter.addFile(fileName)\n return fileName\n}\n;(async () => {\n let config\n try {\n config = await prepGen(process.argv.slice(2))\n } catch (e: any) {\n quit(e)\n }\n if (!config) return\n const { props, languages, lookerVersion, lastApi, noStreams } = config\n\n // load the specifications and create the unique keys in case of spec API version overlap\n const specs = await loadSpecs(config)\n const apis = config.apis\n log(`generating ${languages.join(',')} SDKs for APIs ${apis}`)\n\n try {\n for (const language of languages) {\n for (const api of apis) {\n const spec = specs[api]\n const versions: IVersionInfo = {\n spec,\n lookerVersion,\n }\n const apiModel = spec.api\n if (!apiModel) {\n danger(\n `Could not fetch or compile apiModel for ${api} ${spec.specURL}`\n )\n continue\n }\n const gen = getGenerator(language, apiModel, versions)\n if (!gen) {\n danger(`${language} does not have a code generator defined`)\n continue\n }\n if (api !== lastApi && !gen.supportsMultiApi()) {\n danger(\n `skipping API ${api} for ${language} because it doesn't support multiple API versions`\n )\n continue\n }\n log(`generating ${language} from ${props.base_url} ${api} ...`)\n log(`generating ${api} methods ...`)\n\n if (gen.useFunctions) {\n log(`generating ${api} functions ...`)\n const s = new FunctionGenerator(apiModel, gen)\n const output = s.render(gen.indentStr, noStreams)\n writeCodeFile(gen.sdkFileName(`funcs`), output)\n }\n\n if (gen.useInterfaces) {\n log(`generating ${api} interfaces ...`)\n const s = new InterfaceGenerator(apiModel, gen)\n const output = s.render(gen.indentStr, noStreams)\n writeCodeFile(gen.sdkFileName(`methodsInterface`), output)\n }\n\n // Generate standard method declarations\n const sdk = new MethodGenerator(apiModel, gen)\n let output = sdk.render(gen.indentStr, noStreams)\n writeCodeFile(gen.sdkFileName(`methods`), output)\n\n if (gen.willItStream) {\n if (noStreams) {\n warn(`SKIPPING ${api} streaming methods ...`)\n } else {\n // Generate streaming method declarations\n log(`generating ${api} streaming methods ...`)\n const s = new StreamGenerator(apiModel, gen)\n const output = s.render(gen.indentStr, noStreams)\n writeCodeFile(gen.sdkFileName(`streams`), output)\n }\n }\n\n log(`generating ${api} models ...`)\n const types = new TypeGenerator(apiModel, gen)\n output = types.render('', noStreams)\n writeCodeFile(gen.sdkFileName(`models`), output)\n if (api === lastApi) {\n formatter.versionStamp(gen)\n }\n }\n }\n // finally, reformat all the files that have been generated\n formatter.reformat()\n } catch (e: any) {\n quit(e)\n }\n})()\n"],"mappings":"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"}
|