@odata2ts/odata2ts 0.18.0

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 (97) hide show
  1. package/CHANGELOG.md +601 -0
  2. package/LICENSE +21 -0
  3. package/README.md +129 -0
  4. package/lib/FactoryFunctionModel.d.ts +13 -0
  5. package/lib/FactoryFunctionModel.js +3 -0
  6. package/lib/FactoryFunctionModel.js.map +1 -0
  7. package/lib/NamingModel.d.ts +191 -0
  8. package/lib/NamingModel.js +12 -0
  9. package/lib/NamingModel.js.map +1 -0
  10. package/lib/OptionModel.d.ts +208 -0
  11. package/lib/OptionModel.js +24 -0
  12. package/lib/OptionModel.js.map +1 -0
  13. package/lib/app.d.ts +8 -0
  14. package/lib/app.js +61 -0
  15. package/lib/app.js.map +1 -0
  16. package/lib/cli.d.ts +3 -0
  17. package/lib/cli.js +154 -0
  18. package/lib/cli.js.map +1 -0
  19. package/lib/data-model/DataModel.d.ts +68 -0
  20. package/lib/data-model/DataModel.js +114 -0
  21. package/lib/data-model/DataModel.js.map +1 -0
  22. package/lib/data-model/DataModelDigestion.d.ts +43 -0
  23. package/lib/data-model/DataModelDigestion.js +224 -0
  24. package/lib/data-model/DataModelDigestion.js.map +1 -0
  25. package/lib/data-model/DataModelDigestionV2.d.ts +10 -0
  26. package/lib/data-model/DataModelDigestionV2.js +201 -0
  27. package/lib/data-model/DataModelDigestionV2.js.map +1 -0
  28. package/lib/data-model/DataModelDigestionV4.d.ts +3 -0
  29. package/lib/data-model/DataModelDigestionV4.js +196 -0
  30. package/lib/data-model/DataModelDigestionV4.js.map +1 -0
  31. package/lib/data-model/DataTypeModel.d.ts +102 -0
  32. package/lib/data-model/DataTypeModel.js +9 -0
  33. package/lib/data-model/DataTypeModel.js.map +1 -0
  34. package/lib/data-model/NamingHelper.d.ts +57 -0
  35. package/lib/data-model/NamingHelper.js +225 -0
  36. package/lib/data-model/NamingHelper.js.map +1 -0
  37. package/lib/data-model/ServiceConfigHelper.d.ts +13 -0
  38. package/lib/data-model/ServiceConfigHelper.js +63 -0
  39. package/lib/data-model/ServiceConfigHelper.js.map +1 -0
  40. package/lib/data-model/edmx/ODataEdmxModelBase.d.ts +79 -0
  41. package/lib/data-model/edmx/ODataEdmxModelBase.js +3 -0
  42. package/lib/data-model/edmx/ODataEdmxModelBase.js.map +1 -0
  43. package/lib/data-model/edmx/ODataEdmxModelV3.d.ts +63 -0
  44. package/lib/data-model/edmx/ODataEdmxModelV3.js +3 -0
  45. package/lib/data-model/edmx/ODataEdmxModelV3.js.map +1 -0
  46. package/lib/data-model/edmx/ODataEdmxModelV4.d.ts +67 -0
  47. package/lib/data-model/edmx/ODataEdmxModelV4.js +3 -0
  48. package/lib/data-model/edmx/ODataEdmxModelV4.js.map +1 -0
  49. package/lib/defaultConfig.d.ts +9 -0
  50. package/lib/defaultConfig.js +176 -0
  51. package/lib/defaultConfig.js.map +1 -0
  52. package/lib/evaluateConfig.d.ts +25 -0
  53. package/lib/evaluateConfig.js +78 -0
  54. package/lib/evaluateConfig.js.map +1 -0
  55. package/lib/generator/ImportContainer.d.ts +16 -0
  56. package/lib/generator/ImportContainer.js +92 -0
  57. package/lib/generator/ImportContainer.js.map +1 -0
  58. package/lib/generator/ModelGenerator.d.ts +2 -0
  59. package/lib/generator/ModelGenerator.js +178 -0
  60. package/lib/generator/ModelGenerator.js.map +1 -0
  61. package/lib/generator/QueryObjectGenerator.d.ts +2 -0
  62. package/lib/generator/QueryObjectGenerator.js +234 -0
  63. package/lib/generator/QueryObjectGenerator.js.map +1 -0
  64. package/lib/generator/ServiceGenerator.d.ts +5 -0
  65. package/lib/generator/ServiceGenerator.js +412 -0
  66. package/lib/generator/ServiceGenerator.js.map +1 -0
  67. package/lib/generator/index.d.ts +3 -0
  68. package/lib/generator/index.js +10 -0
  69. package/lib/generator/index.js.map +1 -0
  70. package/lib/index.d.ts +3 -0
  71. package/lib/index.js +7 -0
  72. package/lib/index.js.map +1 -0
  73. package/lib/project/ProjectManager.d.ts +30 -0
  74. package/lib/project/ProjectManager.js +177 -0
  75. package/lib/project/ProjectManager.js.map +1 -0
  76. package/lib/project/formatter/BaseFormatter.d.ts +49 -0
  77. package/lib/project/formatter/BaseFormatter.js +31 -0
  78. package/lib/project/formatter/BaseFormatter.js.map +1 -0
  79. package/lib/project/formatter/FileFormatter.d.ts +16 -0
  80. package/lib/project/formatter/FileFormatter.js +3 -0
  81. package/lib/project/formatter/FileFormatter.js.map +1 -0
  82. package/lib/project/formatter/NoopFormatter.d.ts +29 -0
  83. package/lib/project/formatter/NoopFormatter.js +43 -0
  84. package/lib/project/formatter/NoopFormatter.js.map +1 -0
  85. package/lib/project/formatter/PrettierFormatter.d.ts +46 -0
  86. package/lib/project/formatter/PrettierFormatter.js +93 -0
  87. package/lib/project/formatter/PrettierFormatter.js.map +1 -0
  88. package/lib/project/formatter/index.d.ts +2 -0
  89. package/lib/project/formatter/index.js +15 -0
  90. package/lib/project/formatter/index.js.map +1 -0
  91. package/lib/project/logger/logFilePath.d.ts +1 -0
  92. package/lib/project/logger/logFilePath.js +13 -0
  93. package/lib/project/logger/logFilePath.js.map +1 -0
  94. package/lib/run-cli.d.ts +2 -0
  95. package/lib/run-cli.js +7 -0
  96. package/lib/run-cli.js.map +1 -0
  97. package/package.json +91 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceGenerator.js","sourceRoot":"","sources":["../../src/generator/ServiceGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { generateModels } from "./ModelGenerator";
