@looker/sdk-codegen-scripts 21.4.8 → 21.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/lib/convert.js +0 -10
  3. package/lib/convert.js.map +1 -1
  4. package/lib/declarationMiner.js +11 -37
  5. package/lib/declarationMiner.js.map +1 -1
  6. package/lib/esm/convert.js +20 -18
  7. package/lib/esm/convert.js.map +1 -1
  8. package/lib/esm/declarationMiner.js +32 -41
  9. package/lib/esm/declarationMiner.js.map +1 -1
  10. package/lib/esm/exampleMiner.js +52 -77
  11. package/lib/esm/exampleMiner.js.map +1 -1
  12. package/lib/esm/fetchSpec.js +65 -83
  13. package/lib/esm/fetchSpec.js.map +1 -1
  14. package/lib/esm/index.js +93 -8
  15. package/lib/esm/index.js.map +1 -1
  16. package/lib/esm/languages.js +16 -11
  17. package/lib/esm/languages.js.map +1 -1
  18. package/lib/esm/legacy.js +8 -9
  19. package/lib/esm/legacy.js.map +1 -1
  20. package/lib/esm/legacyGenerator.js +19 -22
  21. package/lib/esm/legacyGenerator.js.map +1 -1
  22. package/lib/esm/nodeUtils.js +39 -22
  23. package/lib/esm/nodeUtils.js.map +1 -1
  24. package/lib/esm/prettify.js +15 -9
  25. package/lib/esm/prettify.js.map +1 -1
  26. package/lib/esm/reformatter.js +53 -102
  27. package/lib/esm/reformatter.js.map +1 -1
  28. package/lib/esm/sdkConfig.js +19 -13
  29. package/lib/esm/sdkConfig.js.map +1 -1
  30. package/lib/esm/sdkGen.js +43 -59
  31. package/lib/esm/sdkGen.js.map +1 -1
  32. package/lib/esm/sdkGenerator.js +34 -47
  33. package/lib/esm/sdkGenerator.js.map +1 -1
  34. package/lib/esm/specConvert.js +20 -27
  35. package/lib/esm/specConvert.js.map +1 -1
  36. package/lib/esm/testUtils/index.js +28 -0
  37. package/lib/esm/testUtils/index.js.map +1 -0
  38. package/lib/esm/testUtils/mocks.js +16 -0
  39. package/lib/esm/testUtils/mocks.js.map +1 -0
  40. package/lib/esm/testUtils/testUtils.js +66 -0
  41. package/lib/esm/testUtils/testUtils.js.map +1 -0
  42. package/lib/esm/utils.js +43 -60
  43. package/lib/esm/utils.js.map +1 -1
  44. package/lib/esm/yamlToJson.js +8 -6
  45. package/lib/esm/yamlToJson.js.map +1 -1
  46. package/lib/exampleMiner.js +4 -89
  47. package/lib/exampleMiner.js.map +1 -1
  48. package/lib/fetchSpec.js +6 -76
  49. package/lib/fetchSpec.js.map +1 -1
  50. package/lib/index.js +0 -16
  51. package/lib/index.js.map +1 -1
  52. package/lib/languages.js +0 -11
  53. package/lib/languages.js.map +1 -1
  54. package/lib/legacy.js +0 -5
  55. package/lib/legacy.js.map +1 -1
  56. package/lib/legacyGenerator.js +0 -15
  57. package/lib/legacyGenerator.js.map +1 -1
  58. package/lib/nodeUtils.js +1 -34
  59. package/lib/nodeUtils.js.map +1 -1
  60. package/lib/prettify.js +5 -14
  61. package/lib/prettify.js.map +1 -1
  62. package/lib/reformatter.js +3 -70
  63. package/lib/reformatter.js.map +1 -1
  64. package/lib/sdkConfig.js +0 -16
  65. package/lib/sdkConfig.js.map +1 -1
  66. package/lib/sdkGen.js +0 -41
  67. package/lib/sdkGen.js.map +1 -1
  68. package/lib/sdkGenerator.js +4 -52
  69. package/lib/sdkGenerator.js.map +1 -1
  70. package/lib/specConvert.js +0 -19
  71. package/lib/specConvert.js.map +1 -1
  72. package/lib/testUtils/index.js +0 -4
  73. package/lib/testUtils/index.js.map +1 -1
  74. package/lib/testUtils/mocks.js +0 -4
  75. package/lib/testUtils/mocks.js.map +1 -1
  76. package/lib/testUtils/testUtils.js +1 -17
  77. package/lib/testUtils/testUtils.js.map +1 -1
  78. package/lib/utils.js +6 -48
  79. package/lib/utils.js.map +1 -1
  80. package/lib/yamlToJson.js +0 -7
  81. package/lib/yamlToJson.js.map +1 -1
  82. package/package.json +6 -6
