lee-tr-cli 1.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/dist/bin/lee-tr.js +139 -0
- package/dist/bin/lee-tr.js.map +1 -0
- package/dist/command/add.js +2 -0
- package/dist/command/add.js.map +1 -0
- package/dist/command/t.js +160 -0
- package/dist/command/t.js.map +1 -0
- package/dist/common/data/constant.js +14 -0
- package/dist/common/data/constant.js.map +1 -0
- package/dist/common/data/sample/default.js +6 -0
- package/dist/common/data/sample/default.js.map +1 -0
- package/dist/common/data/sample/default.json +3 -0
- package/dist/common/data/sample/defaultCommon.js +3 -0
- package/dist/common/data/sample/defaultCommon.js.map +1 -0
- package/dist/common/data/sample/defaultJson.json +1 -0
- package/dist/common/data/sample/defaultModule.js +4 -0
- package/dist/common/data/sample/defaultModule.js.map +1 -0
- package/dist/common/data/sample/defaults.js +5 -0
- package/dist/common/data/sample/defaults.js.map +1 -0
- package/dist/common/data/types/config.js +3 -0
- package/dist/common/data/types/config.js.map +1 -0
- package/dist/common/data/types/lang.js +24 -0
- package/dist/common/data/types/lang.js.map +1 -0
- package/dist/common/helper/command.js +13 -0
- package/dist/common/helper/command.js.map +1 -0
- package/dist/common/helper/common.js +19 -0
- package/dist/common/helper/common.js.map +1 -0
- package/dist/common/helper/file.js +113 -0
- package/dist/common/helper/file.js.map +1 -0
- package/dist/common/helper/logger.js +15 -0
- package/dist/common/helper/logger.js.map +1 -0
- package/dist/common/helper/translate.js +14 -0
- package/dist/common/helper/translate.js.map +1 -0
- package/package.json +26 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
// Helper
|
|
8
|
+
const command_1 = require("../common/helper/command");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const logger_1 = require("../common/helper/logger");
|
|
11
|
+
const file_1 = require("../common/helper/file");
|
|
12
|
+
const t_1 = require("../command/t");
|
|
13
|
+
const os_1 = __importDefault(require("os"));
|
|
14
|
+
const lang_1 = require("../common/data/types/lang");
|
|
15
|
+
const constant_1 = __importDefault(require("../common/data/constant"));
|
|
16
|
+
function unMounted() {
|
|
17
|
+
/**
|
|
18
|
+
* Global validation
|
|
19
|
+
*/
|
|
20
|
+
const filePath = (0, command_1.getValueOfCommand)(constant_1.default.COMMAND.CONFIG_FILE_PATH) || path_1.default.resolve(process.cwd(), constant_1.default.DEFAULT_CONFIG_PATH);
|
|
21
|
+
// Logic
|
|
22
|
+
const configJson = (0, file_1.readJsonFile)(filePath);
|
|
23
|
+
if (!configJson)
|
|
24
|
+
return;
|
|
25
|
+
async function cleanup(reason) {
|
|
26
|
+
const tmpPath = os_1.default.tmpdir();
|
|
27
|
+
const prefix = constant_1.default.PREFIX;
|
|
28
|
+
try {
|
|
29
|
+
for (const locale of configJson.locales) {
|
|
30
|
+
let text = undefined;
|
|
31
|
+
try {
|
|
32
|
+
text = await (0, file_1.readTextFile)(path_1.default.join(tmpPath, prefix + "-" + locale.lang));
|
|
33
|
+
text = JSON.parse(text || "{}");
|
|
34
|
+
}
|
|
35
|
+
catch { }
|
|
36
|
+
if (text) {
|
|
37
|
+
const textJson = JSON.parse(text);
|
|
38
|
+
await (0, file_1.writeFile)(configJson.type, path_1.default.join(process.cwd(), configJson.localePath, locale.file), textJson);
|
|
39
|
+
// await deleteFile( path.join( tmpPath, prefix + "-" + locale.lang ) );
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
(0, logger_1.loggerWarning)(`Cleanup reason:\n${reason}`);
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
(0, logger_1.loggerWarning)(`Cleanup failed:\n${String(err)}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
process.on('SIGINT', async () => {
|
|
49
|
+
await cleanup('SIGINT');
|
|
50
|
+
process.exit(0);
|
|
51
|
+
});
|
|
52
|
+
process.on('SIGTERM', async () => {
|
|
53
|
+
await cleanup('SIGTERM');
|
|
54
|
+
process.exit(0);
|
|
55
|
+
});
|
|
56
|
+
process.on('exit', (code) => {
|
|
57
|
+
// cleanup(`exit:${code}`);
|
|
58
|
+
});
|
|
59
|
+
process.on('uncaughtException', async (err) => {
|
|
60
|
+
console.error(err);
|
|
61
|
+
await cleanup('uncaughtException');
|
|
62
|
+
process.exit(1);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
async function bootstrap() {
|
|
66
|
+
// Global var
|
|
67
|
+
const cmd = process.argv?.[2];
|
|
68
|
+
/**
|
|
69
|
+
* Global validation
|
|
70
|
+
*/
|
|
71
|
+
const filePath = (0, command_1.getValueOfCommand)(constant_1.default.COMMAND.CONFIG_FILE_PATH) ||
|
|
72
|
+
path_1.default.resolve(process.cwd(), constant_1.default.DEFAULT_CONFIG_PATH);
|
|
73
|
+
// Logic
|
|
74
|
+
const configJson = (0, file_1.readJsonFile)(filePath);
|
|
75
|
+
if (!configJson)
|
|
76
|
+
return;
|
|
77
|
+
// package type
|
|
78
|
+
if (!configJson?.type) {
|
|
79
|
+
(0, logger_1.loggerError)("Type not existing");
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (!["commonjs", "module", "json"].includes(configJson?.type)) {
|
|
83
|
+
(0, logger_1.loggerError)("Type must be commonjs, module, json not existing");
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
// Locale path
|
|
87
|
+
if (!configJson?.localePath) {
|
|
88
|
+
(0, logger_1.loggerError)("Configuration { localePath: '' } not existing");
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
// Locals list
|
|
92
|
+
if (!configJson?.locales ||
|
|
93
|
+
(Array.isArray(configJson?.locales) && !configJson?.locales?.length)) {
|
|
94
|
+
(0, logger_1.loggerError)("Configuration { locales: '' } not existing");
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
// Checking lang key
|
|
98
|
+
for (const local of configJson.locales) {
|
|
99
|
+
if (!lang_1.LANGUAGE_CODES.includes(local.lang.toLocaleLowerCase())) {
|
|
100
|
+
(0, logger_1.loggerError)(`lang: "${local.lang}" is not exiting. check more on docs.`);
|
|
101
|
+
process.exit(0);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// check local path existing
|
|
105
|
+
for (const locale of configJson.locales) {
|
|
106
|
+
const errorMessage = `${locale?.file} not existing`;
|
|
107
|
+
try {
|
|
108
|
+
const existing = await (0, file_1.isFileExisting)(path_1.default.join(configJson?.localePath, locale?.file));
|
|
109
|
+
if (!existing) {
|
|
110
|
+
(0, logger_1.loggerError)(errorMessage);
|
|
111
|
+
process.exit(0);
|
|
112
|
+
}
|
|
113
|
+
if (!((configJson?.type == "json" && locale?.file?.includes(".json")) ||
|
|
114
|
+
(configJson?.type == "commonjs" && locale?.file?.includes(".js")) ||
|
|
115
|
+
(configJson?.type == "module" && locale?.file?.includes(".ts")))) {
|
|
116
|
+
(0, logger_1.loggerError)(`Config type and file not match format. check docs more details`);
|
|
117
|
+
process.exit(0);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
(0, logger_1.loggerError)(errorMessage);
|
|
122
|
+
process.exit(0);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Command switch case
|
|
126
|
+
switch (cmd) {
|
|
127
|
+
case "t":
|
|
128
|
+
(0, t_1.startTApp)();
|
|
129
|
+
break;
|
|
130
|
+
case "add":
|
|
131
|
+
break;
|
|
132
|
+
default:
|
|
133
|
+
(0, logger_1.loggerError)("Command not existing. please try --help for more detail");
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
bootstrap();
|
|
138
|
+
unMounted();
|
|
139
|
+
//# sourceMappingURL=lee-tr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lee-tr.js","sourceRoot":"","sources":["../../src/bin/lee-tr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/command/add.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
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
|
+
exports.startTApp = startTApp;
|
|
40
|
+
const command_1 = require("../common/helper/command");
|
|
41
|
+
const file_1 = require("../common/helper/file");
|
|
42
|
+
const path_1 = __importDefault(require("path"));
|
|
43
|
+
const logger_1 = require("../common/helper/logger");
|
|
44
|
+
const clipboardy_1 = __importDefault(require("clipboardy"));
|
|
45
|
+
const translate_1 = require("../common/helper/translate");
|
|
46
|
+
const constant_1 = __importDefault(require("../common/data/constant"));
|
|
47
|
+
const common_1 = require("../common/helper/common");
|
|
48
|
+
const os_1 = __importDefault(require("os"));
|
|
49
|
+
async function startTApp() {
|
|
50
|
+
// Global var
|
|
51
|
+
const LIMIT_OF_TRANSLATE_KEYS = constant_1.default.LIMIT_OF_TRANSLATE_KEYS;
|
|
52
|
+
const filePath = (0, command_1.getValueOfCommand)(constant_1.default.COMMAND.CONFIG_FILE_PATH) || path_1.default.resolve(process.cwd(), constant_1.default.DEFAULT_CONFIG_PATH);
|
|
53
|
+
const defaultKeys = process.argv?.[3];
|
|
54
|
+
let keys = '';
|
|
55
|
+
try {
|
|
56
|
+
(0, logger_1.logger)("Checking translate keys...");
|
|
57
|
+
keys = defaultKeys?.trim() || await clipboardy_1.default.read();
|
|
58
|
+
(0, logger_1.logger)("Checked translate keys");
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
(0, logger_1.loggerError)('Translate keys must be valid.' + ' ' + e?.message);
|
|
62
|
+
process.exit(0);
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const afterTranslateKey = await (0, translate_1.getTranslate)({
|
|
66
|
+
text: keys
|
|
67
|
+
});
|
|
68
|
+
const afterSliceKey = (defaultKeys ? afterTranslateKey : afterTranslateKey?.slice(0, LIMIT_OF_TRANSLATE_KEYS));
|
|
69
|
+
if (afterSliceKey) {
|
|
70
|
+
const value = (0, common_1.removeSpaceAndSpacialChar)(afterSliceKey);
|
|
71
|
+
keys = value;
|
|
72
|
+
(0, logger_1.logger)(`Your translate keys (${value})`);
|
|
73
|
+
}
|
|
74
|
+
;
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
(0, logger_1.loggerError)(e?.message);
|
|
78
|
+
process.exit(0);
|
|
79
|
+
}
|
|
80
|
+
// Logic
|
|
81
|
+
const configJson = (0, file_1.readJsonFile)(filePath);
|
|
82
|
+
if (!configJson)
|
|
83
|
+
return;
|
|
84
|
+
const isJson = configJson?.type == "json";
|
|
85
|
+
let translate = {};
|
|
86
|
+
let tempTranslate = {};
|
|
87
|
+
for (const locale of configJson.locales) {
|
|
88
|
+
try {
|
|
89
|
+
const filePath = path_1.default.join(process.cwd(), configJson?.localePath, locale?.file);
|
|
90
|
+
let text = undefined;
|
|
91
|
+
try {
|
|
92
|
+
text = isJson
|
|
93
|
+
?
|
|
94
|
+
(await Promise.resolve(`${filePath}`).then(s => __importStar(require(s))))?.default
|
|
95
|
+
:
|
|
96
|
+
(await Promise.resolve(`${filePath}`).then(s => __importStar(require(s))))?.default;
|
|
97
|
+
}
|
|
98
|
+
catch { }
|
|
99
|
+
if (!text || !Object.keys(text)?.length) {
|
|
100
|
+
const sampleText = await (0, file_1.getSampleFile)(configJson?.type);
|
|
101
|
+
translate[locale?.file] = sampleText;
|
|
102
|
+
tempTranslate[locale?.file] = sampleText;
|
|
103
|
+
await (0, file_1.writeTempFile)(path_1.default.join(os_1.default.tmpdir(), constant_1.default.PREFIX + "-" + locale.lang), JSON.stringify(sampleText || "{}"));
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
translate[locale?.file] = text;
|
|
107
|
+
tempTranslate[locale?.file] = text;
|
|
108
|
+
await (0, file_1.writeTempFile)(path_1.default.join(os_1.default.tmpdir(), constant_1.default.PREFIX + "-" + locale.lang), JSON.stringify(text || "{}"));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch (e) {
|
|
112
|
+
(0, logger_1.loggerError)(e?.message || "Something wen wrong");
|
|
113
|
+
process.exit(0);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Clear tmp value
|
|
117
|
+
tempTranslate = {};
|
|
118
|
+
// Read Value
|
|
119
|
+
let value = "";
|
|
120
|
+
try {
|
|
121
|
+
value = await clipboardy_1.default.read();
|
|
122
|
+
if (!value.trim()) {
|
|
123
|
+
(0, logger_1.loggerError)("The translate text must be not only whitespace or space");
|
|
124
|
+
process.exit(0);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
(0, logger_1.loggerError)("Your copied board must be not empty. " + e?.message);
|
|
129
|
+
process.exit(0);
|
|
130
|
+
}
|
|
131
|
+
// Translate
|
|
132
|
+
for (const locale of configJson.locales) {
|
|
133
|
+
try {
|
|
134
|
+
const valueTran = await (0, translate_1.getTranslate)({
|
|
135
|
+
text: value,
|
|
136
|
+
from: "auto-detect",
|
|
137
|
+
to: locale.lang
|
|
138
|
+
});
|
|
139
|
+
if (!!!Object.keys(translate).find(d => d.toLocaleLowerCase() == keys.toLocaleLowerCase())) {
|
|
140
|
+
translate[locale.file] = {
|
|
141
|
+
...translate[locale.file],
|
|
142
|
+
[keys]: valueTran
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch (e) {
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
for (const tran of Object.entries(translate)) {
|
|
150
|
+
try {
|
|
151
|
+
const writePath = path_1.default.join(process.cwd(), configJson.localePath, tran[0]);
|
|
152
|
+
await (0, file_1.writeFile)(configJson.type, writePath, tran[1]);
|
|
153
|
+
}
|
|
154
|
+
catch (e) {
|
|
155
|
+
(0, logger_1.loggerError)(e?.message);
|
|
156
|
+
process.exit(0);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=t.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"t.js","sourceRoot":"","sources":["../../src/command/t.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,8BAiHC;AA5HD,sDAA6D;AAC7D,gDAA4G;AAC5G,gDAAwB;AACxB,oDAA8D;AAE9D,4DAAoC;AACpC,0DAA0D;AAC1D,uEAA+C;AAC/C,oDAA0E;AAC1E,4CAAoB;AAEb,KAAK,UAAU,SAAS;IAC3B,aAAa;IACb,MAAM,uBAAuB,GAAG,kBAAQ,CAAC,uBAAuB,CAAC;IACjE,MAAM,QAAQ,GAAG,IAAA,2BAAiB,EAAC,kBAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAQ,CAAC,mBAAmB,CAAC,CAAC;IACnI,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,IAAI,CAAC;QACD,IAAA,eAAM,EAAC,4BAA4B,CAAC,CAAC;QACrC,IAAI,GAAG,WAAW,EAAE,IAAI,EAAE,IAAI,MAAM,oBAAU,CAAC,IAAI,EAAE,CAAC;QACtD,IAAA,eAAM,EAAC,wBAAwB,CAAC,CAAC;IACrC,CAAC;IAAC,OAAM,CAAM,EAAE,CAAC;QACb,IAAA,oBAAW,EAAC,+BAA+B,GAAG,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC;QACD,MAAM,iBAAiB,GAAG,MAAM,IAAA,wBAAY,EAAC;YACzC,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;QACH,MAAM,aAAa,GAAI,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAChH,IAAG,aAAa,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,IAAA,kCAAyB,EAAC,aAAa,CAAC,CAAC;YACvD,IAAI,GAAG,KAAK,CAAC;YACb,IAAA,eAAM,EAAC,wBAAwB,KAAK,GAAG,CAAC,CAAC;QAC7C,CAAC;QAAA,CAAC;IACN,CAAC;IAAA,OAAM,CAAM,EAAE,CAAC;QACZ,IAAA,oBAAW,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,QAAQ;IACR,MAAM,UAAU,GAAG,IAAA,mBAAY,EAAC,QAAQ,CAAY,CAAC;IACrD,IAAI,CAAC,UAAU;QAAG,OAAO;IAEzB,MAAM,MAAM,GAAG,UAAU,EAAE,IAAI,IAAI,MAAM,CAAC;IAE1C,IAAI,SAAS,GAAqB,EAAE,CAAC;IACrC,IAAI,aAAa,GAAqB,EAAE,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,OAAO,EAAG,CAAC;QACvC,IAAG,CAAC;YACA,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAE,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAE,CAAC;YAClF,IAAI,IAAI,GAAG,SAAS,CAAC;YACrB,IAAG,CAAC;gBACA,IAAI,GAAG,MAAM;oBACG,CAAC;wBACG,CAAC,yBAAc,QAAQ,uCAAE,CAAC,EAAE,OAAO;oBACvC,CAAC;wBACG,CAAC,yBAAc,QAAQ,uCAAE,CAAC,EAAE,OAAO,CAAA;YAC3D,CAAC;YAAA,MAAM,CAAC,CAAA,CAAC;YACT,IAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAG,CAAC;gBACtC,MAAM,UAAU,GAAG,MAAM,IAAA,oBAAa,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACzD,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC;gBACrC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC;gBACzC,MAAM,IAAA,oBAAa,EAAE,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,kBAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1H,CAAC;iBAAM,CAAC;gBACJ,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC/B,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;gBACnC,MAAM,IAAA,oBAAa,EAAE,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,kBAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;YACpH,CAAC;QACL,CAAC;QAAA,OAAM,CAAM,EAAE,CAAC;YACZ,IAAA,oBAAW,EAAC,CAAC,EAAE,OAAO,IAAI,qBAAqB,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,aAAa,GAAG,EAAE,CAAC;IAEnB,aAAa;IACb,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,CAAC;QACD,KAAK,GAAG,MAAM,oBAAU,CAAC,IAAI,EAAE,CAAC;QAChC,IAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACf,IAAA,oBAAW,EAAC,yDAAyD,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAAC,OAAM,CAAM,EAAE,CAAC;QACb,IAAA,oBAAW,EAAC,uCAAuC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,YAAY;IACZ,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAY,EAAC;gBACjC,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,aAAa;gBACnB,EAAE,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAG,CAAC;gBAC1F,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;oBACrB,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;oBACzB,CAAC,IAAI,CAAC,EAAE,SAAS;iBACpB,CAAA;YACL,CAAC;QAGL,CAAC;QAAC,OAAM,CAAM,EAAE,CAAC;QAEjB,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAG,CAAC;QAC5C,IAAG,CAAC;YACA,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAE,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,MAAM,IAAA,gBAAS,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;QAAA,OAAM,CAAM,EAAE,CAAC;YACZ,IAAA,oBAAW,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
PREFIX: "lee-tr",
|
|
5
|
+
LIMIT_OF_TRANSLATE_KEYS: 25,
|
|
6
|
+
DEFAULT_CONFIG_PATH: "lee-tr/config.json",
|
|
7
|
+
COMMAND: {
|
|
8
|
+
CONFIG_FILE_PATH: "--filePath"
|
|
9
|
+
},
|
|
10
|
+
FORMAT: {
|
|
11
|
+
SPACE: 2
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../../src/common/data/constant.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,MAAM,EAAE,QAAQ;IAChB,uBAAuB,EAAE,EAAE;IAC3B,mBAAmB,EAAE,oBAAoB;IACzC,OAAO,EAAE;QACP,gBAAgB,EAAE,YAAY;KAC/B;IACD,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;KACT;CACF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../../src/common/data/sample/default.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,IAAI,EAAE,QAAQ;CACf,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultCommon.js","sourceRoot":"","sources":["../../../../src/common/data/sample/defaultCommon.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultModule.js","sourceRoot":"","sources":["../../../../src/common/data/sample/defaultModule.ts"],"names":[],"mappings":";;AAAA,kBAAe,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../../src/common/data/sample/defaults.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,IAAI,EAAE,QAAQ;CACf,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/common/data/types/config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LANGUAGE_CODES = void 0;
|
|
4
|
+
exports.LANGUAGE_CODES = [
|
|
5
|
+
"auto-detect", "ace", "af", "sq", "am", "ar", "arz", "ary", "arb", "hy",
|
|
6
|
+
"as", "ast", "az", "ban", "bn", "ba", "eu", "bbc", "be", "bho", "bik",
|
|
7
|
+
"brx", "bs", "bg", "yue", "ca", "ceb", "hne", "lzh", "zh-Hans", "zh-Hant",
|
|
8
|
+
"co", "hr", "cs", "da", "prs", "dv", "doi", "nl", "en", "en-GB", "epo",
|
|
9
|
+
"et", "fo", "fj", "fil", "fi", "fr", "fr-CA", "fy", "fur", "gl", "lug",
|
|
10
|
+
"ka", "de", "el", "gu", "ht", "ha", "he", "hil", "hi", "mww", "hu",
|
|
11
|
+
"iba", "is", "ig", "ilo", "id", "ikt", "iu", "iu-Latn", "ga", "it",
|
|
12
|
+
"jam", "ja", "jav", "kea", "kn", "pam", "ks", "kk", "km", "rw",
|
|
13
|
+
"tlh-Latn", "gom", "ko", "kri", "ku", "kmr", "ky", "lo", "la", "lv",
|
|
14
|
+
"lij", "lim", "ln", "lt", "lmo", "dsb", "lb", "mk", "mai", "mg", "ms",
|
|
15
|
+
"ml", "mt", "mr", "mwr", "mfe", "min", "mn-Cyrl", "mn-Mong", "my",
|
|
16
|
+
"mi", "ne", "nb", "nno", "nya", "oc", "or", "pap", "ps", "fa", "pl",
|
|
17
|
+
"pt", "pt-PT", "pa", "pnb", "otq", "ro", "run", "ru", "sm", "sa",
|
|
18
|
+
"srd", "sr-Cyrl", "sr-Latn", "st", "nso", "tn", "crs", "sn", "scn",
|
|
19
|
+
"sd", "si", "sk", "sl", "so", "es", "su", "sw", "sv", "ty", "tgk",
|
|
20
|
+
"ta", "tt", "te", "tet", "th", "bo", "ti", "tpi", "to", "tr", "tk",
|
|
21
|
+
"uk", "hsb", "ur", "ug", "uz", "vec", "vi", "war", "cy", "xh", "ydd",
|
|
22
|
+
"yo", "yua", "zu"
|
|
23
|
+
];
|
|
24
|
+
//# sourceMappingURL=lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lang.js","sourceRoot":"","sources":["../../../../src/common/data/types/lang.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI;IACvE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;IACrE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK;IACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK;IACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI;IAClE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI;IAClE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9D,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACnE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI;IACrE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI;IACjE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACnE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAChE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK;IAClE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;IACjE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;IACpE,IAAI,EAAE,KAAK,EAAE,IAAI;CACT,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getValueOfCommand = getValueOfCommand;
|
|
4
|
+
function getValueOfCommand(command) {
|
|
5
|
+
const commands = process.argv;
|
|
6
|
+
for (const com of (commands || [])) {
|
|
7
|
+
const [keys, value] = com?.split?.("=");
|
|
8
|
+
if (keys == command) {
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/common/helper/command.ts"],"names":[],"mappings":";;AAAA,8CAQC;AARD,SAAgB,iBAAiB,CAAC,OAAe;IAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAG,CAAC;QAClC,MAAM,CAAE,IAAI,EAAE,KAAK,CAAE,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,IAAI,IAAI,OAAO,EAAG,CAAC;YACnB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.wait = void 0;
|
|
7
|
+
exports.removeSpaceAndSpacialChar = removeSpaceAndSpacialChar;
|
|
8
|
+
const constant_1 = __importDefault(require("../data/constant"));
|
|
9
|
+
function removeSpaceAndSpacialChar(text) {
|
|
10
|
+
text = text.replace(/\{.*?\}/g, "");
|
|
11
|
+
const formattedText = text.replace(/[^\w\s]/g, "") // Remove special characters
|
|
12
|
+
.split(" ") // Split into words
|
|
13
|
+
.map((word, index) => index === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
14
|
+
.join(""); // Join without any spaces
|
|
15
|
+
return formattedText.slice(0, constant_1.default.LIMIT_OF_TRANSLATE_KEYS); // Limit to 20 characters
|
|
16
|
+
}
|
|
17
|
+
const wait = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
18
|
+
exports.wait = wait;
|
|
19
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/common/helper/common.ts"],"names":[],"mappings":";;;;;;AAEA,8DAUC;AAZD,gEAAwC;AAExC,SAAgB,yBAAyB,CAAC,IAAY;IACpD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,4BAA4B;SAC5E,KAAK,CAAC,GAAG,CAAC,CAAC,mBAAmB;SAC9B,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACnB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAC9F;SACA,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,0BAA0B;IAEvC,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC,yBAAyB;AAC5F,CAAC;AAEM,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAA7E,QAAA,IAAI,QAAyE"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.readJsonFile = readJsonFile;
|
|
7
|
+
exports.readTextFile = readTextFile;
|
|
8
|
+
exports.isFileExisting = isFileExisting;
|
|
9
|
+
exports.readSampleFile = readSampleFile;
|
|
10
|
+
exports.getSampleFile = getSampleFile;
|
|
11
|
+
exports.writeFile = writeFile;
|
|
12
|
+
exports.writeTempFile = writeTempFile;
|
|
13
|
+
exports.deleteFile = deleteFile;
|
|
14
|
+
const fs_1 = __importDefault(require("fs"));
|
|
15
|
+
const path_1 = __importDefault(require("path"));
|
|
16
|
+
const logger_1 = require("./logger");
|
|
17
|
+
const defaultJson_json_1 = __importDefault(require("../data/sample/defaultJson.json"));
|
|
18
|
+
const defaultModule_1 = __importDefault(require("../data/sample/defaultModule"));
|
|
19
|
+
const constant_1 = __importDefault(require("../data/constant"));
|
|
20
|
+
const sampleDefaultCommon = require("../data/sample/defaultCommon");
|
|
21
|
+
function readJsonFile(path) {
|
|
22
|
+
try {
|
|
23
|
+
const res = fs_1.default.readFileSync(path, {
|
|
24
|
+
encoding: "utf8"
|
|
25
|
+
});
|
|
26
|
+
return JSON.parse(res || "{}");
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
(0, logger_1.loggerError)(e?.message);
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async function readTextFile(path) {
|
|
34
|
+
try {
|
|
35
|
+
const res = await fs_1.default.readFileSync(path, {
|
|
36
|
+
encoding: "utf8"
|
|
37
|
+
});
|
|
38
|
+
return res;
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async function isFileExisting(path) {
|
|
45
|
+
try {
|
|
46
|
+
const exist = await fs_1.default.existsSync(path);
|
|
47
|
+
return exist;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async function readSampleFile(type = "json") {
|
|
54
|
+
try {
|
|
55
|
+
if (type == "json")
|
|
56
|
+
return await readJsonFile(path_1.default.resolve(__dirname, "..", "data", "sample", "default.json"));
|
|
57
|
+
if (["commonjs"].includes(type))
|
|
58
|
+
return await readTextFile(path_1.default.resolve(__dirname, "..", "data", "sample", "default.js"));
|
|
59
|
+
if (["module"].includes(type))
|
|
60
|
+
return await readTextFile(path_1.default.resolve(__dirname, "..", "data", "sample", "default.js"));
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async function getSampleFile(type = "json") {
|
|
68
|
+
try {
|
|
69
|
+
if (type == "json")
|
|
70
|
+
return defaultJson_json_1.default;
|
|
71
|
+
if (["commonjs"].includes(type))
|
|
72
|
+
return sampleDefaultCommon;
|
|
73
|
+
if (["module"].includes(type))
|
|
74
|
+
return defaultModule_1.default;
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async function writeFile(type = "json", path, text) {
|
|
82
|
+
try {
|
|
83
|
+
if (type == "json")
|
|
84
|
+
await fs_1.default.writeFileSync(path, JSON.stringify(text || "{}", null, constant_1.default.FORMAT.SPACE));
|
|
85
|
+
else if (type == "module")
|
|
86
|
+
await fs_1.default.writeFileSync(path, `export default ${JSON.stringify(text || "{}", null, constant_1.default.FORMAT.SPACE)}`);
|
|
87
|
+
else if (type == "commonjs")
|
|
88
|
+
await fs_1.default.writeFileSync(path, `module.exports = ${JSON.stringify(text || "{}", null, constant_1.default.FORMAT.SPACE)}`);
|
|
89
|
+
else
|
|
90
|
+
throw new Error("Invalid write file type");
|
|
91
|
+
}
|
|
92
|
+
catch (e) {
|
|
93
|
+
throw new Error(e?.message);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
async function writeTempFile(path, text) {
|
|
97
|
+
try {
|
|
98
|
+
return await fs_1.default.writeFileSync(path, `${JSON.stringify(text || "{}", null, constant_1.default.FORMAT.SPACE)}`);
|
|
99
|
+
}
|
|
100
|
+
catch (e) {
|
|
101
|
+
throw new Error(e?.message);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async function deleteFile(path) {
|
|
105
|
+
try {
|
|
106
|
+
console.log(path);
|
|
107
|
+
return await fs_1.default.rmSync(path, { force: true });
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
throw new Error(e?.message);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/common/helper/file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logger = logger;
|
|
4
|
+
exports.loggerError = loggerError;
|
|
5
|
+
exports.loggerWarning = loggerWarning;
|
|
6
|
+
function logger(text) {
|
|
7
|
+
console.log(`------ ${text} ------`);
|
|
8
|
+
}
|
|
9
|
+
function loggerError(text) {
|
|
10
|
+
console.error(`🛑 ${text}`);
|
|
11
|
+
}
|
|
12
|
+
function loggerWarning(text) {
|
|
13
|
+
console.error(`⚠️ ${text}`);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/common/helper/logger.ts"],"names":[],"mappings":";;AAAA,wBAEC;AAED,kCAEC;AAED,sCAEC;AAVD,SAAgB,MAAM,CAAE,IAAY;IAChC,OAAO,CAAC,GAAG,CAAE,UAAU,IAAI,SAAS,CAAE,CAAC;AAC3C,CAAC;AAED,SAAgB,WAAW,CAAE,IAAY;IACrC,OAAO,CAAC,KAAK,CAAE,MAAM,IAAI,EAAE,CAAE,CAAC;AAClC,CAAC;AAED,SAAgB,aAAa,CAAE,IAAY;IACvC,OAAO,CAAC,KAAK,CAAE,MAAM,IAAI,EAAE,CAAE,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTranslate = getTranslate;
|
|
4
|
+
const bing_translate_api_1 = require("bing-translate-api");
|
|
5
|
+
async function getTranslate({ text, from = 'auto-detect', to = 'en' }) {
|
|
6
|
+
try {
|
|
7
|
+
const tran = await (0, bing_translate_api_1.translate)(text, from, to);
|
|
8
|
+
return tran?.translation;
|
|
9
|
+
}
|
|
10
|
+
catch (e) {
|
|
11
|
+
throw new Error(e?.message);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=translate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translate.js","sourceRoot":"","sources":["../../../src/common/helper/translate.ts"],"names":[],"mappings":";;AASA,oCAWC;AApBD,2DAA+C;AASxC,KAAK,UAAU,YAAY,CAAC,EACjC,IAAI,EACJ,IAAI,GAAG,aAAa,EACpB,EAAE,GAAG,IAAI,EACK;IACd,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAA,8BAAS,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7C,OAAO,IAAI,EAAE,WAAW,CAAC;IAC3B,CAAC;IAAA,OAAM,CAAM,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "lee-tr-cli",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"files": [ "dist" ],
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "tsc",
|
|
8
|
+
"watch": "tsc --watch",
|
|
9
|
+
"prepublishOnly": "npm run build"
|
|
10
|
+
},
|
|
11
|
+
"bin": {
|
|
12
|
+
"lee-tr": "./dist/bin/lee-tr.js"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [],
|
|
15
|
+
"author": "",
|
|
16
|
+
"license": "ISC",
|
|
17
|
+
"description": "",
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"ts-node": "^10.9.2",
|
|
20
|
+
"typescript": "^5.9.3"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"bing-translate-api": "^4.2.0",
|
|
24
|
+
"clipboardy": "^5.0.2"
|
|
25
|
+
}
|
|
26
|
+
}
|