@cparra/apexdocs 2.19.0-alpha.2 → 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,9 +1,11 @@
1
+ import { TargetFile } from './src/settings';
2
+
1
3
  export default {
2
- onBeforeFileWrite: (dir: string, fileName: string) => {
3
- console.log('onBefore writing', fileName);
4
- return { dir, fileName };
4
+ onBeforeFileWrite: (file: TargetFile): TargetFile => {
5
+ console.log('onBefore writing', file);
6
+ return file;
5
7
  },
6
- onAfterProcess: (files: { dir: string; fileName: string }[]) => {
8
+ onAfterProcess: (files: TargetFile[]) => {
7
9
  console.log('onAfterProcess files', files);
8
10
  },
9
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,10 +1,6 @@
1
1
  import { OutputFile } from '../model/outputFile';
2
+ import { TargetFile } from '../settings';
2
3
  export declare class FileWriter {
3
- static write(files: OutputFile[], onWriteCallback: (file: TargetLocation) => void): void;
4
+ static write(files: OutputFile[], onWriteCallback: (file: TargetFile) => void): void;
4
5
  private static getTargetLocation;
5
6
  }
6
- type TargetLocation = {
7
- dir: string;
8
- fileName: string;
9
- };
10
- export {};
@@ -6,21 +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 outputDir = path.join(settings_1.Settings.getInstance().outputDir, file.dir);
22
- const fileName = `${file.fileName}${file.fileExtension()}`;
23
- return onBeforeFileWrite(outputDir, 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);
24
31
  }
25
32
  }
26
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,0CAAuC;AAEvC,MAAa,UAAU;IACrB,MAAM,CAAC,KAAK,CAAC,KAAmB,EAAE,eAA+C;QAC/E,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE,CAChE,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,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;QAC3D,OAAO,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;CACF;AArBD,gCAqBC"}
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,4 +1,18 @@
1
1
  import { GeneratorChoices } from './transpiler/generator-choices';
2
+ export type OnBeforeFileWrite = (file: TargetFile) => TargetFile;
3
+ export type TargetFile = {
4
+ name: string;
5
+ extension: string;
6
+ dir: OutputDir;
7
+ };
8
+ export type TargetLocation = {
9
+ dir: string;
10
+ fileName: string;
11
+ };
12
+ export type OutputDir = {
13
+ baseDir: string;
14
+ fileDir: string;
15
+ };
2
16
  export interface SettingsConfig {
3
17
  sourceDirectory: string;
4
18
  recursive: boolean;
@@ -14,14 +28,8 @@ export interface SettingsConfig {
14
28
  openApiFileName: string;
15
29
  includeMetadata: boolean;
16
30
  rootDir?: string;
17
- onAfterProcess?: (files: {
18
- dir: string;
19
- fileName: string;
20
- }[]) => void;
21
- onBeforeFileWrite?: (outputDir: string, fileName: string) => {
22
- dir: string;
23
- fileName: string;
24
- };
31
+ onAfterProcess?: (files: TargetFile[]) => void;
32
+ onBeforeFileWrite?: (file: TargetFile) => TargetFile;
25
33
  }
26
34
  export declare class Settings {
27
35
  config: SettingsConfig;
@@ -44,12 +52,6 @@ export declare class Settings {
44
52
  openApiFileName(): string;
45
53
  includeMetadata(): boolean;
46
54
  getRootDir(): string | undefined;
47
- onAfterProcess(files: {
48
- dir: string;
49
- fileName: string;
50
- }[]): void;
51
- onBeforeFileWrite(outputDir: string, fileName: string): {
52
- dir: string;
53
- fileName: string;
54
- };
55
+ onAfterProcess(files: TargetFile[]): void;
56
+ onBeforeFileWrite(file: TargetFile): TargetFile;
55
57
  }
package/lib/settings.js CHANGED
@@ -68,11 +68,11 @@ class Settings {
68
68
  this.config.onAfterProcess(files);
69
69
  }
70
70
  }
71
- onBeforeFileWrite(outputDir, fileName) {
71
+ onBeforeFileWrite(file) {
72
72
  if (this.config.onBeforeFileWrite) {
73
- return this.config.onBeforeFileWrite(outputDir, fileName);
73
+ return this.config.onBeforeFileWrite(file);
74
74
  }
75
- return { dir: outputDir, fileName };
75
+ return file;
76
76
  }
77
77
  }
78
78
  exports.Settings = Settings;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;AAqBA,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,SAAiB,EAAE,QAAgB;QAC1D,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC3D;QACD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtC,CAAC;CACF;AA3FD,4BA2FC"}
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.2",
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,34 +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 { Settings } 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: string, 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 outputDir = path.join(Settings.getInstance().outputDir, file.dir);
24
- const fileName = `${file.fileName}${file.fileExtension()}`;
25
- return onBeforeFileWrite(outputDir, fileName);
22
+ private static getTargetLocation(file: OutputFile, onBeforeFileWrite: OnBeforeFileWrite): TargetFile {
23
+ const targetFile: TargetFile = {
24
+ name: file.fileName,
25
+ extension: file.fileExtension(),
26
+ dir: {
27
+ baseDir: Settings.getInstance().outputDir,
28
+ fileDir: file.dir,
29
+ },
30
+ };
31
+
32
+ return onBeforeFileWrite(targetFile);
26
33
  }
27
34
  }
28
-
29
- type OnBeforeFileWrite = (outputDir: string, fileName: string) => TargetLocation;
30
-
31
- type TargetLocation = {
32
- dir: string;
33
- fileName: string;
34
- };
package/src/settings.ts CHANGED
@@ -1,5 +1,23 @@
1
1
  import { GeneratorChoices } from './transpiler/generator-choices';
2
2
 
3
+ export type OnBeforeFileWrite = (file: TargetFile) => TargetFile;
4
+
5
+ export type TargetFile = {
6
+ name: string;
7
+ extension: string;
8
+ dir: OutputDir;
9
+ };
10
+
11
+ export type TargetLocation = {
12
+ dir: string;
13
+ fileName: string;
14
+ };
15
+
16
+ export type OutputDir = {
17
+ baseDir: string;
18
+ fileDir: string;
19
+ };
20
+
3
21
  export interface SettingsConfig {
4
22
  sourceDirectory: string;
5
23
  recursive: boolean;
@@ -15,8 +33,8 @@ export interface SettingsConfig {
15
33
  openApiFileName: string;
16
34
  includeMetadata: boolean;
17
35
  rootDir?: string;
18
- onAfterProcess?: (files: { dir: string; fileName: string }[]) => void;
19
- onBeforeFileWrite?: (outputDir: string, fileName: string) => { dir: string; fileName: string };
36
+ onAfterProcess?: (files: TargetFile[]) => void;
37
+ onBeforeFileWrite?: (file: TargetFile) => TargetFile;
20
38
  }
21
39
 
22
40
  export class Settings {
@@ -98,16 +116,16 @@ export class Settings {
98
116
  return this.config.rootDir;
99
117
  }
100
118
 
101
- public onAfterProcess(files: { dir: string; fileName: string }[]) {
119
+ public onAfterProcess(files: TargetFile[]): void {
102
120
  if (this.config.onAfterProcess) {
103
121
  this.config.onAfterProcess(files);
104
122
  }
105
123
  }
106
124
 
107
- public onBeforeFileWrite(outputDir: string, fileName: string): { dir: string; fileName: string } {
125
+ public onBeforeFileWrite(file: TargetFile): TargetFile {
108
126
  if (this.config.onBeforeFileWrite) {
109
- return this.config.onBeforeFileWrite(outputDir, fileName);
127
+ return this.config.onBeforeFileWrite(file);
110
128
  }
111
- return { dir: outputDir, fileName };
129
+ return file;
112
130
  }
113
131
  }