@@ -1,142 +1,120 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- import * as path from 'path';
4
- import * as fs from 'fs';
5
- import { danger, success, warn } from '@looker/sdk-codegen-utils';
6
- import { isFileSync, readFileSync, run, utf8Encoding } from './nodeUtils';
7
- import { prettify } from './prettify';
8
-
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
+ 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
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
16
+ 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); }
9
17
  var writeFile = (fileName, content) => {
10
- fs.writeFileSync(fileName, content, utf8Encoding);
18
+ fs.writeFileSync(fileName, content, _nodeUtils.utf8Encoding);
11
19
  };
12
-
13
20
  var noFormatter = (language, files) => {
14
21
  var list = files.join('\n ');
15
- return warn("There is no ".concat(language, " formatter. Skipped reformatting of:\n ").concat(list));
22
+ return (0, _sdkCodegenUtils.warn)("There is no ".concat(language, " formatter. Skipped reformatting of:\n ").concat(list));
16
23
  };
17
-
18
24
  var fullPath = weirdPath => path.resolve(weirdPath);
19
-
20
25
  class BaseFormatter {
21
26
  constructor(language) {
22
27
  var fileSep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : " \n";
23
28
  this.language = language;
24
29
  this.fileSep = fileSep;
25
30
  }
26
-
27
31
  reformat(files) {
28
32
  return noFormatter(this.language, files);
29
33
  }
30
-
31
34
  skipping() {
32
- return warn("Version information was not retrieved. Skipping ".concat(this.language, " SDK version updating."));
35
+ return (0, _sdkCodegenUtils.warn)("Version information was not retrieved. Skipping ".concat(this.language, " SDK version updating."));
33
36
  }
34
-
35
37
  reformatted(files) {
36
- return success("Reformatted ".concat(this.language, " files:\n ").concat(files.join(this.fileSep)));
38
+ return (0, _sdkCodegenUtils.success)("Reformatted ".concat(this.language, " files:\n ").concat(files.join(this.fileSep)));
37
39
  }
38
-
39
40
  }
