@goast/core 0.5.0-beta.2 → 0.5.0-beta.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/src/codegen/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/src/codegen/generator.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,17 @@ class _OpenApiGenerator {
50
50
  else {
51
51
  await fs.ensureDir(absOutputPath);
52
52
  }
53
+ this._providers.forEach(({ config }) => {
54
+ if (config && 'outputDir' in config && config.outputDir && typeof config.outputDir === 'string') {
55
+ const providerOutputDir = resolve(config.outputDir);
56
+ if (this._config.clearOutputDir) {
57
+ fs.emptyDirSync(providerOutputDir);
58
+ }
59
+ else {
60
+ fs.ensureDirSync(providerOutputDir);
61
+ }
62
+ }
63
+ });
53
64
  let input = {};
54
65
  for (const generator of this._providers) {
55
66
  const context = {
@@ -33,7 +33,7 @@ export class OpenApiParser {
33
33
  async parseApi(fileName) {
34
34
  const absoluteFilePath = this.isUrl(fileName) ? fileName : path.resolve(cwd(), fileName);
35
35
  const doc = await this.loadDocument(absoluteFilePath);
36
- return await this.dereference(absoluteFilePath, '', doc.document);
36
+ return await this.dereference(absoluteFilePath, '/', doc.document);
37
37
  }
38
38
  transformApis(apis) {
39
39
  const collectedData = collectOpenApi(apis);
@@ -72,7 +72,7 @@ export class OpenApiParser {
72
72
  if (Array.isArray(v)) {
73
73
  result[key] = await Promise.all(v.map(async (v, index) => {
74
74
  if (v && typeof v === 'object') {
75
- return await this.dereference(file, `${path}/${String(key)}/${index}`, v);
75
+ return await this.dereference(file, joinPaths(path, key, index), v);
76
76
  }
77
77
  else {
78
78
  return v;
@@ -80,7 +80,7 @@ export class OpenApiParser {
80
80
  }));
81
81
  }
82
82
  else {
83
- result[key] = await this.dereference(file, `${path}/${String(key)}`, v);
83
+ result[key] = await this.dereference(file, joinPaths(path, key), v);
84
84
  }
85
85
  }
86
86
  if (typeof v === 'string' && path.endsWith('/discriminator/mapping')) {
@@ -101,7 +101,7 @@ export class OpenApiParser {
101
101
  const doc = await this.loadDocument(absoluteRefFile);
102
102
  const value = refPath ? getDeepProperty(doc.document, refPath.replace(/[/]/g, '.')) : doc.document;
103
103
  if (value && typeof value === 'object') {
104
- return this.dereference(absoluteRefFile, refPath !== null && refPath !== void 0 ? refPath : '', value);
104
+ return this.dereference(absoluteRefFile, refPath !== null && refPath !== void 0 ? refPath : '/', value);
105
105
  }
106
106
  return undefined;
107
107
  }
@@ -193,3 +193,12 @@ function getDeepProperty(value, path) {
193
193
  }
194
194
  return result;
195
195
  }
196
+ function joinPaths(...paths) {
197
+ var _a;
198
+ const startingSlash = String((_a = paths[0]) !== null && _a !== void 0 ? _a : '').startsWith('/') ? '/' : '';
199
+ const path = paths
200
+ .map((p) => String(p).replace(/^\//, '').replace(/\/$/, ''))
201
+ .filter((p) => !!p)
202
+ .join('/');
203
+ return startingSlash + path;
204
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goast/core",
3
- "version": "0.5.0-beta.2",
3
+ "version": "0.5.0-beta.4",
4
4
  "description": "A tool designed to transform OpenAPI specifications into various forms with flexibility and extensibility at its core.",
5
5
  "author": {
6
6
  "name": "Marc Schmidt (MaSch0212)",
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/src/codegen/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/src/codegen/generator.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,17 @@ class _OpenApiGenerator {
54
54
  else {
55
55
  await fs_extra_1.default.ensureDir(absOutputPath);
56
56
  }
57
+ this._providers.forEach(({ config }) => {
58
+ if (config && 'outputDir' in config && config.outputDir && typeof config.outputDir === 'string') {
59
+ const providerOutputDir = (0, node_path_1.resolve)(config.outputDir);
60
+ if (this._config.clearOutputDir) {
61
+ fs_extra_1.default.emptyDirSync(providerOutputDir);
62
+ }
63
+ else {
64
+ fs_extra_1.default.ensureDirSync(providerOutputDir);
65
+ }
66
+ }
67
+ });
57
68
  let input = {};
58
69
  for (const generator of this._providers) {
59
70
  const context = {
@@ -37,7 +37,7 @@ class OpenApiParser {
37
37
  async parseApi(fileName) {
38
38
  const absoluteFilePath = this.isUrl(fileName) ? fileName : node_path_1.default.resolve((0, node_process_1.cwd)(), fileName);
39
39
  const doc = await this.loadDocument(absoluteFilePath);
40
- return await this.dereference(absoluteFilePath, '', doc.document);
40
+ return await this.dereference(absoluteFilePath, '/', doc.document);
41
41
  }
42
42
  transformApis(apis) {
43
43
  const collectedData = (0, collector_js_1.collectOpenApi)(apis);
@@ -76,7 +76,7 @@ class OpenApiParser {
76
76
  if (Array.isArray(v)) {
77
77
  result[key] = await Promise.all(v.map(async (v, index) => {
78
78
  if (v && typeof v === 'object') {
79
- return await this.dereference(file, `${path}/${String(key)}/${index}`, v);
79
+ return await this.dereference(file, joinPaths(path, key, index), v);
80
80
  }
81
81
  else {
82
82
  return v;
@@ -84,7 +84,7 @@ class OpenApiParser {
84
84
  }));
85
85
  }
86
86
  else {
87
- result[key] = await this.dereference(file, `${path}/${String(key)}`, v);
87
+ result[key] = await this.dereference(file, joinPaths(path, key), v);
88
88
  }
89
89
  }
90
90
  if (typeof v === 'string' && path.endsWith('/discriminator/mapping')) {
@@ -105,7 +105,7 @@ class OpenApiParser {
105
105
  const doc = await this.loadDocument(absoluteRefFile);
106
106
  const value = refPath ? getDeepProperty(doc.document, refPath.replace(/[/]/g, '.')) : doc.document;
107
107
  if (value && typeof value === 'object') {
108
- return this.dereference(absoluteRefFile, refPath !== null && refPath !== void 0 ? refPath : '', value);
108
+ return this.dereference(absoluteRefFile, refPath !== null && refPath !== void 0 ? refPath : '/', value);
109
109
  }
110
110
  return undefined;
111
111
  }
@@ -198,3 +198,12 @@ function getDeepProperty(value, path) {
198
198
  }
199
199
  return result;
200
200
  }
201
+ function joinPaths(...paths) {
202
+ var _a;
203
+ const startingSlash = String((_a = paths[0]) !== null && _a !== void 0 ? _a : '').startsWith('/') ? '/' : '';
204
+ const path = paths
205
+ .map((p) => String(p).replace(/^\//, '').replace(/\/$/, ''))
206
+ .filter((p) => !!p)
207
+ .join('/');
208
+ return startingSlash + path;
209
+ }