2
+ export { generateQueryObjects } from "./QueryObjectGenerator";
3
+ export { generateServices } from "./ServiceGenerator";
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateServices = exports.generateQueryObjects = exports.generateModels = void 0;
4
+ var ModelGenerator_1 = require("./ModelGenerator");
5
+ Object.defineProperty(exports, "generateModels", { enumerable: true, get: function () { return ModelGenerator_1.generateModels; } });
6
+ var QueryObjectGenerator_1 = require("./QueryObjectGenerator");
7
+ Object.defineProperty(exports, "generateQueryObjects", { enumerable: true, get: function () { return QueryObjectGenerator_1.generateQueryObjects; } });
8
+ var ServiceGenerator_1 = require("./ServiceGenerator");
9
+ Object.defineProperty(exports, "generateServices", { enumerable: true, get: function () { return ServiceGenerator_1.generateServices; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from "./OptionModel";
2
+ export * from "./NamingModel";
3
+ export * from "./defaultConfig";
package/lib/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./OptionModel"), exports);
5
+ tslib_1.__exportStar(require("./NamingModel"), exports);
6
+ tslib_1.__exportStar(require("./defaultConfig"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,wDAA8B;AAC9B,0DAAgC"}
@@ -0,0 +1,30 @@
1
+ import { CompilerOptions, SourceFile } from "ts-morph";
2
+ import { ProjectFiles } from "../data-model/DataModel";
3
+ import { EmitModes } from "../OptionModel";
4
+ import { FileFormatter } from "./formatter/FileFormatter";
5
+ export declare function createProjectManager(projectFiles: ProjectFiles, outputDir: string, emitMode: EmitModes, usePrettier: boolean, tsConfigPath?: string): Promise<ProjectManager>;
6
+ export declare class ProjectManager {
7
+ private projectFiles;
8
+ private outputDir;
9
+ private emitMode;
10
+ private formatter;
11
+ private project;
12
+ private files;
13
+ private serviceFiles;
14
+ constructor(projectFiles: ProjectFiles, outputDir: string, emitMode: EmitModes, formatter: FileFormatter, compilerOptions: CompilerOptions | undefined);
15
+ private createFile;
16
+ createModelFile(): Promise<SourceFile>;
17
+ getModelFile(): SourceFile;
18
+ createQObjectFile(): Promise<SourceFile>;
19
+ getQObjectFile(): SourceFile;
20
+ createMainServiceFile(): Promise<SourceFile>;
21
+ getMainServiceFile(): SourceFile;
22
+ getServiceDir(): string;
23
+ cleanServiceDir(): Promise<void>;
24
+ createServiceFile(name: string): Promise<SourceFile>;
25
+ getServiceFiles(): SourceFile[];
26
+ writeFiles(): Promise<void>;
27
+ private emitJsFiles;
28
+ private emitTsFiles;
29
+ private formatAndWriteFile;
30
+ }
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProjectManager = exports.createProjectManager = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const path = tslib_1.__importStar(require("path"));
6
+ const fs_extra_1 = require("fs-extra");
7
+ const ts_morph_1 = require("ts-morph");
8
+ const tsconfig_loader_1 = tslib_1.__importDefault(require("tsconfig-loader"));
9
+ const typescript_1 = require("typescript");
10
+ const OptionModel_1 = require("../OptionModel");
11
+ const formatter_1 = require("./formatter");
12
+ function createProjectManager(projectFiles, outputDir, emitMode, usePrettier, tsConfigPath = "tsconfig.json") {
13
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
+ const generateDeclarations = [OptionModel_1.EmitModes.js_dts, OptionModel_1.EmitModes.dts].includes(emitMode);
15
+ const conf = (0, tsconfig_loader_1.default)({ filename: tsConfigPath });
16
+ const formatter = yield (0, formatter_1.createFormatter)(outputDir, usePrettier);
17
+ const _a = (conf === null || conf === void 0 ? void 0 : conf.tsConfig.compilerOptions) || {}, {
18
+ // ignored props
19
+ noEmit, // we always want to emit
20
+ importsNotUsedAsValues, // type is missing
21
+ jsx, plugins,
22
+ // mapped props
23
+ moduleResolution, lib, module, newLine, target } = _a, passThrough = tslib_1.__rest(_a, ["noEmit", "importsNotUsedAsValues", "jsx", "plugins", "moduleResolution", "lib", "module", "newLine", "target"]);
24
+ const compilerOpts = Object.assign(Object.assign({}, passThrough), { outDir: outputDir, declaration: generateDeclarations, moduleResolution: getModuleResolutionKind(moduleResolution), module: getModuleKind(module), target: getTarget(target), lib: lib, newLine: (newLine === null || newLine === void 0 ? void 0 : newLine.toLowerCase()) === "crlf"
25
+ ? ts_morph_1.NewLineKind.CarriageReturnLineFeed
26
+ : (newLine === null || newLine === void 0 ? void 0 : newLine.toLowerCase()) === "lf"
27
+ ? ts_morph_1.NewLineKind.LineFeed
28
+ : undefined });
29
+ return new ProjectManager(projectFiles, outputDir, emitMode, formatter, compilerOpts);
30
+ });
31
+ }
32
+ exports.createProjectManager = createProjectManager;
33
+ function getModuleResolutionKind(moduleResolution) {
34
+ const modRes = typeof moduleResolution === "string"
35
+ ? moduleResolution.toLowerCase() === "node"
36
+ ? "nodejs"
37
+ : moduleResolution.toLowerCase()
38
+ : undefined;
39
+ const matchedKey = Object.keys(ts_morph_1.ModuleResolutionKind).find((mk) => mk.toLowerCase() === modRes);
40
+ return matchedKey ? ts_morph_1.ModuleResolutionKind[matchedKey] : undefined;
41
+ }
42
+ function getModuleKind(module) {
43
+ const mod = typeof module === "string" ? module.toLowerCase() : undefined;
44
+ const matchedKey = Object.keys(typescript_1.ModuleKind).find((mk) => mk.toLowerCase() === mod);
45
+ return matchedKey ? typescript_1.ModuleKind[matchedKey] : undefined;
46
+ }
47
+ function getTarget(target) {
48
+ const t = typeof target === "string" ? target.toLowerCase() : undefined;
49
+ const matchedKey = Object.keys(ts_morph_1.ScriptTarget).find((st) => st.toLowerCase() === t);
50
+ return matchedKey ? ts_morph_1.ScriptTarget[matchedKey] : undefined;
51
+ }
52
+ const STATIC_SERVICE_DIR = "service";
53
+ class ProjectManager {
54
+ constructor(projectFiles, outputDir, emitMode, formatter, compilerOptions) {
55
+ this.projectFiles = projectFiles;
56
+ this.outputDir = outputDir;
57
+ this.emitMode = emitMode;
58
+ this.formatter = formatter;
59
+ this.files = {};
60
+ this.serviceFiles = [];
61
+ this.formatAndWriteFile = (file) => tslib_1.__awaiter(this, void 0, void 0, function* () {
62
+ const fileName = file.getFilePath();
63
+ const content = file.getFullText();
64
+ try {
65
+ const formatted = yield this.formatter.format(content);
66
+ try {
67
+ return (0, fs_extra_1.writeFile)(fileName, formatted);
68
+ }
69
+ catch (writeError) {
70
+ console.error(`Failed to write file [/${fileName}]`, writeError);
71
+ process.exit(3);
72
+ }
73
+ }
74
+ catch (formattingError) {
75
+ console.error("Formatting failed");
76
+ yield (0, fs_extra_1.writeFile)("error.log", formattingError);
77
+ process.exit(99);
78
+ }
79
+ });
80
+ // Create ts-morph project
81
+ this.project = new ts_morph_1.Project({
82
+ manipulationSettings: this.formatter.getSettings(),
83
+ skipAddingFilesFromTsConfig: true,
84
+ compilerOptions,
85
+ });
86
+ }
87
+ createFile(name) {
88
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
89
+ const fileName = path.join(this.outputDir, `${name}.ts`);
90
+ yield (0, fs_extra_1.remove)(fileName);
91
+ return this.project.createSourceFile(fileName);
92
+ });
93
+ }
94
+ createModelFile() {
95
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
96
+ this.files.model = yield this.createFile(this.projectFiles.model);
97
+ return this.getModelFile();
98
+ });
99
+ }
100
+ getModelFile() {
101
+ return this.files.model;
102
+ }
103
+ createQObjectFile() {
104
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
105
+ this.files.qobject = yield this.createFile(this.projectFiles.qObject);
106
+ return this.getQObjectFile();
107
+ });
108
+ }
109
+ getQObjectFile() {
110
+ return this.files.qobject;
111
+ }
112
+ createMainServiceFile() {
113
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
114
+ this.files.mainService = yield this.createFile(this.projectFiles.service);
115
+ return this.getMainServiceFile();
116
+ });
117
+ }
118
+ getMainServiceFile() {
119
+ return this.files.mainService;
120
+ }
121
+ getServiceDir() {
122
+ return path.join(this.outputDir, STATIC_SERVICE_DIR);
123
+ }
124
+ cleanServiceDir() {
125
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
126
+ return (0, fs_extra_1.emptyDir)(this.getServiceDir());
127
+ });
128
+ }
129
+ createServiceFile(name) {
130
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
131
+ const file = yield this.createFile(path.join(STATIC_SERVICE_DIR, name));
132
+ this.serviceFiles.push(file);
133
+ return file;
134
+ });
135
+ }
136
+ getServiceFiles() {
137
+ return this.serviceFiles;
138
+ }
139
+ writeFiles() {
140
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
141
+ switch (this.emitMode) {
142
+ case OptionModel_1.EmitModes.js:
143
+ case OptionModel_1.EmitModes.js_dts:
144
+ yield this.emitJsFiles();
145
+ break;
146
+ case OptionModel_1.EmitModes.dts:
147
+ yield this.emitJsFiles(true);
148
+ break;
149
+ case OptionModel_1.EmitModes.ts:
150
+ yield this.emitTsFiles();
151
+ break;
152
+ default:
153
+ throw new Error(`Emit mode "${this.emitMode}" is invalid!`);
154
+ }
155
+ });
156
+ }
157
+ emitJsFiles(declarationOnly) {
158
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
159
+ console.log(declarationOnly
160
+ ? "Emitting declaration files"
161
+ : `Emitting JS files (${this.emitMode === OptionModel_1.EmitModes.js_dts ? "including" : "without"} declaration files)`);
162
+ yield this.project.emit({ emitOnlyDtsFiles: !!declarationOnly });
163
+ /* for (const diagnostic of this.project.getPreEmitDiagnostics()) {
164
+ console.log(diagnostic.getMessageText());
165
+ } */
166
+ });
167
+ }
168
+ emitTsFiles() {
169
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
170
+ const files = [this.getModelFile(), this.getQObjectFile(), this.getMainServiceFile(), ...this.getServiceFiles()];
171
+ console.log(`Emitting ${files.length} TS files`);
172
+ return Promise.all([...files.filter((file) => !!file).map(this.formatAndWriteFile)]);
173
+ });
174
+ }
175
+ }
176
+ exports.ProjectManager = ProjectManager;
177
+ //# sourceMappingURL=ProjectManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectManager.js","sourceRoot":"","sources":["../../src/project/ProjectManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { ManipulationSettings } from "ts-morph";
2
+ import { FileFormatter } from "./FileFormatter";
3
+ /**
4
+ * Abstract formatter.
5
+ *
6
+ * @export
7
+ * @abstract
8
+ * @class Formatter
9
+ */
10
+ export declare abstract class BaseFormatter implements FileFormatter {
11
+ /**
12
+ * Path of the output file.
13
+ *
14
+ * @protected
15
+ * @type {string}
16
+ * @memberof Formatter
17
+ */
18
+ protected output: string;
19
+ /**
20
+ * Initialized ts-morph manipulation settings for project creation.
21
+ *
22
+ * @protected
23
+ * @type {Partial<ManipulationSettings>}
24
+ * @memberof Formatter
25
+ */
26
+ protected settings: Partial<ManipulationSettings>;
27
+ /**
28
+ * Default constructor
29
+ * @param {string} output Path of the output file
30
+ * @memberof Formatter
31
+ */
32
+ constructor(output: string);
33
+ /**
34
+ * Initializes the formatter.
35
+ *
36
+ * @abstract
37
+ * @returns {Promise<BaseFormatter>} Initialized formatter
38
+ * @memberof Formatter
39
+ */
40
+ abstract init(): Promise<BaseFormatter>;
41
+ /**
42
+ * Returns initialized ts-morph manipuation settings.
43
+ *
44
+ * @returns {Promise<Partial<ManipulationSettings>>} ts-morph manipulation settings
45
+ * @memberof Formatter
46
+ */
47
+ getSettings(): Partial<ManipulationSettings>;
48
+ abstract format(source: string): Promise<string>;
49
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseFormatter = void 0;
4
+ /**
5
+ * Abstract formatter.
6
+ *
7
+ * @export
8
+ * @abstract
9
+ * @class Formatter
10
+ */
11
+ class BaseFormatter {
12
+ /**
13
+ * Default constructor
14
+ * @param {string} output Path of the output file
15
+ * @memberof Formatter
16
+ */
17
+ constructor(output) {
18
+ this.output = output;
19
+ }
20
+ /**
21
+ * Returns initialized ts-morph manipuation settings.
22
+ *
23
+ * @returns {Promise<Partial<ManipulationSettings>>} ts-morph manipulation settings
24
+ * @memberof Formatter
25
+ */
26
+ getSettings() {
27
+ return this.settings;
28
+ }
29
+ }
30
+ exports.BaseFormatter = BaseFormatter;
31
+ //# sourceMappingURL=BaseFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseFormatter.js","sourceRoot":"","sources":["../../../src/project/formatter/BaseFormatter.ts"],"names":[],"mappings":";;;AAGA;;;;;;GAMG;AACH,MAAsB,aAAa;IAmBjC;;;;OAIG;IACH,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAWD;;;;;OAKG;IACI,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CAGF;AAhDD,sCAgDC"}
@@ -0,0 +1,16 @@
1
+ import { ManipulationSettings } from "ts-morph";
2
+ export interface FileFormatter {
3
+ /**
4
+ * Returns initialized ts-morph manipulation settings.
5
+ *
6
+ * @returns {Partial<ManipulationSettings>} ts-morph manipulation settings
7
+ */
8
+ getSettings(): Partial<ManipulationSettings>;
9
+ /**
10
+ * Formats a given source code.
11
+ *
12
+ * @param {string} source Source code to format
13
+ * @returns {string} Formatted source code
14
+ */
15
+ format(source: string): Promise<string>;
16
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=FileFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileFormatter.js","sourceRoot":"","sources":["../../../src/project/formatter/FileFormatter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { BaseFormatter } from "./BaseFormatter";
2
+ /**
3
+ * Prettier formatter.
4
+ *
5
+ * NOTE: Should be created like this => const formatter = await new NoopFormatter("./test.ts").init();
6
+ *
7
+ * @export
8
+ * @class NoopFormatter
9
+ * @extends {Formatter}
10
+ */
11
+ export declare class NoopFormatter extends BaseFormatter {
12
+ /**
13
+ * Initializes the formatter.
14
+ *
15
+ * @abstract
16
+ * @returns {Promise<Formatter>} Initialized formatter
17
+ * @memberof Formatter
18
+ */
19
+ init(): Promise<BaseFormatter>;
20
+ /**
21
+ * Formats a given source code.
22
+ *
23
+ * @abstract
24
+ * @param {string} source Source code to format
25
+ * @returns {string} Formatted source code
26
+ * @memberof Formatter
27
+ */
28
+ format(source: string): Promise<string>;
29
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoopFormatter = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const BaseFormatter_1 = require("./BaseFormatter");
6
+ /**
7
+ * Prettier formatter.
8
+ *
9
+ * NOTE: Should be created like this => const formatter = await new NoopFormatter("./test.ts").init();
10
+ *
11
+ * @export
12
+ * @class NoopFormatter
13
+ * @extends {Formatter}
14
+ */
15
+ class NoopFormatter extends BaseFormatter_1.BaseFormatter {
16
+ /**
17
+ * Initializes the formatter.
18
+ *
19
+ * @abstract
20
+ * @returns {Promise<Formatter>} Initialized formatter
21
+ * @memberof Formatter
22
+ */
23
+ init() {
24
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
25
+ return this;
26
+ });
27
+ }
28
+ /**
29
+ * Formats a given source code.
30
+ *
31
+ * @abstract
32
+ * @param {string} source Source code to format
33
+ * @returns {string} Formatted source code
34
+ * @memberof Formatter
35
+ */
36
+ format(source) {
37
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
38
+ return source;
39
+ });
40
+ }
41
+ }
42
+ exports.NoopFormatter = NoopFormatter;
43
+ //# sourceMappingURL=NoopFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoopFormatter.js","sourceRoot":"","sources":["../../../src/project/formatter/NoopFormatter.ts"],"names":[],"mappings":";;;;AAAA,mDAAgD;AAEhD;;;;;;;;GAQG;AACH,MAAa,aAAc,SAAQ,6BAAa;IAC9C;;;;;;OAMG;IACU,IAAI;;YACf,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,MAAM,CAAC,MAAc;;YAChC,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;CACF;AAvBD,sCAuBC"}
@@ -0,0 +1,46 @@
1
+ import { BaseFormatter } from "./BaseFormatter";
2
+ export declare class PrettierFormatter extends BaseFormatter {
3
+ /**
4
+ * Prettier options found in the project.
5
+ *
6
+ * @private
7
+ * @type {prettier.Options}
8
+ * @memberof PrettierFormatter
9
+ */
10
+ private options;
11
+ /**
12
+ * Initializes the formatter.
13
+ *
14
+ * @returns {Promise<PrettierFormatter>} Initialized formatter
15
+ * @memberof PrettierFormatter
16
+ */
17
+ init(): Promise<PrettierFormatter>;
18
+ /**
19
+ * Formats a given source code.
20
+ *
21
+ * @abstract
22
+ * @param {string} source Source code to format
23
+ * @returns {string} Formatted source code
24
+ * @memberof Formatter
25
+ */
26
+ format(source: string): Promise<string>;
27
+ /**
28
+ * Converts prettier indentation config to ts-morph settings.
29
+ *
30
+ * @private
31
+ * @param {boolean | undefined} useTabs Flag, whether to use tabs or not
32
+ * @param {number | undefined} tabWidth Width of a simulated tab, each number represents a space
33
+ * @returns {IndentationText} Converted indentation text
34
+ * @memberof PrettierFormatter
35
+ */
36
+ private convertIndentation;
37
+ /**
38
+ * Converts prettier newline config to ts-morph settings.
39
+ *
40
+ * @private
41
+ * @param {string | undefined} eol prettier end-of-line config
42
+ * @returns {NewLineKind | undefined} Converted new line kind
43
+ * @memberof PrettierFormatter
44
+ */
45
+ private convertNewline;
46
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrettierFormatter = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const prettier_1 = tslib_1.__importDefault(require("prettier"));
6
+ const ts_morph_1 = require("ts-morph");
7
+ const BaseFormatter_1 = require("./BaseFormatter");
8
+ class PrettierFormatter extends BaseFormatter_1.BaseFormatter {
9
+ /**
10
+ * Initializes the formatter.
11
+ *
12
+ * @returns {Promise<PrettierFormatter>} Initialized formatter
13
+ * @memberof PrettierFormatter
14
+ */
15
+ init() {
16
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
17
+ const options = yield prettier_1.default.resolveConfig(this.output);
18
+ if (options) {
19
+ this.options = options;
20
+ this.settings = {
21
+ indentationText: this.convertIndentation(this.options.useTabs, this.options.tabWidth),
22
+ insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: this.options.bracketSpacing !== undefined ? this.options.bracketSpacing : true,
23
+ newLineKind: this.convertNewline(this.options.endOfLine),
24
+ quoteKind: this.options.singleQuote ? ts_morph_1.QuoteKind.Single : ts_morph_1.QuoteKind.Double,
25
+ useTrailingCommas: this.options.trailingComma === "none" ? false : true,
26
+ };
27
+ }
28
+ else
29
+ this.settings = {};
30
+ return this;
31
+ });
32
+ }
33
+ /**
34
+ * Formats a given source code.
35
+ *
36
+ * @abstract
37
+ * @param {string} source Source code to format
38
+ * @returns {string} Formatted source code
39
+ * @memberof Formatter
40
+ */
41
+ format(source) {
42
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
43
+ return prettier_1.default.format(source, Object.assign({ parser: "typescript" }, this.options));
44
+ });
45
+ }
46
+ /**
47
+ * Converts prettier indentation config to ts-morph settings.
48
+ *
49
+ * @private
50
+ * @param {boolean | undefined} useTabs Flag, whether to use tabs or not
51
+ * @param {number | undefined} tabWidth Width of a simulated tab, each number represents a space
52
+ * @returns {IndentationText} Converted indentation text
53
+ * @memberof PrettierFormatter
54
+ */
55
+ convertIndentation(useTabs, tabWidth) {
56
+ if (useTabs)
57
+ return ts_morph_1.IndentationText.Tab;
58
+ switch (tabWidth) {
59
+ case 2:
60
+ return ts_morph_1.IndentationText.TwoSpaces;
61
+ case 4:
62
+ return ts_morph_1.IndentationText.FourSpaces;
63
+ case 8:
64
+ return ts_morph_1.IndentationText.EightSpaces;
65
+ default:
66
+ return ts_morph_1.IndentationText.TwoSpaces;
67
+ }
68
+ }
69
+ /**
70
+ * Converts prettier newline config to ts-morph settings.
71
+ *
72
+ * @private
73
+ * @param {string | undefined} eol prettier end-of-line config
74
+ * @returns {NewLineKind | undefined} Converted new line kind
75
+ * @memberof PrettierFormatter
76
+ */
77
+ convertNewline(eol) {
78
+ switch (eol) {
79
+ case "lf":
80
+ return ts_morph_1.NewLineKind.LineFeed;
81
+ case "crlf":
82
+ return ts_morph_1.NewLineKind.CarriageReturnLineFeed;
83
+ case "cr":
84
+ return ts_morph_1.NewLineKind.CarriageReturnLineFeed;
85
+ case "auto":
86
+ return ts_morph_1.NewLineKind.LineFeed;
87
+ default:
88
+ return ts_morph_1.NewLineKind.LineFeed;
89
+ }
90
+ }
91
+ }
92
+ exports.PrettierFormatter = PrettierFormatter;
93
+ //# sourceMappingURL=PrettierFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrettierFormatter.js","sourceRoot":"","sources":["../../../src/project/formatter/PrettierFormatter.ts"],"names":[],"mappings":";;;;AAAA,gEAAgC;AAChC,uCAAmE;AACnE,mDAAgD;AAEhD,MAAa,iBAAkB,SAAQ,6BAAa;IAUlD;;;;;OAKG;IACU,IAAI;;YACf,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE1D,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACvB,IAAI,CAAC,QAAQ,GAAG;oBACd,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;oBACrF,qDAAqD,EACnD,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;oBAChF,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;oBACxD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAS,CAAC,MAAM;oBACzE,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;iBACxE,CAAC;aACH;;gBAAM,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YAE1B,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,MAAM,CAAC,MAAc;;YAChC,OAAO,kBAAQ,CAAC,MAAM,CAAC,MAAM,kBAC3B,MAAM,EAAE,YAAY,IACjB,IAAI,CAAC,OAAO,EACf,CAAC;QACL,CAAC;KAAA;IAED;;;;;;;;OAQG;IACK,kBAAkB,CAAC,OAA4B,EAAE,QAA4B;QACnF,IAAI,OAAO;YAAE,OAAO,0BAAe,CAAC,GAAG,CAAC;QAExC,QAAQ,QAAQ,EAAE;YAChB,KAAK,CAAC;gBACJ,OAAO,0BAAe,CAAC,SAAS,CAAC;YACnC,KAAK,CAAC;gBACJ,OAAO,0BAAe,CAAC,UAAU,CAAC;YACpC,KAAK,CAAC;gBACJ,OAAO,0BAAe,CAAC,WAAW,CAAC;YACrC;gBACE,OAAO,0BAAe,CAAC,SAAS,CAAC;SACpC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,cAAc,CAAC,GAAuB;QAC5C,QAAQ,GAAG,EAAE;YACX,KAAK,IAAI;gBACP,OAAO,sBAAW,CAAC,QAAQ,CAAC;YAC9B,KAAK,MAAM;gBACT,OAAO,sBAAW,CAAC,sBAAsB,CAAC;YAC5C,KAAK,IAAI;gBACP,OAAO,sBAAW,CAAC,sBAAsB,CAAC;YAC5C,KAAK,MAAM;gBACT,OAAO,sBAAW,CAAC,QAAQ,CAAC;YAC9B;gBACE,OAAO,sBAAW,CAAC,QAAQ,CAAC;SAC/B;IACH,CAAC;CACF;AA/FD,8CA+FC"}
@@ -0,0 +1,2 @@
1
+ import type { FileFormatter } from "./FileFormatter";
2
+ export declare function createFormatter(outputDir: string, usePrettier: boolean): Promise<FileFormatter>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createFormatter = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const PrettierFormatter_1 = require("./PrettierFormatter");
6
+ const NoopFormatter_1 = require("./NoopFormatter");
7
+ function createFormatter(outputDir, usePrettier) {
8
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
+ const formatter = usePrettier ? new PrettierFormatter_1.PrettierFormatter(outputDir) : new NoopFormatter_1.NoopFormatter(outputDir);
10
+ yield formatter.init();
11
+ return formatter;
12
+ });
13
+ }
14
+ exports.createFormatter = createFormatter;
15
+ //# sourceMappingURL=index.js.map