@diia-inhouse/genproto 3.3.2 → 4.0.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/LICENCE.md +59 -59
- package/dist/command/index.js +11 -19
- package/dist/command/index.js.map +1 -1
- package/dist/command/javaCommandBuilder.js +2 -5
- package/dist/command/javaCommandBuilder.js.map +1 -1
- package/dist/command/pythonCommandBuilder.js +43 -53
- package/dist/command/pythonCommandBuilder.js.map +1 -1
- package/dist/command/tsCommandBuilder.js +65 -74
- package/dist/command/tsCommandBuilder.js.map +1 -1
- package/dist/genproto.js +31 -36
- package/dist/genproto.js.map +1 -1
- package/dist/logger.js +3 -6
- package/dist/logger.js.map +1 -1
- package/dist/types/command/index.d.ts +1 -1
- package/dist/types/command/javaCommandBuilder.d.ts +1 -1
- package/dist/types/command/pythonCommandBuilder.d.ts +3 -1
- package/dist/types/command/tsCommandBuilder.d.ts +3 -2
- package/dist/utils/index.js +29 -77
- package/dist/utils/index.js.map +1 -1
- package/package.json +28 -20
- package/src/command/index.ts +2 -3
- package/src/command/javaCommandBuilder.ts +1 -1
- package/src/command/pythonCommandBuilder.ts +24 -28
- package/src/command/tsCommandBuilder.ts +52 -55
- package/src/genproto.ts +10 -10
- package/src/logger.ts +2 -2
- package/src/utils/index.ts +16 -20
|
@@ -1,67 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
8
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
-
const glob_1 = require("glob");
|
|
10
|
-
const index_1 = require("./index");
|
|
11
|
-
const reservedWords = new Set([
|
|
12
|
-
'break',
|
|
13
|
-
'case',
|
|
14
|
-
'catch',
|
|
15
|
-
'class',
|
|
16
|
-
'const',
|
|
17
|
-
'continue',
|
|
18
|
-
'debugger',
|
|
19
|
-
'default',
|
|
20
|
-
'delete',
|
|
21
|
-
'do',
|
|
22
|
-
'else',
|
|
23
|
-
'enum',
|
|
24
|
-
'export',
|
|
25
|
-
'extends',
|
|
26
|
-
'false',
|
|
27
|
-
'finally',
|
|
28
|
-
'for',
|
|
29
|
-
'function',
|
|
30
|
-
'if',
|
|
31
|
-
'import',
|
|
32
|
-
'in',
|
|
33
|
-
'instanceof',
|
|
34
|
-
'new',
|
|
35
|
-
'null',
|
|
36
|
-
'return',
|
|
37
|
-
'super',
|
|
38
|
-
'switch',
|
|
39
|
-
'this',
|
|
40
|
-
'throw',
|
|
41
|
-
'true',
|
|
42
|
-
'try',
|
|
43
|
-
'typeof',
|
|
44
|
-
'var',
|
|
45
|
-
'void',
|
|
46
|
-
'while',
|
|
47
|
-
'with',
|
|
48
|
-
'yield',
|
|
49
|
-
'let',
|
|
50
|
-
'static',
|
|
51
|
-
'implements',
|
|
52
|
-
'interface',
|
|
53
|
-
'package',
|
|
54
|
-
'private',
|
|
55
|
-
'protected',
|
|
56
|
-
'public',
|
|
57
|
-
]);
|
|
58
|
-
class TsCommandBuilder extends index_1.CommandBuilder {
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { glob } from 'glob';
|
|
5
|
+
import { CommandBuilder, Platform } from './index.js';
|
|
6
|
+
export default class TsCommandBuilder extends CommandBuilder {
|
|
59
7
|
logger;
|
|
60
8
|
generateClient;
|
|
61
9
|
rootDir;
|
|
62
10
|
outputDir;
|
|
63
11
|
protoPaths;
|
|
64
12
|
javaModule;
|
|
13
|
+
static reservedWords = new Set([
|
|
14
|
+
'break',
|
|
15
|
+
'case',
|
|
16
|
+
'catch',
|
|
17
|
+
'class',
|
|
18
|
+
'const',
|
|
19
|
+
'continue',
|
|
20
|
+
'debugger',
|
|
21
|
+
'default',
|
|
22
|
+
'delete',
|
|
23
|
+
'do',
|
|
24
|
+
'else',
|
|
25
|
+
'enum',
|
|
26
|
+
'export',
|
|
27
|
+
'extends',
|
|
28
|
+
'false',
|
|
29
|
+
'finally',
|
|
30
|
+
'for',
|
|
31
|
+
'function',
|
|
32
|
+
'if',
|
|
33
|
+
'import',
|
|
34
|
+
'in',
|
|
35
|
+
'instanceof',
|
|
36
|
+
'new',
|
|
37
|
+
'null',
|
|
38
|
+
'return',
|
|
39
|
+
'super',
|
|
40
|
+
'switch',
|
|
41
|
+
'this',
|
|
42
|
+
'throw',
|
|
43
|
+
'true',
|
|
44
|
+
'try',
|
|
45
|
+
'typeof',
|
|
46
|
+
'var',
|
|
47
|
+
'void',
|
|
48
|
+
'while',
|
|
49
|
+
'with',
|
|
50
|
+
'yield',
|
|
51
|
+
'let',
|
|
52
|
+
'static',
|
|
53
|
+
'implements',
|
|
54
|
+
'interface',
|
|
55
|
+
'package',
|
|
56
|
+
'private',
|
|
57
|
+
'protected',
|
|
58
|
+
'public',
|
|
59
|
+
]);
|
|
65
60
|
// By default ts plugin should be linked to .bin dir but in case if it doesn't
|
|
66
61
|
// try to look it up in "standard" locations
|
|
67
62
|
tsPluginLocations = [
|
|
@@ -82,8 +77,7 @@ class TsCommandBuilder extends index_1.CommandBuilder {
|
|
|
82
77
|
const pluginLocations = [];
|
|
83
78
|
for (const location of this.tsPluginLocations) {
|
|
84
79
|
try {
|
|
85
|
-
// eslint
|
|
86
|
-
await promises_1.default.realpath(location); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
80
|
+
await fs.realpath(location); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
87
81
|
}
|
|
88
82
|
catch {
|
|
89
83
|
continue;
|
|
@@ -97,10 +91,10 @@ class TsCommandBuilder extends index_1.CommandBuilder {
|
|
|
97
91
|
if ((await this.isFileExists('package.json')) &&
|
|
98
92
|
!(await this.isFileExists('build.gradle')) &&
|
|
99
93
|
!(await this.isFileExists('build.gradle.kts'))) {
|
|
100
|
-
projectPlatform =
|
|
94
|
+
projectPlatform = Platform.ts;
|
|
101
95
|
}
|
|
102
96
|
else if ((await this.isFileExists('build.gradle')) || (await this.isFileExists('build.gradle.kts'))) {
|
|
103
|
-
projectPlatform =
|
|
97
|
+
projectPlatform = Platform.java;
|
|
104
98
|
}
|
|
105
99
|
else {
|
|
106
100
|
throw new Error('Unable to identify platform type no package.json or build.gradle found');
|
|
@@ -110,14 +104,14 @@ class TsCommandBuilder extends index_1.CommandBuilder {
|
|
|
110
104
|
let dependenciesPattern;
|
|
111
105
|
let designSystemProtoPath = '';
|
|
112
106
|
switch (projectPlatform) {
|
|
113
|
-
case
|
|
107
|
+
case Platform.java: {
|
|
114
108
|
typesProtoPath = `./${this.javaModule ?? '.'}/build/extracted-protos/main/`;
|
|
115
|
-
typesSubPaths = [
|
|
109
|
+
typesSubPaths = [this.javaModule ?? '.', 'build', 'extracted-protos', 'main'];
|
|
116
110
|
dependenciesPattern = `${this.javaModule ?? '.'}/build/extracted-protos/main/**/*.proto`;
|
|
117
|
-
|
|
111
|
+
execSync(`./gradlew ${this.javaModule ?? ''}:extractProto`, { stdio: 'pipe' });
|
|
118
112
|
break;
|
|
119
113
|
}
|
|
120
|
-
case
|
|
114
|
+
case Platform.ts: {
|
|
121
115
|
typesProtoPath = './node_modules/@diia-inhouse/types/dist/proto/';
|
|
122
116
|
typesSubPaths = ['dist', 'proto', '@diia-inhouse', 'types', 'design-system'];
|
|
123
117
|
designSystemProtoPath = './node_modules/@diia-inhouse/design-system/dist/proto';
|
|
@@ -171,17 +165,15 @@ class TsCommandBuilder extends index_1.CommandBuilder {
|
|
|
171
165
|
return command;
|
|
172
166
|
}
|
|
173
167
|
async postProcess() {
|
|
174
|
-
const files = await
|
|
168
|
+
const files = await glob(path.join(this.outputDir, '**/*.ts'));
|
|
175
169
|
for (const file of files) {
|
|
176
|
-
// eslint
|
|
177
|
-
const content = await promises_1.default.readFile(file, 'utf8'); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
170
|
+
const content = await fs.readFile(file, 'utf8'); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
178
171
|
if (!content.includes('export namespace ')) {
|
|
179
172
|
continue;
|
|
180
173
|
}
|
|
181
174
|
const result = this.stripReservedWordTypeAliases(content);
|
|
182
175
|
if (result !== content) {
|
|
183
|
-
// eslint
|
|
184
|
-
await promises_1.default.writeFile(file, result); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
176
|
+
await fs.writeFile(file, result); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
185
177
|
}
|
|
186
178
|
}
|
|
187
179
|
}
|
|
@@ -211,7 +203,7 @@ class TsCommandBuilder extends index_1.CommandBuilder {
|
|
|
211
203
|
}
|
|
212
204
|
if (insideNamespace) {
|
|
213
205
|
const match = line.match(/^\s*export type (\w+) = typeof /);
|
|
214
|
-
if (match && reservedWords.has(match[1])) {
|
|
206
|
+
if (match && TsCommandBuilder.reservedWords.has(match[1])) {
|
|
215
207
|
continue;
|
|
216
208
|
}
|
|
217
209
|
hasNonReservedMember = true;
|
|
@@ -222,7 +214,7 @@ class TsCommandBuilder extends index_1.CommandBuilder {
|
|
|
222
214
|
}
|
|
223
215
|
async isFileExists(file) {
|
|
224
216
|
try {
|
|
225
|
-
await
|
|
217
|
+
await fs.access(file, fs.constants.F_OK);
|
|
226
218
|
}
|
|
227
219
|
catch {
|
|
228
220
|
return false;
|
|
@@ -230,5 +222,4 @@ class TsCommandBuilder extends index_1.CommandBuilder {
|
|
|
230
222
|
return true;
|
|
231
223
|
}
|
|
232
224
|
}
|
|
233
|
-
exports.default = TsCommandBuilder;
|
|
234
225
|
//# sourceMappingURL=tsCommandBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsCommandBuilder.js","sourceRoot":"","sources":["../../src/command/tsCommandBuilder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tsCommandBuilder.js","sourceRoot":"","sources":["../../src/command/tsCommandBuilder.ts"],"names":[],"mappings":"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"}
|
package/dist/genproto.js
CHANGED
|
@@ -1,29 +1,25 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const pythonCommandBuilder_1 = __importDefault(require("./command/pythonCommandBuilder"));
|
|
15
|
-
const tsCommandBuilder_1 = __importDefault(require("./command/tsCommandBuilder"));
|
|
16
|
-
const logger_1 = __importDefault(require("./logger"));
|
|
17
|
-
const utils_1 = __importDefault(require("./utils"));
|
|
2
|
+
import { execSync } from 'node:child_process';
|
|
3
|
+
import fs from 'node:fs';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { lookpath } from 'lookpath';
|
|
6
|
+
import yargs from 'yargs';
|
|
7
|
+
import { hideBin } from 'yargs/helpers';
|
|
8
|
+
import { Platform } from './command/index.js';
|
|
9
|
+
import JavaCommandBuilder from './command/javaCommandBuilder.js';
|
|
10
|
+
import PythonCommandBuilder from './command/pythonCommandBuilder.js';
|
|
11
|
+
import TsCommandBuilder from './command/tsCommandBuilder.js';
|
|
12
|
+
import Logger from './logger.js';
|
|
13
|
+
import Utils from './utils/index.js';
|
|
18
14
|
async function main() {
|
|
19
|
-
const protocExists = await
|
|
15
|
+
const protocExists = await lookpath('protoc');
|
|
20
16
|
if (!protocExists) {
|
|
21
17
|
throw new Error("Couldn't find protoc in PATH");
|
|
22
18
|
}
|
|
23
|
-
const options = await
|
|
19
|
+
const options = await yargs(hideBin(process.argv))
|
|
24
20
|
.usage('$0 --rootDir dirname --outputDir dirname')
|
|
25
21
|
.option('v', { type: 'boolean', default: false })
|
|
26
|
-
.option('platform', { type: 'string', default:
|
|
22
|
+
.option('platform', { type: 'string', default: Platform.ts })
|
|
27
23
|
.option('generateClient', { type: 'boolean', default: false })
|
|
28
24
|
.option('rootDir', { type: 'string', default: 'proto' })
|
|
29
25
|
.option('outputDir', { type: 'string', default: 'src/generated' })
|
|
@@ -38,31 +34,30 @@ async function main() {
|
|
|
38
34
|
})
|
|
39
35
|
.option('javaModule', { type: 'string', default: '' }).argv;
|
|
40
36
|
const { v, platform, generateClient, rootDir, outputDir, indexToDirs = [outputDir], protoPaths = [], javaModule } = options;
|
|
41
|
-
const logger = new
|
|
42
|
-
const outputAbsoluteDir =
|
|
37
|
+
const logger = new Logger(v);
|
|
38
|
+
const outputAbsoluteDir = path.resolve(outputDir);
|
|
43
39
|
try {
|
|
44
|
-
await
|
|
40
|
+
await fs.promises.access(outputAbsoluteDir);
|
|
45
41
|
logger.log(`Removing directory ${outputAbsoluteDir}...`);
|
|
46
|
-
await
|
|
42
|
+
await fs.promises.rm(outputAbsoluteDir, { recursive: true });
|
|
47
43
|
}
|
|
48
44
|
catch {
|
|
49
45
|
logger.log(`Directory ${outputAbsoluteDir} doesn't exist`);
|
|
50
46
|
}
|
|
51
47
|
logger.log(`Creating directory ${outputAbsoluteDir}...`);
|
|
52
|
-
// eslint
|
|
53
|
-
await node_fs_1.default.promises.mkdir(outputDir, { recursive: true }); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
48
|
+
await fs.promises.mkdir(outputDir, { recursive: true }); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
54
49
|
let commandBuilder;
|
|
55
50
|
switch (platform) {
|
|
56
|
-
case
|
|
57
|
-
commandBuilder = new
|
|
51
|
+
case Platform.java: {
|
|
52
|
+
commandBuilder = new JavaCommandBuilder(logger, generateClient, rootDir, outputDir, protoPaths);
|
|
58
53
|
break;
|
|
59
54
|
}
|
|
60
|
-
case
|
|
61
|
-
commandBuilder = new
|
|
55
|
+
case Platform.ts: {
|
|
56
|
+
commandBuilder = new TsCommandBuilder(logger, generateClient, rootDir, outputDir, protoPaths, javaModule);
|
|
62
57
|
break;
|
|
63
58
|
}
|
|
64
|
-
case
|
|
65
|
-
commandBuilder = new
|
|
59
|
+
case Platform.python: {
|
|
60
|
+
commandBuilder = new PythonCommandBuilder(logger, generateClient, rootDir, outputDir, protoPaths);
|
|
66
61
|
break;
|
|
67
62
|
}
|
|
68
63
|
default: {
|
|
@@ -73,18 +68,18 @@ async function main() {
|
|
|
73
68
|
logger.logDebug(command.join(' '));
|
|
74
69
|
try {
|
|
75
70
|
// ignore stdout but print stderr in exception handler
|
|
76
|
-
|
|
71
|
+
execSync(command.join(' '), { stdio: 'pipe' });
|
|
77
72
|
if (indexToDirs.length > 0) {
|
|
78
73
|
logger.log('Start to generate index files...');
|
|
79
74
|
for (const dir of indexToDirs) {
|
|
80
75
|
try {
|
|
81
|
-
const indexDir =
|
|
82
|
-
await
|
|
76
|
+
const indexDir = path.resolve(dir);
|
|
77
|
+
await fs.promises.access(indexDir);
|
|
83
78
|
logger.log(`Generating index.ts for directory: ${indexDir}`);
|
|
84
|
-
await
|
|
79
|
+
await Utils.generateIndexForDirectory(indexDir, rootDir);
|
|
85
80
|
}
|
|
86
81
|
catch (err) {
|
|
87
|
-
logger.log(`Error processing directory ${dir}: ${err}`);
|
|
82
|
+
logger.log(`Error processing directory ${dir}: ${err instanceof Error ? err.message : String(err)}`);
|
|
88
83
|
}
|
|
89
84
|
}
|
|
90
85
|
}
|
package/dist/genproto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genproto.js","sourceRoot":"","sources":["../src/genproto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"genproto.js","sourceRoot":"","sources":["../src/genproto.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.js
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class Logger {
|
|
1
|
+
export default class Logger {
|
|
4
2
|
logEnabled;
|
|
5
3
|
constructor(logEnabled) {
|
|
6
4
|
this.logEnabled = logEnabled;
|
|
7
5
|
}
|
|
8
6
|
log(...message) {
|
|
9
|
-
//
|
|
7
|
+
// oxlint-disable-next-line eslint/no-console
|
|
10
8
|
console.log(...message);
|
|
11
9
|
}
|
|
12
10
|
logDebug(...message) {
|
|
13
11
|
if (!this.logEnabled) {
|
|
14
12
|
return;
|
|
15
13
|
}
|
|
16
|
-
//
|
|
14
|
+
// oxlint-disable-next-line eslint/no-console
|
|
17
15
|
console.log(...message);
|
|
18
16
|
}
|
|
19
17
|
}
|
|
20
|
-
exports.default = Logger;
|
|
21
18
|
//# sourceMappingURL=logger.js.map
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,MAAM;IACN,UAAU,CAAS;IAEpC,YAAY,UAAmB;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAChC,CAAC;IAED,GAAG,CAAC,GAAG,OAAiB;QACpB,6CAA6C;QAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;IAC3B,CAAC;IAED,QAAQ,CAAC,GAAG,OAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,OAAM;QACV,CAAC;QAED,6CAA6C;QAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;IAC3B,CAAC;CACJ"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { CommandBuilder } from './index';
|
|
1
|
+
import { CommandBuilder } from './index.js';
|
|
2
2
|
export default class PythonCommandBuilder extends CommandBuilder {
|
|
3
|
+
static readonly importRegex: RegExp;
|
|
4
|
+
static readonly slashPrefix: RegExp;
|
|
3
5
|
private cardinalDependencies;
|
|
4
6
|
protocCommand(): Promise<string[]>;
|
|
5
7
|
postProcess(): Promise<void>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import Logger from '../logger';
|
|
2
|
-
import { CommandBuilder } from './index';
|
|
1
|
+
import Logger from '../logger.js';
|
|
2
|
+
import { CommandBuilder } from './index.js';
|
|
3
3
|
export default class TsCommandBuilder extends CommandBuilder {
|
|
4
4
|
protected readonly logger: Logger;
|
|
5
5
|
protected readonly generateClient: boolean;
|
|
@@ -7,6 +7,7 @@ export default class TsCommandBuilder extends CommandBuilder {
|
|
|
7
7
|
protected readonly outputDir: string;
|
|
8
8
|
protected readonly protoPaths: string[];
|
|
9
9
|
private javaModule?;
|
|
10
|
+
private static readonly reservedWords;
|
|
10
11
|
private tsPluginLocations;
|
|
11
12
|
constructor(logger: Logger, generateClient: boolean, rootDir: string, outputDir: string, protoPaths: string[], javaModule?: string | undefined);
|
|
12
13
|
getProtoTsPluginLocation(): Promise<string | undefined>;
|
package/dist/utils/index.js
CHANGED
|
@@ -1,45 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const node_events_1 = require("node:events");
|
|
40
|
-
const node_fs_1 = __importStar(require("node:fs"));
|
|
41
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
42
|
-
const node_readline_1 = require("node:readline");
|
|
1
|
+
import { once } from 'node:events';
|
|
2
|
+
import syncFs, { promises as fs } from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { createInterface } from 'node:readline';
|
|
43
5
|
/**
|
|
44
6
|
* Extract exported symbol names from a ts-proto generated TypeScript file.
|
|
45
7
|
* Returns arrays of value exports and type-only exports separately.
|
|
@@ -49,31 +11,27 @@ const node_readline_1 = require("node:readline");
|
|
|
49
11
|
function extractExportedNames(content) {
|
|
50
12
|
const valueSet = new Set();
|
|
51
13
|
const typeSet = new Set();
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
while ((match = exportRegex.exec(content)) !== null) {
|
|
57
|
-
if (match[2]) {
|
|
58
|
-
valueSet.add(match[2]);
|
|
14
|
+
const exportRegex = /^export\s+(?:(?:const|let|var|function|enum|class)\s+(\w+)|(?:interface|type)\s+(\w+))/gm;
|
|
15
|
+
for (const match of content.matchAll(exportRegex)) {
|
|
16
|
+
if (match[1]) {
|
|
17
|
+
valueSet.add(match[1]);
|
|
59
18
|
}
|
|
60
|
-
else if (match[
|
|
61
|
-
typeSet.add(match[
|
|
19
|
+
else if (match[2]) {
|
|
20
|
+
typeSet.add(match[2]);
|
|
62
21
|
}
|
|
63
22
|
}
|
|
64
23
|
const pureTypeNames = [...typeSet].filter((n) => !valueSet.has(n));
|
|
65
24
|
return { valueNames: [...valueSet], typeNames: pureTypeNames };
|
|
66
25
|
}
|
|
67
|
-
|
|
26
|
+
export default {
|
|
68
27
|
async generateIndexForDirectory(dir, protoRoot = './proto') {
|
|
69
28
|
const exportLines = [];
|
|
70
29
|
const exportedNames = new Set();
|
|
71
30
|
const recursivePaths = async (realpath) => {
|
|
72
|
-
// eslint
|
|
73
|
-
const items = await node_fs_1.promises.readdir(realpath, { withFileTypes: true }); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
31
|
+
const items = await fs.readdir(realpath, { withFileTypes: true }); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
74
32
|
let paths = [];
|
|
75
33
|
for (const item of items) {
|
|
76
|
-
const resPath =
|
|
34
|
+
const resPath = path.resolve(realpath, item.name);
|
|
77
35
|
if (item.isDirectory()) {
|
|
78
36
|
paths = [...paths, ...(await recursivePaths(resPath))];
|
|
79
37
|
}
|
|
@@ -84,9 +42,8 @@ exports.default = {
|
|
|
84
42
|
return paths;
|
|
85
43
|
};
|
|
86
44
|
for (const recPaths of await recursivePaths(dir)) {
|
|
87
|
-
// eslint
|
|
88
|
-
const
|
|
89
|
-
const rl = (0, node_readline_1.createInterface)({
|
|
45
|
+
const stream = syncFs.createReadStream(recPaths); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
46
|
+
const rl = createInterface({
|
|
90
47
|
input: stream,
|
|
91
48
|
crlfDelay: Infinity,
|
|
92
49
|
});
|
|
@@ -95,29 +52,26 @@ exports.default = {
|
|
|
95
52
|
const matchArr = line.match(/^\/\/ source: (.+)$/);
|
|
96
53
|
if (matchArr) {
|
|
97
54
|
const protoFile = matchArr[1];
|
|
98
|
-
const protofilepath =
|
|
99
|
-
//
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
103
|
-
const contents = node_fs_1.default.readFileSync(protofilepath); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
55
|
+
const protofilepath = path.resolve(protoRoot, protoFile);
|
|
56
|
+
const exists = syncFs.existsSync(protofilepath); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
57
|
+
if (exists) {
|
|
58
|
+
const contents = syncFs.readFileSync(protofilepath); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
104
59
|
ownPackage = contents.includes('package ua.gov.diia');
|
|
105
60
|
}
|
|
106
61
|
}
|
|
107
62
|
});
|
|
108
|
-
await
|
|
63
|
+
await once(rl, 'close');
|
|
109
64
|
stream.destroy();
|
|
110
|
-
const fileName =
|
|
111
|
-
const parentDirName =
|
|
112
|
-
const fileNameWithPrefix =
|
|
113
|
-
const fileNameWithoutExt =
|
|
114
|
-
const relativePath =
|
|
115
|
-
const relativeDir =
|
|
65
|
+
const fileName = path.basename(recPaths, path.extname(recPaths));
|
|
66
|
+
const parentDirName = path.basename(path.dirname(recPaths));
|
|
67
|
+
const fileNameWithPrefix = path.join(parentDirName, fileName);
|
|
68
|
+
const fileNameWithoutExt = path.basename(recPaths, '.ts');
|
|
69
|
+
const relativePath = path.relative(dir, recPaths).replace('.ts', '.js');
|
|
70
|
+
const relativeDir = path.dirname(relativePath);
|
|
116
71
|
const importPath = relativeDir === '.' ? `./${fileNameWithoutExt}.js` : `./${relativePath}`;
|
|
117
72
|
if (ownPackage) {
|
|
118
73
|
// Read file and extract exported names to avoid re-export conflicts (TS2308)
|
|
119
|
-
// eslint
|
|
120
|
-
const content = await node_fs_1.promises.readFile(recPaths, 'utf8'); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
74
|
+
const content = await fs.readFile(recPaths, 'utf8'); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
121
75
|
const { valueNames, typeNames } = extractExportedNames(content);
|
|
122
76
|
const uniqueValues = valueNames.filter((n) => !exportedNames.has(n));
|
|
123
77
|
const uniqueTypes = typeNames.filter((n) => !exportedNames.has(n));
|
|
@@ -136,15 +90,13 @@ exports.default = {
|
|
|
136
90
|
}
|
|
137
91
|
}
|
|
138
92
|
else {
|
|
139
|
-
// eslint-disable-next-line unicorn/prefer-string-replace-all
|
|
140
93
|
const namespace = fileNameWithPrefix.replace(/[/\\]/g, '_').replace(/[^\w$]/g, '_');
|
|
141
94
|
exportLines.push(`export * as ${namespace} from '${importPath}';`);
|
|
142
95
|
}
|
|
143
96
|
}
|
|
144
97
|
if (exportLines.length > 0) {
|
|
145
|
-
const indexFilePath =
|
|
146
|
-
// eslint
|
|
147
|
-
await node_fs_1.promises.writeFile(indexFilePath, exportLines.join('\n\n') + '\n'); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
98
|
+
const indexFilePath = path.join(dir, 'index.ts');
|
|
99
|
+
await fs.writeFile(indexFilePath, `${exportLines.join('\n\n')}\n`); // nosemgrep: eslint.detect-non-literal-fs-filename
|
|
148
100
|
}
|
|
149
101
|
},
|
|
150
102
|
};
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
|