@cparra/apexdocs 2.19.0-alpha.3 → 2.19.0-alpha.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,17 +1,11 @@
1
- import * as path from 'path';
2
-
3
- type OutputDir = {
4
- baseDir: string;
5
- fileDir: string;
6
- };
1
+ import { TargetFile } from './src/settings';
7
2
 
8
3
  export default {
9
- onBeforeFileWrite: (dir: OutputDir, fileName: string) => {
10
- console.log('onBefore writing', dir, fileName);
11
- const defaultDir = path.join(dir.baseDir, dir.fileDir);
12
- return { dir: defaultDir, fileName };
4
+ onBeforeFileWrite: (file: TargetFile): TargetFile => {
5
+ console.log('onBefore writing', file);
6
+ return file;
13
7
  },
14
- onAfterProcess: (files: { dir: string; fileName: string }[]) => {
8
+ onAfterProcess: (files: TargetFile[]) => {
15
9
  console.log('onAfterProcess files', files);
16
10
  },
17
11
  };
@@ -30,12 +30,12 @@ class Apexdocs {
30
30
  const processor = factory_1.TypeTranspilerFactory.get(settings_1.Settings.getInstance().targetGenerator);
31
31
  transpiler_1.default.generate(filteredTypes, processor);
32
32
  const generatedFiles = processor.fileBuilder().files();
33
- const generatedFilePaths = [];
33
+ const files = [];
34
34
  file_writer_1.FileWriter.write(generatedFiles, (file) => {
35
- logger_1.Logger.logSingle(`${file.fileName} processed.`, false, 'green', false);
36
- generatedFilePaths.push(file);
35
+ logger_1.Logger.logSingle(`${file.name} processed.`, false, 'green', false);
36
+ files.push(file);
37
37
  });
38
- settings_1.Settings.getInstance().onAfterProcess(generatedFilePaths);
38
+ settings_1.Settings.getInstance().onAfterProcess(files);
39
39
  // Error logging
40
40
  error_logger_1.default.logErrors(filteredTypes);
41
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Apexdocs.js","sourceRoot":"","sources":["../../src/application/Apexdocs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Apexdocs.js","sourceRoot":"","sources":["../../src/application/Apexdocs.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { OutputFile } from '../model/outputFile';
2
- import { TargetLocation } from '../settings';
2
+ import { TargetFile } from '../settings';
3
3
  export declare class FileWriter {
4
- static write(files: OutputFile[], onWriteCallback: (file: TargetLocation) => void): void;
4
+ static write(files: OutputFile[], onWriteCallback: (file: TargetFile) => void): void;
5
5
  private static getTargetLocation;
6
6
  }
@@ -6,23 +6,28 @@ const path = require("path");
6
6
  const settings_1 = require("../settings");
7
7
  class FileWriter {
8
8
  static write(files, onWriteCallback) {
9
- const onBeforeFileWrite = (outputDir, fileName) => settings_1.Settings.getInstance().onBeforeFileWrite(outputDir, fileName);
9
+ const onBeforeFileWrite = (file) => settings_1.Settings.getInstance().onBeforeFileWrite(file);
10
10
  files.forEach((file) => {
11
- const { dir: dirPath, fileName } = this.getTargetLocation(file, onBeforeFileWrite);
12
- if (!fs.existsSync(dirPath)) {
13
- fs.mkdirSync(dirPath, { recursive: true });
11
+ const resolvedFile = this.getTargetLocation(file, onBeforeFileWrite);
12
+ const fullDir = path.join(resolvedFile.dir.baseDir, resolvedFile.dir.fileDir);
13
+ if (!fs.existsSync(fullDir)) {
14
+ fs.mkdirSync(fullDir, { recursive: true });
14
15
  }
15
- const filePath = path.join(dirPath, fileName);
16
+ const filePath = path.join(fullDir, `${resolvedFile.name}${resolvedFile.extension}`);
16
17
  fs.writeFileSync(filePath, file.body, 'utf8');
17
- onWriteCallback({ dir: dirPath, fileName });
18
+ onWriteCallback(resolvedFile);
18
19
  });
19
20
  }
20
21
  static getTargetLocation(file, onBeforeFileWrite) {
21
- const fileName = `${file.fileName}${file.fileExtension()}`;
22
- return onBeforeFileWrite({
23
- baseDir: settings_1.Settings.getInstance().outputDir,
24
- fileDir: file.dir,
25
- }, fileName);
22
+ const targetFile = {
23
+ name: file.fileName,
24
+ extension: file.fileExtension(),
25
+ dir: {
26
+ baseDir: settings_1.Settings.getInstance().outputDir,
27
+ fileDir: file.dir,
28
+ },
29
+ };
30
+ return onBeforeFileWrite(targetFile);
26
31
  }
27
32
  }
28
33
  exports.FileWriter = FileWriter;
@@ -1 +1 @@
1
- {"version":3,"file":"file-writer.js","sourceRoot":"","sources":["../../src/service/file-writer.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAE7B,0CAAqF;AAErF,MAAa,UAAU;IACrB,MAAM,CAAC,KAAK,CAAC,KAAmB,EAAE,eAA+C;QAC/E,MAAM,iBAAiB,GAAG,CAAC,SAAoB,EAAE,QAAgB,EAAE,EAAE,CACnE,mBAAQ,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YACnF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBAC3B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;aAC5C;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9C,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,IAAgB,EAAE,iBAAoC;QACrF,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;QAC3D,OAAO,iBAAiB,CACtB;YACE,OAAO,EAAE,mBAAQ,CAAC,WAAW,EAAE,CAAC,SAAS;YACzC,OAAO,EAAE,IAAI,CAAC,GAAG;SAClB,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AA1BD,gCA0BC"}
1
+ {"version":3,"file":"file-writer.js","sourceRoot":"","sources":["../../src/service/file-writer.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAE7B,0CAAsE;AAEtE,MAAa,UAAU;IACrB,MAAM,CAAC,KAAK,CAAC,KAAmB,EAAE,eAA2C;QAC3E,MAAM,iBAAiB,GAAsB,CAAC,IAAgB,EAAE,EAAE,CAAC,mBAAQ,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAClH,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YACrE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBAC3B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;aAC5C;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;YACrF,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9C,eAAe,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,IAAgB,EAAE,iBAAoC;QACrF,MAAM,UAAU,GAAe;YAC7B,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE;YAC/B,GAAG,EAAE;gBACH,OAAO,EAAE,mBAAQ,CAAC,WAAW,EAAE,CAAC,SAAS;gBACzC,OAAO,EAAE,IAAI,CAAC,GAAG;aAClB;SACF,CAAC;QAEF,OAAO,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;CACF;AA5BD,gCA4BC"}
package/lib/settings.d.ts CHANGED
@@ -1,5 +1,10 @@
1
1
  import { GeneratorChoices } from './transpiler/generator-choices';
2
- export type OnBeforeFileWrite = (outputDir: OutputDir, fileName: string) => TargetLocation;
2
+ export type OnBeforeFileWrite = (file: TargetFile) => TargetFile;
3
+ export type TargetFile = {
4
+ name: string;
5
+ extension: string;
6
+ dir: OutputDir;
7
+ };
3
8
  export type TargetLocation = {
4
9
  dir: string;
5
10
  fileName: string;
@@ -23,14 +28,8 @@ export interface SettingsConfig {
23
28
  openApiFileName: string;
24
29
  includeMetadata: boolean;
25
30
  rootDir?: string;
26
- onAfterProcess?: (files: {
27
- dir: string;
28
- fileName: string;
29
- }[]) => void;
30
- onBeforeFileWrite?: (outputDir: OutputDir, fileName: string) => {
31
- dir: string;
32
- fileName: string;
33
- };
31
+ onAfterProcess?: (files: TargetFile[]) => void;
32
+ onBeforeFileWrite?: (file: TargetFile) => TargetFile;
34
33
  }
35
34
  export declare class Settings {
36
35
  config: SettingsConfig;
@@ -53,12 +52,6 @@ export declare class Settings {
53
52
  openApiFileName(): string;
54
53
  includeMetadata(): boolean;
55
54
  getRootDir(): string | undefined;
56
- onAfterProcess(files: {
57
- dir: string;
58
- fileName: string;
59
- }[]): void;
60
- onBeforeFileWrite(outputDir: OutputDir, fileName: string): {
61
- dir: string;
62
- fileName: string;
63
- };
55
+ onAfterProcess(files: TargetFile[]): void;
56
+ onBeforeFileWrite(file: TargetFile): TargetFile;
64
57
  }
package/lib/settings.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Settings = void 0;
4
- const path = require("path");
5
4
  class Settings {
6
5
  constructor(config) {
7
6
  this.config = config;
@@ -69,12 +68,11 @@ class Settings {
69
68
  this.config.onAfterProcess(files);
70
69
  }
71
70
  }
72
- onBeforeFileWrite(outputDir, fileName) {
71
+ onBeforeFileWrite(file) {
73
72
  if (this.config.onBeforeFileWrite) {
74
- return this.config.onBeforeFileWrite(outputDir, fileName);
73
+ return this.config.onBeforeFileWrite(file);
75
74
  }
76
- const defaultDir = path.join(outputDir.baseDir, outputDir.fileDir);
77
- return { dir: defaultDir, fileName };
75
+ return file;
78
76
  }
79
77
  }
80
78
  exports.Settings = Settings;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;AACA,6BAA6B;AAiC7B,MAAa,QAAQ;IAGnB,YAA2B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAE9C,MAAM,CAAC,KAAK,CAAC,MAAsB;QACxC,QAAQ,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAEM,mBAAmB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAEM,eAAe;;QACpB,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,mCAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IACvD,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAEM,kBAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC1B,OAAO,EAAE,CAAC;SACX;QACD,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC;IACrC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAEM,cAAc,CAAC,KAA0C;QAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;IAEM,iBAAiB,CAAC,SAAoB,EAAE,QAAgB;QAC7D,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC3D;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QACnE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvC,CAAC;CACF;AA5FD,4BA4FC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;AAuCA,MAAa,QAAQ;IAGnB,YAA2B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAE9C,MAAM,CAAC,KAAK,CAAC,MAAsB;QACxC,QAAQ,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAEM,mBAAmB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAEM,eAAe;;QACpB,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,mCAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IACvD,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAEM,kBAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC1B,OAAO,EAAE,CAAC;SACX;QACD,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC;IACrC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAEM,cAAc,CAAC,KAAmB;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;IAEM,iBAAiB,CAAC,IAAgB;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA3FD,4BA2FC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cparra/apexdocs",
3
- "version": "2.19.0-alpha.3",
3
+ "version": "2.19.0-alpha.4",
4
4
  "description": "Library with CLI capabilities to generate documentation for Salesforce Apex classes.",
5
5
  "keywords": [
6
6
  "apex",
@@ -4,7 +4,7 @@ import { ReflectionResult, reflect, Type } from '@cparra/apex-reflection';
4
4
  import { Logger } from '../util/logger';
5
5
  import { createManifest } from '../service/manifest-factory';
6
6
  import { RawBodyParser } from '../service/parser';
7
- import { Settings } from '../settings';
7
+ import { Settings, TargetFile } from '../settings';
8
8
  import Transpiler from '../transpiler/transpiler';
9
9
  import { FileWriter } from '../service/file-writer';
10
10
  import ErrorLogger from '../util/error-logger';
@@ -31,13 +31,13 @@ export class Apexdocs {
31
31
  Transpiler.generate(filteredTypes, processor);
32
32
  const generatedFiles = processor.fileBuilder().files();
33
33
 
34
- const generatedFilePaths: { dir: string; fileName: string }[] = [];
35
- FileWriter.write(generatedFiles, (file: { dir: string; fileName: string }) => {
36
- Logger.logSingle(`${file.fileName} processed.`, false, 'green', false);
37
- generatedFilePaths.push(file);
34
+ const files: TargetFile[] = [];
35
+ FileWriter.write(generatedFiles, (file: TargetFile) => {
36
+ Logger.logSingle(`${file.name} processed.`, false, 'green', false);
37
+ files.push(file);
38
38
  });
39
39
 
40
- Settings.getInstance().onAfterProcess(generatedFilePaths);
40
+ Settings.getInstance().onAfterProcess(files);
41
41
 
42
42
  // Error logging
43
43
  ErrorLogger.logErrors(filteredTypes);
@@ -1,32 +1,34 @@
1
1
  import * as fs from 'fs';
2
2
  import * as path from 'path';
3
3
  import { OutputFile } from '../model/outputFile';
4
- import { OnBeforeFileWrite, OutputDir, Settings, TargetLocation } from '../settings';
4
+ import { OnBeforeFileWrite, Settings, TargetFile } from '../settings';
5
5
 
6
6
  export class FileWriter {
7
- static write(files: OutputFile[], onWriteCallback: (file: TargetLocation) => void) {
8
- const onBeforeFileWrite = (outputDir: OutputDir, fileName: string) =>
9
- Settings.getInstance().onBeforeFileWrite(outputDir, fileName);
7
+ static write(files: OutputFile[], onWriteCallback: (file: TargetFile) => void) {
8
+ const onBeforeFileWrite: OnBeforeFileWrite = (file: TargetFile) => Settings.getInstance().onBeforeFileWrite(file);
10
9
  files.forEach((file) => {
11
- const { dir: dirPath, fileName } = this.getTargetLocation(file, onBeforeFileWrite);
12
- if (!fs.existsSync(dirPath)) {
13
- fs.mkdirSync(dirPath, { recursive: true });
10
+ const resolvedFile = this.getTargetLocation(file, onBeforeFileWrite);
11
+ const fullDir = path.join(resolvedFile.dir.baseDir, resolvedFile.dir.fileDir);
12
+ if (!fs.existsSync(fullDir)) {
13
+ fs.mkdirSync(fullDir, { recursive: true });
14
14
  }
15
15
 
16
- const filePath = path.join(dirPath, fileName);
16
+ const filePath = path.join(fullDir, `${resolvedFile.name}${resolvedFile.extension}`);
17
17
  fs.writeFileSync(filePath, file.body, 'utf8');
18
- onWriteCallback({ dir: dirPath, fileName });
18
+ onWriteCallback(resolvedFile);
19
19
  });
20
20
  }
21
21
 
22
- private static getTargetLocation(file: OutputFile, onBeforeFileWrite: OnBeforeFileWrite): TargetLocation {
23
- const fileName = `${file.fileName}${file.fileExtension()}`;
24
- return onBeforeFileWrite(
25
- {
22
+ private static getTargetLocation(file: OutputFile, onBeforeFileWrite: OnBeforeFileWrite): TargetFile {
23
+ const targetFile: TargetFile = {
24
+ name: file.fileName,
25
+ extension: file.fileExtension(),
26
+ dir: {
26
27
  baseDir: Settings.getInstance().outputDir,
27
28
  fileDir: file.dir,
28
29
  },
29
- fileName,
30
- );
30
+ };
31
+
32
+ return onBeforeFileWrite(targetFile);
31
33
  }
32
34
  }
package/src/settings.ts CHANGED
@@ -1,7 +1,12 @@
1
1
  import { GeneratorChoices } from './transpiler/generator-choices';
2
- import * as path from 'path';
3
2
 
4
- export type OnBeforeFileWrite = (outputDir: OutputDir, fileName: string) => TargetLocation;
3
+ export type OnBeforeFileWrite = (file: TargetFile) => TargetFile;
4
+
5
+ export type TargetFile = {
6
+ name: string;
7
+ extension: string;
8
+ dir: OutputDir;
9
+ };
5
10
 
6
11
  export type TargetLocation = {
7
12
  dir: string;
@@ -28,8 +33,8 @@ export interface SettingsConfig {
28
33
  openApiFileName: string;
29
34
  includeMetadata: boolean;
30
35
  rootDir?: string;
31
- onAfterProcess?: (files: { dir: string; fileName: string }[]) => void;
32
- onBeforeFileWrite?: (outputDir: OutputDir, fileName: string) => { dir: string; fileName: string };
36
+ onAfterProcess?: (files: TargetFile[]) => void;
37
+ onBeforeFileWrite?: (file: TargetFile) => TargetFile;
33
38
  }
34
39
 
35
40
  export class Settings {
@@ -111,17 +116,16 @@ export class Settings {
111
116
  return this.config.rootDir;
112
117
  }
113
118
 
114
- public onAfterProcess(files: { dir: string; fileName: string }[]) {
119
+ public onAfterProcess(files: TargetFile[]): void {
115
120
  if (this.config.onAfterProcess) {
116
121
  this.config.onAfterProcess(files);
117
122
  }
118
123
  }
119
124
 
120
- public onBeforeFileWrite(outputDir: OutputDir, fileName: string): { dir: string; fileName: string } {
125
+ public onBeforeFileWrite(file: TargetFile): TargetFile {
121
126
  if (this.config.onBeforeFileWrite) {
122
- return this.config.onBeforeFileWrite(outputDir, fileName);
127
+ return this.config.onBeforeFileWrite(file);
123
128
  }
124
- const defaultDir = path.join(outputDir.baseDir, outputDir.fileDir);
125
- return { dir: defaultDir, fileName };
129
+ return file;
126
130
  }
127
131
  }