@sap-cloud-sdk/generator-common 2.10.0 → 2.10.1-20221104014415.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.
- package/CHANGELOG.md +8 -0
- package/dist/compiler.d.ts +5 -1
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +24 -2
- package/dist/compiler.js.map +1 -1
- package/dist/file-writer/create-file.d.ts +38 -1
- package/dist/file-writer/create-file.d.ts.map +1 -1
- package/dist/file-writer/create-file.js +94 -11
- package/dist/file-writer/create-file.js.map +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
package/dist/compiler.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CompilerOptions } from 'typescript';
|
|
2
|
+
import { CreateFileOptions } from './file-writer';
|
|
2
3
|
/**
|
|
3
4
|
* Executes the TypeScript compilation for the given directory.
|
|
4
5
|
* It recursively compiles all files ending with .ts
|
|
@@ -7,7 +8,10 @@ import { CompilerOptions } from 'typescript';
|
|
|
7
8
|
* @param includeExclude - Included and excluded files for compilation
|
|
8
9
|
* @internal
|
|
9
10
|
*/
|
|
10
|
-
export declare function transpileDirectory(path: string, compilerOptions
|
|
11
|
+
export declare function transpileDirectory(path: string, { compilerOptions, createFileOptions }: {
|
|
12
|
+
compilerOptions: CompilerOptions;
|
|
13
|
+
createFileOptions: CreateFileOptions;
|
|
14
|
+
}, includeExclude?: IncludeExclude): Promise<void>;
|
|
11
15
|
interface IncludeExclude {
|
|
12
16
|
include: string[];
|
|
13
17
|
exclude: string[];
|
package/dist/compiler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,eAAe,
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,eAAe,EAUhB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAc,iBAAiB,EAAoB,MAAM,eAAe,CAAC;AAKhF;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,EACE,eAAe,EACf,iBAAiB,EAClB,EAAE;IAAE,eAAe,EAAE,eAAe,CAAC;IAAC,iBAAiB,EAAE,iBAAiB,CAAA;CAAE,EAC7E,cAAc,GAAE,cAAsC,GACrD,OAAO,CAAC,IAAI,CAAC,CA8Df;AA6DD,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAOD;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAMrC;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,eAAe,CAAC,CAsB1B"}
|
package/dist/compiler.js
CHANGED
|
@@ -7,7 +7,9 @@ const os_1 = require("os");
|
|
|
7
7
|
const util_1 = require("@sap-cloud-sdk/util");
|
|
8
8
|
const typescript_1 = require("typescript");
|
|
9
9
|
const glob_1 = require("glob");
|
|
10
|
+
const file_writer_1 = require("./file-writer");
|
|
10
11
|
const logger = (0, util_1.createLogger)('compiler');
|
|
12
|
+
const { writeFile, mkdir } = fs_1.promises;
|
|
11
13
|
/**
|
|
12
14
|
* Executes the TypeScript compilation for the given directory.
|
|
13
15
|
* It recursively compiles all files ending with .ts
|
|
@@ -16,7 +18,7 @@ const logger = (0, util_1.createLogger)('compiler');
|
|
|
16
18
|
* @param includeExclude - Included and excluded files for compilation
|
|
17
19
|
* @internal
|
|
18
20
|
*/
|
|
19
|
-
async function transpileDirectory(path, compilerOptions, includeExclude = defaultIncludeExclude) {
|
|
21
|
+
async function transpileDirectory(path, { compilerOptions, createFileOptions }, includeExclude = defaultIncludeExclude) {
|
|
20
22
|
logger.verbose(`Transpiling files in the directory: ${path} started.`);
|
|
21
23
|
const includes = includeExclude.include.length > 1
|
|
22
24
|
? `{${includeExclude.include.join(',')}}`
|
|
@@ -29,7 +31,27 @@ async function transpileDirectory(path, compilerOptions, includeExclude = defaul
|
|
|
29
31
|
cwd: path
|
|
30
32
|
}).found;
|
|
31
33
|
const program = await (0, typescript_1.createProgram)(allFiles2.map(file => (0, path_1.resolve)(path, file)), compilerOptions);
|
|
32
|
-
|
|
34
|
+
// The write file handler does not support async function hence the work around with the outer promise list.
|
|
35
|
+
const fileWriterPromises = [];
|
|
36
|
+
const prettierWriter = (fileName, text, writeByteOrderMark, onError, sourceFiles, data) => {
|
|
37
|
+
const parsed = (0, path_1.parse)(fileName);
|
|
38
|
+
const promise = mkdir(parsed.dir, { recursive: true }).then(async () => {
|
|
39
|
+
// The transpile process creates `.map.js`, `.js` and `.d.ts` files
|
|
40
|
+
// All not emitted files like .md or .json should be already formatted using prettier on creation.
|
|
41
|
+
// Formatting .js files could break source map -> skip these.
|
|
42
|
+
// The .map files are not human-readable and formatting increases file size -> skip these.
|
|
43
|
+
const usePrettier = createFileOptions.usePrettier === false
|
|
44
|
+
? false
|
|
45
|
+
: (0, file_writer_1.getFileExtension)(fileName) === 'd.ts';
|
|
46
|
+
return (0, file_writer_1.createFile)(parsed.dir, parsed.base, text, {
|
|
47
|
+
...createFileOptions,
|
|
48
|
+
usePrettier
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
fileWriterPromises.push(promise);
|
|
52
|
+
};
|
|
53
|
+
const emitResult = program.emit(undefined, prettierWriter);
|
|
54
|
+
await Promise.all(fileWriterPromises);
|
|
33
55
|
const allDiagnostics = (0, typescript_1.getPreEmitDiagnostics)(program).concat(emitResult.diagnostics);
|
|
34
56
|
if (allDiagnostics.length > 0) {
|
|
35
57
|
throw new Error(`Compilation Errors:${os_1.EOL}${getErrorList(allDiagnostics).join(os_1.EOL)}`);
|
package/dist/compiler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":";;;AAAA,+BAAsC;AACtC,2BAA0C;AAC1C,2BAAyB;AACzB,8CAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,40 @@
|
|
|
1
|
+
import { Options as PrettierOptions } from 'prettier';
|
|
2
|
+
/**
|
|
3
|
+
* Options for the creation of a file.
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export interface CreateFileOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Flag to indicate if the file is overwritten.
|
|
9
|
+
*/
|
|
10
|
+
overwrite: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Path to the prettier config with respect to the process.cwd().
|
|
13
|
+
*/
|
|
14
|
+
prettierOptions: PrettierOptions;
|
|
15
|
+
/**
|
|
16
|
+
* Flag to indicate if the file is formatted using prettier - Default is true.
|
|
17
|
+
*/
|
|
18
|
+
usePrettier?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare const defaultPrettierConfig: PrettierOptions;
|
|
24
|
+
/**
|
|
25
|
+
* Read the prettier config and caches it.
|
|
26
|
+
* @param prettierConfigPath - Path to the prettier config.
|
|
27
|
+
* @returns Config or default.
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
export declare function readPrettierConfig(prettierConfigPath: string | undefined): Promise<PrettierOptions>;
|
|
31
|
+
/**
|
|
32
|
+
* This method considers also double dots like `.map.js`
|
|
33
|
+
* @param fileName
|
|
34
|
+
* @returns The complete file extension containing multiple dots
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
export declare function getFileExtension(fileName: string): string;
|
|
1
38
|
/**
|
|
2
39
|
* Write a file generated by the SAP Cloud SDK for JavaScript.
|
|
3
40
|
* @param directoryPath - Path of the directory to write to.
|
|
@@ -7,5 +44,5 @@
|
|
|
7
44
|
* @param withCopyright - Whether the generated file contains the copyright information.
|
|
8
45
|
* @internal
|
|
9
46
|
*/
|
|
10
|
-
export declare function createFile(directoryPath: string, fileName: string, content: string,
|
|
47
|
+
export declare function createFile(directoryPath: string, fileName: string, content: string, options: CreateFileOptions): Promise<void>;
|
|
11
48
|
//# sourceMappingURL=create-file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-file.d.ts","sourceRoot":"","sources":["../../src/file-writer/create-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-file.d.ts","sourceRoot":"","sources":["../../src/file-writer/create-file.ts"],"names":[],"mappings":"AAQA,OAAiB,EAEf,OAAO,IAAI,eAAe,EAC3B,MAAM,UAAU,CAAC;AAMlB;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC;IACjC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAKnC,CAAC;AAIF;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,kBAAkB,EAAE,MAAM,GAAG,SAAS,GACrC,OAAO,CAAC,eAAe,CAAC,CAmB1B;AAeD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEzD;AA8BD;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC9B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
|
|
@@ -1,11 +1,92 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createFile = void 0;
|
|
4
|
-
const fs_1 = require("fs");
|
|
6
|
+
exports.createFile = exports.getFileExtension = exports.readPrettierConfig = exports.defaultPrettierConfig = void 0;
|
|
5
7
|
const path_1 = require("path");
|
|
8
|
+
const fs_1 = require("fs");
|
|
6
9
|
const util_1 = require("@sap-cloud-sdk/util");
|
|
10
|
+
const prettier_1 = __importDefault(require("prettier"));
|
|
7
11
|
const util_2 = require("../util");
|
|
8
|
-
const { writeFile } = fs_1.promises;
|
|
12
|
+
const { writeFile, readFile } = fs_1.promises;
|
|
13
|
+
const logger = (0, util_1.createLogger)('create-file');
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
exports.defaultPrettierConfig = {
|
|
18
|
+
singleQuote: true,
|
|
19
|
+
trailingComma: 'none',
|
|
20
|
+
arrowParens: 'avoid',
|
|
21
|
+
endOfLine: 'lf'
|
|
22
|
+
};
|
|
23
|
+
const prettierConfigCache = {};
|
|
24
|
+
/**
|
|
25
|
+
* Read the prettier config and caches it.
|
|
26
|
+
* @param prettierConfigPath - Path to the prettier config.
|
|
27
|
+
* @returns Config or default.
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
async function readPrettierConfig(prettierConfigPath) {
|
|
31
|
+
if (prettierConfigPath && prettierConfigCache[prettierConfigPath]) {
|
|
32
|
+
return prettierConfigCache[prettierConfigPath];
|
|
33
|
+
}
|
|
34
|
+
if (prettierConfigPath) {
|
|
35
|
+
try {
|
|
36
|
+
const config = await readFile(prettierConfigPath, { encoding: 'utf-8' });
|
|
37
|
+
prettierConfigCache[prettierConfigPath] = JSON.parse(config);
|
|
38
|
+
return prettierConfigCache[prettierConfigPath];
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
logger.warn(`Prettier config file not found: ${prettierConfigPath} - default is used.`);
|
|
42
|
+
return exports.defaultPrettierConfig;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
logger.debug('Default prettier config is used.');
|
|
46
|
+
return exports.defaultPrettierConfig;
|
|
47
|
+
}
|
|
48
|
+
exports.readPrettierConfig = readPrettierConfig;
|
|
49
|
+
const fileParserMap = {
|
|
50
|
+
ts: 'typescript',
|
|
51
|
+
md: 'markdown',
|
|
52
|
+
json: 'json',
|
|
53
|
+
js: 'espree',
|
|
54
|
+
mdx: 'mdx',
|
|
55
|
+
yml: 'yaml',
|
|
56
|
+
yaml: 'yaml',
|
|
57
|
+
'd.ts': 'typescript',
|
|
58
|
+
'js.map': 'json',
|
|
59
|
+
'd.ts.map': 'json'
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* This method considers also double dots like `.map.js`
|
|
63
|
+
* @param fileName
|
|
64
|
+
* @returns The complete file extension containing multiple dots
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
function getFileExtension(fileName) {
|
|
68
|
+
return (0, path_1.parse)(fileName).base.split('.').slice(1).join('.');
|
|
69
|
+
}
|
|
70
|
+
exports.getFileExtension = getFileExtension;
|
|
71
|
+
async function formatWithPrettier(fileName, content, prettierOptions) {
|
|
72
|
+
const fileExtension = getFileExtension(fileName);
|
|
73
|
+
const parser = fileParserMap[fileExtension];
|
|
74
|
+
if (parser) {
|
|
75
|
+
return prettier_1.default.format(content, { ...prettierOptions, parser });
|
|
76
|
+
}
|
|
77
|
+
logger.info(`No prettier-parser configured for file ${fileName} - skip prettier.`);
|
|
78
|
+
return content;
|
|
79
|
+
}
|
|
80
|
+
function addCopyrightHeader(content, withCopyright) {
|
|
81
|
+
if (!withCopyright) {
|
|
82
|
+
return content;
|
|
83
|
+
}
|
|
84
|
+
return (0, util_1.codeBlock) `
|
|
85
|
+
${(0, util_2.getCopyrightHeader)()}
|
|
86
|
+
${content}
|
|
87
|
+
${util_1.unixEOL}
|
|
88
|
+
`;
|
|
89
|
+
}
|
|
9
90
|
/**
|
|
10
91
|
* Write a file generated by the SAP Cloud SDK for JavaScript.
|
|
11
92
|
* @param directoryPath - Path of the directory to write to.
|
|
@@ -15,9 +96,17 @@ const { writeFile } = fs_1.promises;
|
|
|
15
96
|
* @param withCopyright - Whether the generated file contains the copyright information.
|
|
16
97
|
* @internal
|
|
17
98
|
*/
|
|
18
|
-
async function createFile(directoryPath, fileName, content,
|
|
99
|
+
async function createFile(directoryPath, fileName, content, options) {
|
|
100
|
+
const { overwrite, prettierOptions, usePrettier = true } = options;
|
|
19
101
|
try {
|
|
20
|
-
|
|
102
|
+
// Our copyright header is only valid for source files i.e. typescript.
|
|
103
|
+
const withCopyright = getFileExtension(fileName) === 'ts' ||
|
|
104
|
+
getFileExtension(fileName) === 'd.ts';
|
|
105
|
+
let adjusted = addCopyrightHeader(content, withCopyright);
|
|
106
|
+
if (usePrettier) {
|
|
107
|
+
adjusted = await formatWithPrettier(fileName, adjusted, prettierOptions);
|
|
108
|
+
}
|
|
109
|
+
return await writeFile((0, path_1.join)(directoryPath, fileName), adjusted, {
|
|
21
110
|
encoding: 'utf8',
|
|
22
111
|
flag: overwrite ? 'w' : 'wx'
|
|
23
112
|
});
|
|
@@ -30,10 +119,4 @@ async function createFile(directoryPath, fileName, content, overwrite, withCopyr
|
|
|
30
119
|
}
|
|
31
120
|
}
|
|
32
121
|
exports.createFile = createFile;
|
|
33
|
-
function wrapContent(content) {
|
|
34
|
-
return ((0, util_1.codeBlock) `
|
|
35
|
-
${(0, util_2.getCopyrightHeader)()}
|
|
36
|
-
${content}
|
|
37
|
-
` + util_1.unixEOL);
|
|
38
|
-
}
|
|
39
122
|
//# sourceMappingURL=create-file.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-file.js","sourceRoot":"","sources":["../../src/file-writer/create-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-file.js","sourceRoot":"","sources":["../../src/file-writer/create-file.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sap-cloud-sdk/generator-common",
|
|
3
|
-
"version": "2.10.0",
|
|
3
|
+
"version": "2.10.1-20221104014415.0",
|
|
4
4
|
"description": "SAP Cloud SDK for JavaScript common functions of OData client generator and OpenAPI clint generator.",
|
|
5
5
|
"homepage": "https://sap.github.io/cloud-sdk/docs/js/overview-cloud-sdk-for-javascript",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -37,11 +37,12 @@
|
|
|
37
37
|
"readme": "ts-node ../../scripts/replace-common-readme.ts"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@sap-cloud-sdk/util": "^2.10.0",
|
|
40
|
+
"@sap-cloud-sdk/util": "^2.10.1-20221104014415.0",
|
|
41
41
|
"fast-levenshtein": "~3.0.0",
|
|
42
42
|
"fs-extra": "^10.0.0",
|
|
43
43
|
"glob": "^8.0.1",
|
|
44
|
-
"typescript": "~4.8.4"
|
|
44
|
+
"typescript": "~4.8.4",
|
|
45
|
+
"prettier": "^2.7.1"
|
|
45
46
|
},
|
|
46
47
|
"devDependencies": {
|
|
47
48
|
"mock-fs": "^5.2.0"
|