40
-
41
41
  class PythonFormatter extends BaseFormatter {
42
42
  constructor() {
43
43
  super('Python');
44
-
45
44
  _defineProperty(this, "instructions", 'To reformat Python files, please install pipenv: https://docs.pipenv.org/en/latest/install/#installing-pipenv');
46
45
  }
47
-
48
46
  reformat(files) {
49
- var pipEnvExists = run('command', ['-v', 'pipenv'], this.instructions, true);
50
-
47
+ var pipEnvExists = (0, _nodeUtils.run)('command', ['-v', 'pipenv'], this.instructions, true);
51
48
  if (pipEnvExists.includes('pipenv')) {
52
49
  var list = files.join(' ');
53
- run('pipenv', ['run', 'black', list], 'Python reformat', true);
54
- return success(files);
50
+ (0, _nodeUtils.run)('pipenv', ['run', 'black', list], 'Python reformat', true);
51
+ return (0, _sdkCodegenUtils.success)(files);
55
52
  } else {
56
- return danger(this.instructions);
53
+ return (0, _sdkCodegenUtils.danger)(this.instructions);
57
54
  }
58
55
  }
59
-
60
56
  versionStamp(gen) {
61
57
  if (gen.versions && gen.versions.lookerVersion) {
62
58
  var stampFile = fullPath(gen.fileName('sdk/constants'));
63
-
64
- if (!isFileSync(stampFile)) {
65
- warn("".concat(stampFile, " was not found. Skipping version update."));
59
+ if (!(0, _nodeUtils.isFileSync)(stampFile)) {
60
+ (0, _sdkCodegenUtils.warn)("".concat(stampFile, " was not found. Skipping version update."));
66
61
  }
67
-
68
- var content = readFileSync(stampFile);
62
+ var content = (0, _nodeUtils.readFileSync)(stampFile);
69
63
  var sdkVersionPattern = /sdk_version = ['"].*['"]/i;
70
64
  var envPattern = /environment_prefix = ['"].*['"]/i;
71
65
  content = content.replace(sdkVersionPattern, "sdk_version = \"".concat(gen.versions.lookerVersion, "\""));
72
66
  content = content.replace(envPattern, "environment_prefix = \"".concat(gen.environmentPrefix, "\""));
73
67
  writeFile(stampFile, content);
74
- return success("updated ".concat(stampFile, " to ").concat(gen.versions.lookerVersion));
68
+ return (0, _sdkCodegenUtils.success)("updated ".concat(stampFile, " to ").concat(gen.versions.lookerVersion));
75
69
  }
76
-
77
70
  return this.skipping();
78
71
  }
79
-
80
72
  }
81
-
82
73
  class TypescriptFormatter extends BaseFormatter {
83
74
  constructor() {
84
75
  super('TypeScript');
85
76
  }
86
-
87
77
  reformat(files) {
88
78
  files.forEach(f => {
89
79
  this.reformatFile(f);
90
80
  });
91
- return success(files);
81
+ return (0, _sdkCodegenUtils.success)(files);
92
82
  }
93
-
94
83
  reformatFile(fileName) {
95
- var source = prettify(readFileSync(fileName));
96
-
84
+ var source = (0, _prettify.prettify)((0, _nodeUtils.readFileSync)(fileName));
97
85
  if (source) {
98
86
  writeFile(fileName, source);
99
87
  }
100
-
101
88
  return fileName;
102
89
  }
103
-
104
90
  versionStamp(gen) {
105
91
  if (gen.versions && gen.versions.lookerVersion) {
106
92
  var stampFile = fullPath(gen.fileName('../../sdk/src/constants'));
107
-
108
- if (!isFileSync(stampFile)) {
109
- warn("".concat(stampFile, " was not found. Skipping version update."));
93
+ if (!(0, _nodeUtils.isFileSync)(stampFile)) {
94
+ (0, _sdkCodegenUtils.warn)("".concat(stampFile, " was not found. Skipping version update."));
110
95
  }
111
-
112
- var content = readFileSync(stampFile);
96
+ var content = (0, _nodeUtils.readFileSync)(stampFile);
113
97
  var sdkVersionPattern = /sdkVersion = ['"].*['"]/i;
114
98
  var envPattern = /environmentPrefix = ['"].*['"]/i;
115
99
  content = content.replace(sdkVersionPattern, "sdkVersion = '".concat(gen.versions.lookerVersion, "'"));
116
100
  content = content.replace(envPattern, "environmentPrefix = '".concat(gen.environmentPrefix, "'"));
117
101
  writeFile(stampFile, content);
118
- return success("updated ".concat(stampFile, " to ").concat(gen.versions.lookerVersion));
102
+ return (0, _sdkCodegenUtils.success)("updated ".concat(stampFile, " to ").concat(gen.versions.lookerVersion));
119
103
  }
120
-
121
104
  return this.skipping();
122
105
  }
123
-
124
106
  }
125
-
126
107
  class KotlinFormatter extends BaseFormatter {
127
108
  constructor() {
128
109
  super('Kotlin');
129
110
  }
130
-
131
111
  versionStamp(gen) {
132
112
  if (gen.versions && gen.versions.lookerVersion) {
133
113
  var stampFile = fullPath(gen.fileName('sdk/Constants'));
134
-
135
- if (!isFileSync(stampFile)) {
136
- warn("".concat(stampFile, " was not found. Skipping version update."));
114
+ if (!(0, _nodeUtils.isFileSync)(stampFile)) {
115
+ (0, _sdkCodegenUtils.warn)("".concat(stampFile, " was not found. Skipping version update."));
137
116
  }
138
-
139
- var content = readFileSync(stampFile);
117
+ var content = (0, _nodeUtils.readFileSync)(stampFile);
140
118
  var lookerPattern = /\bLOOKER_VERSION = ['"].*['"]/i;
141
119
  var apiPattern = /\bAPI_VERSION = ['"].*['"]/i;
142
120
  var envPattern = /\bENVIRONMENT_PREFIX = ['"].*['"]/i;
@@ -144,28 +122,22 @@ class KotlinFormatter extends BaseFormatter {
144
122
  content = content.replace(apiPattern, "API_VERSION = \"".concat(gen.versions.spec.version, "\""));
145
123
  content = content.replace(envPattern, "ENVIRONMENT_PREFIX = \"".concat(gen.environmentPrefix, "\""));
146
124
  writeFile(stampFile, content);
147
- return success("updated ".concat(stampFile, " to ").concat(gen.versions.spec.version, ".").concat(gen.versions.lookerVersion));
125
+ return (0, _sdkCodegenUtils.success)("updated ".concat(stampFile, " to ").concat(gen.versions.spec.version, ".").concat(gen.versions.lookerVersion));
148
126
  }
149
-
150
127
  return this.skipping();
151
128
  }
152
-
153
129
  }
154
-
155
130
  class SwiftFormatter extends BaseFormatter {
156
131
  constructor() {
157
132
  super('Swift');
158
133
  }
159
-
160
134
  versionStamp(gen) {
161
135
  if (gen.versions && gen.versions.lookerVersion) {
162
136
  var stampFile = fullPath(gen.fileName('rtl/constants'));
163
-
164
- if (!isFileSync(stampFile)) {
165
- warn("".concat(stampFile, " was not found. Skipping version update."));
137
+ if (!(0, _nodeUtils.isFileSync)(stampFile)) {
138
+ (0, _sdkCodegenUtils.warn)("".concat(stampFile, " was not found. Skipping version update."));
166
139
  }
167
-
168
- var content = readFileSync(stampFile);
140
+ var content = (0, _nodeUtils.readFileSync)(stampFile);
169
141
  var lookerPattern = /lookerVersion = ['"].*['"]/i;
170
142
  var apiPattern = /apiVersion = ['"].*['"]/i;
171
143
  var envPattern = /environmentPrefix = ['"].*['"]/i;
@@ -173,28 +145,22 @@ class SwiftFormatter extends BaseFormatter {
173
145
  content = content.replace(apiPattern, "apiVersion = \"".concat(gen.versions.spec.version, "\""));
174
146
  content = content.replace(envPattern, "environmentPrefix = \"".concat(gen.environmentPrefix, "\""));
175
147
  writeFile(stampFile, content);
176
- return success("updated ".concat(stampFile, " to ").concat(gen.versions.spec.version, ".").concat(gen.versions.lookerVersion));
148
+ return (0, _sdkCodegenUtils.success)("updated ".concat(stampFile, " to ").concat(gen.versions.spec.version, ".").concat(gen.versions.lookerVersion));
177
149
  }
178
-
179
150
  return this.skipping();
180
151
  }
181
-
182
152
  }
183
-
184
153
  class CsharpFormatter extends BaseFormatter {
185
154
  constructor() {
186
155
  super('C#');
187
156
  }
188
-
189
157
  versionStamp(gen) {
190
158
  if (gen.versions && gen.versions.lookerVersion) {
191
159
  var stampFile = fullPath(gen.fileName('rtl/Constants'));
192
-
193
- if (!isFileSync(stampFile)) {
194
- warn("".concat(stampFile, " was not found. Skipping version update."));
160
+ if (!(0, _nodeUtils.isFileSync)(stampFile)) {
161
+ (0, _sdkCodegenUtils.warn)("".concat(stampFile, " was not found. Skipping version update."));
195
162
  }
196
-
197
- var content = readFileSync(stampFile);
163
+ var content = (0, _nodeUtils.readFileSync)(stampFile);
198
164
  var lookerPattern = /LookerVersion = ['"].*['"]/i;
199
165
  var apiPattern = /ApiVersion = ['"].*['"]/i;
200
166
  var envPattern = /EnvironmentPrefix = ['"].*['"]/i;
@@ -202,39 +168,30 @@ class CsharpFormatter extends BaseFormatter {
202
168
  content = content.replace(apiPattern, "ApiVersion = \"".concat(gen.versions.spec.version, "\""));
203
169
  content = content.replace(envPattern, "EnvironmentPrefix = \"".concat(gen.environmentPrefix, "\""));
204
170
  writeFile(stampFile, content);
205
- return success("updated ".concat(stampFile, " to ").concat(gen.versions.spec.version, ".").concat(gen.versions.lookerVersion));
171
+ return (0, _sdkCodegenUtils.success)("updated ".concat(stampFile, " to ").concat(gen.versions.spec.version, ".").concat(gen.versions.lookerVersion));
206
172
  }
207
-
208
173
  return this.skipping();
209
174
  }
210
-
211
175
  }
212
-
213
176
  class GoFormatter extends BaseFormatter {
214
177
  constructor() {
215
178
  super('Go');
216
-
217
179
  _defineProperty(this, "instructions", 'To reformat Go files, please install gofmt: https://go.dev/blog/gofmt');
218
180
  }
219
-
220
181
  reformat(files) {
221
- var gofmtExists = run('command', ['-v', 'gofmt'], this.instructions, true);
222
-
182
+ var gofmtExists = (0, _nodeUtils.run)('command', ['-v', 'gofmt'], this.instructions, true);
223
183
  if (gofmtExists.includes('gofmt')) {
224
184
  var list = files.join(' ');
225
- run('gofmt', ['-w', list], 'Go reformat', true);
226
- return success(files);
185
+ (0, _nodeUtils.run)('gofmt', ['-w', list], 'Go reformat', true);
186
+ return (0, _sdkCodegenUtils.success)(files);
227
187
  } else {
228
- return danger(this.instructions);
188
+ return (0, _sdkCodegenUtils.danger)(this.instructions);
229
189
  }
230
190
  }
231
-
232
191
  versionStamp() {
233
- return warn('Skipping SDK version updating - not implemented for Go.');
192
+ return (0, _sdkCodegenUtils.warn)('Skipping SDK version updating - not implemented for Go.');
234
193
  }
235
-
236
194
  }
237
-
238
195
  var fileFormatters = {
239
196
  '.cs': new CsharpFormatter(),
240
197
  '.kt': new KotlinFormatter(),
@@ -243,40 +200,34 @@ var fileFormatters = {
243
200
  '.ts': new TypescriptFormatter(),
244
201
  '.go': new GoFormatter()
245
202
  };
246
- export class FilesFormatter {
203
+ class FilesFormatter {
247
204
  constructor() {
248
205
  _defineProperty(this, "files", {});
249
206
  }
250
-
251
207
  addFile(fileName) {
252
208
  var key = path.extname(fileName);
253
-
254
209
  if (key in this.files) {
255
210
  this.files[key].push(fileName);
256
211
  } else {
257
212
  this.files[key] = [fileName];
258
213
  }
259
214
  }
260
-
261
215
  clear() {
262
216
  this.files = {};
263
217
  }
264
-
265
218
  reformat(files) {
266
219
  if (files) files.forEach(f => this.addFile(f));
267
220
  Object.entries(this.files).forEach(_ref => {
268
221
  var [key, list] = _ref;
269
-
270
222
  if (key in fileFormatters) {
271
223
  fileFormatters[key].reformat(list);
272
224
  }
273
225
  });
274
226
  }
275
-
276
227
  versionStamp(gen) {
277
228
  var formatter = fileFormatters[gen.fileExtension];
278
229
  return formatter.versionStamp(gen);
279
230
  }
280
-
281
231
  }
232
+ exports.FilesFormatter = FilesFormatter;
282
233
  //# sourceMappingURL=reformatter.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/reformatter.ts"],"names":["path","fs","danger","success","warn","isFileSync","readFileSync","run","utf8Encoding","prettify","writeFile","fileName","content","writeFileSync","noFormatter","language","files","list","join","fullPath","weirdPath","resolve","BaseFormatter","constructor","fileSep","reformat","skipping","reformatted","PythonFormatter","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","formatter","fileExtension"],"mappings":"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","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"],"file":"reformatter.js"}
1
+ {"version":3,"file":"reformatter.js","names":["writeFile","fileName","content","fs","writeFileSync","utf8Encoding","noFormatter","language","files","list","join","warn","fullPath","weirdPath","path","resolve","BaseFormatter","constructor","fileSep","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","key","extname","push","clear","Object","entries","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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"}
@@ -1,38 +1,44 @@
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() {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
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() {
6
15
  var fileName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : './looker.ini';
7
16
  var envPrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'LOOKERSDK';
8
17
  var sectionName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Looker';
9
- dotenv.config();
10
-
18
+ _dotenv.default.config();
11
19
  if (process.env.DOT_ENV_FILE) {
12
20
  var name = process.env.DOT_ENV_FILE;
13
- var vals = dotenv.parse(fs.readFileSync(name, 'utf-8'));
21
+ var vals = _dotenv.default.parse(fs.readFileSync(name, 'utf-8'));
14
22
  Object.entries(vals).forEach(_ref => {
15
23
  var [key, val] = _ref;
16
24
  if (val) process.env[key] = val;
17
25
  });
18
26
  }
19
-
20
- var section = readIniConfig(fileName, envPrefix, sectionName);
27
+ var section = (0, _sdkNode.readIniConfig)(fileName, envPrefix, sectionName);
21
28
  var config = {
22
29
  api_version: section.api_version,
23
30
  api_versions: section.api_versions,
24
31
  base_url: section.base_url,
25
32
  client_id: section.client_id,
26
33
  client_secret: section.client_secret,
27
- verify_ssl: boolDefault(section.verify_ssl, true)
34
+ verify_ssl: (0, _sdkRtl.boolDefault)(section.verify_ssl, true)
28
35
  };
29
-
30
36
  if (!config.base_url) {
31
37
  throw Error('Fatal error: base_url is not configured. Exiting.');
32
38
  }
33
-
34
39
  return {
35
40
  [sectionName]: config
36
41
  };
37
42
  };
43
+ exports.SDKConfig = SDKConfig;
38
44
  //# sourceMappingURL=sdkConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sdkConfig.ts"],"names":["fs","dotenv","boolDefault","readIniConfig","SDKConfig","fileName","envPrefix","sectionName","config","process","env","DOT_ENV_FILE","name","vals","parse","readFileSync","Object","entries","forEach","key","val","section","api_version","api_versions","base_url","client_id","client_secret","verify_ssl","Error"],"mappings":"AA0BA,OAAO,KAAKA,EAAZ,MAAoB,IAApB;AACA,OAAOC,MAAP,MAAmB,QAAnB;AACA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,aAAT,QAA8B,kBAA9B;AAeA,OAAO,IAAMC,SAAS,GAAG,SAAZA,SAAY,GAID;AAAA,MAHtBC,QAGsB,uEAHX,cAGW;AAAA,MAFtBC,SAEsB,uEAFV,WAEU;AAAA,MADtBC,WACsB,uEADR,QACQ;AACtBN,EAAAA,MAAM,CAACO,MAAP;;AACA,MAAIC,OAAO,CAACC,GAAR,CAAYC,YAAhB,EAA8B;AAE5B,QAAMC,IAAI,GAAGH,OAAO,CAACC,GAAR,CAAYC,YAAzB;AACA,QAAME,IAAI,GAAGZ,MAAM,CAACa,KAAP,CAAad,EAAE,CAACe,YAAH,CAAgBH,IAAhB,EAAsB,OAAtB,CAAb,CAAb;AACAI,IAAAA,MAAM,CAACC,OAAP,CAAeJ,IAAf,EAAqBK,OAArB,CAA6B,QAAgB;AAAA,UAAf,CAACC,GAAD,EAAMC,GAAN,CAAe;AAC3C,UAAIA,GAAJ,EAASX,OAAO,CAACC,GAAR,CAAYS,GAAZ,IAAmBC,GAAnB;AACV,KAFD;AAGD;;AAED,MAAMC,OAAO,GAAGlB,aAAa,CAACE,QAAD,EAAWC,SAAX,EAAsBC,WAAtB,CAA7B;AACA,MAAMC,MAAuB,GAAG;AAC9Bc,IAAAA,WAAW,EAAED,OAAO,CAACC,WADS;AAE9BC,IAAAA,YAAY,EAAEF,OAAO,CAACE,YAFQ;AAG9BC,IAAAA,QAAQ,EAAEH,OAAO,CAACG,QAHY;AAI9BC,IAAAA,SAAS,EAAEJ,OAAO,CAACI,SAJW;AAK9BC,IAAAA,aAAa,EAAEL,OAAO,CAACK,aALO;AAM9BC,IAAAA,UAAU,EAAEzB,WAAW,CAACmB,OAAO,CAACM,UAAT,EAAqB,IAArB;AANO,GAAhC;;AASA,MAAI,CAACnB,MAAM,CAACgB,QAAZ,EAAsB;AACpB,UAAMI,KAAK,CAAC,mDAAD,CAAX;AACD;;AACD,SAAO;AAAE,KAACrB,WAAD,GAAeC;AAAjB,GAAP;AACD,CA7BM","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"],"file":"sdkConfig.js"}
1
+ {"version":3,"file":"sdkConfig.js","names":["SDKConfig","fileName","envPrefix","sectionName","dotenv","config","process","env","DOT_ENV_FILE","name","vals","parse","fs","readFileSync","Object","entries","forEach","key","val","section","readIniConfig","api_version","api_versions","base_url","client_id","client_secret","verify_ssl","boolDefault","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;AACA;AACA;AACA;AAAgD;AAAA;AAAA;AAezC,IAAMA,SAAS,GAAG,SAAZA,SAAS,GAIE;EAAA,IAHtBC,QAAQ,uEAAG,cAAc;EAAA,IACzBC,SAAS,uEAAG,WAAW;EAAA,IACvBC,WAAW,uEAAG,QAAQ;EAEtBC,eAAM,CAACC,MAAM,EAAE;EACf,IAAIC,OAAO,CAACC,GAAG,CAACC,YAAY,EAAE;IAE5B,IAAMC,IAAI,GAAGH,OAAO,CAACC,GAAG,CAACC,YAAY;IACrC,IAAME,IAAI,GAAGN,eAAM,CAACO,KAAK,CAACC,EAAE,CAACC,YAAY,CAACJ,IAAI,EAAE,OAAO,CAAC,CAAC;IACzDK,MAAM,CAACC,OAAO,CAACL,IAAI,CAAC,CAACM,OAAO,CAAC,QAAgB;MAAA,IAAf,CAACC,GAAG,EAAEC,GAAG,CAAC;MACtC,IAAIA,GAAG,EAAEZ,OAAO,CAACC,GAAG,CAACU,GAAG,CAAC,GAAGC,GAAG;IACjC,CAAC,CAAC;EACJ;EAEA,IAAMC,OAAO,GAAG,IAAAC,sBAAa,EAACnB,QAAQ,EAAEC,SAAS,EAAEC,WAAW,CAAC;EAC/D,IAAME,MAAuB,GAAG;IAC9BgB,WAAW,EAAEF,OAAO,CAACE,WAAW;IAChCC,YAAY,EAAEH,OAAO,CAACG,YAAY;IAClCC,QAAQ,EAAEJ,OAAO,CAACI,QAAQ;IAC1BC,SAAS,EAAEL,OAAO,CAACK,SAAS;IAC5BC,aAAa,EAAEN,OAAO,CAACM,aAAa;IACpCC,UAAU,EAAE,IAAAC,mBAAW,EAACR,OAAO,CAACO,UAAU,EAAE,IAAI;EAClD,CAAC;EAED,IAAI,CAACrB,MAAM,CAACkB,QAAQ,EAAE;IACpB,MAAMK,KAAK,CAAC,mDAAmD,CAAC;EAClE;EACA,OAAO;IAAE,CAACzB,WAAW,GAAGE;EAAO,CAAC;AAClC,CAAC;AAAA"}