Skip to content

Commit bc3ab0c

Browse files
committed
new version with cache
1 parent 02b98c6 commit bc3ab0c

File tree

11 files changed

+59
-34
lines changed

11 files changed

+59
-34
lines changed

.DS_Store

0 Bytes
Binary file not shown.

package-lock.json

Lines changed: 15 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@aexol/dev-translate-main",
3-
"version": "0.0.2",
3+
"version": "0.3.6",
44
"description": "Automatically generated by graphql-editor-cli",
55
"main": "lib/index.js",
66
"type": "module",

packages/cli/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@aexol/dev-translate",
3-
"version": "0.3.5",
3+
"version": "0.3.6",
44
"private": false,
55
"main": "./lib/index.js",
66
"author": "Aexol, Artur Czemiel",
@@ -17,9 +17,9 @@
1717
"lib"
1818
],
1919
"dependencies": {
20-
"@aexol/dev-translate-config": "^0.3.5",
21-
"@aexol/dev-translate-core": "^0.3.5",
22-
"@aexol/dev-translate-watch": "^0.3.5",
20+
"@aexol/dev-translate-config": "^0.3.6",
21+
"@aexol/dev-translate-core": "^0.3.6",
22+
"@aexol/dev-translate-watch": "^0.3.6",
2323
"chalk": "^5.3.0",
2424
"chokidar": "^3.6.0",
2525
"commander": "^11.0.0"

packages/config/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@aexol/dev-translate-config",
3-
"version": "0.3.5",
3+
"version": "0.3.6",
44
"private": false,
55
"main": "./lib/index.js",
66
"author": "Aexol, Artur Czemiel",
@@ -14,7 +14,7 @@
1414
"lib"
1515
],
1616
"dependencies": {
17-
"@aexol/dev-translate-core": "^0.3.5",
17+
"@aexol/dev-translate-core": "^0.3.6",
1818
"config-maker": "^0.0.6"
1919
}
2020
}

packages/core/index.ts

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
// ten skrypt to początek nowego CLI do devTranslatea
22
import { Chain, Languages, ModelTypes } from '@/src/zeus/index.js';
3-
import { readdirSync, writeFileSync, readFileSync, mkdirSync } from 'node:fs';
3+
import { readdirSync, writeFileSync, readFileSync, mkdirSync, statSync, existsSync } from 'node:fs';
44
import * as path from 'node:path';
55
import PQueue from 'p-queue';
66

77
const DEV_TRANSLATE_HOST = process.env.OVERRIDE_DEV_TRANSLATE_HOST || 'https://backend.devtranslate.app/graphql';
8+
const TIMESTAMP_FILE = '.dev-translate.timestamp.json';
9+
const timestampFilePath = path.join(process.cwd(), TIMESTAMP_FILE);
810

911
export type BackendProps = Pick<
1012
ModelTypes['TranslateInput'],
@@ -97,17 +99,26 @@ const getLocalePaths = ({
9799
localeDir,
98100
logLevel = LogLevels.info,
99101
fileNameFilter,
102+
lastTranslationTimeStamp,
100103
}: {
101104
cwd: string;
102105
localeDir: string;
103106
srcLang: LangPair;
104107
logLevel?: LogLevels;
105108
fileNameFilter?: string;
109+
lastTranslationTimeStamp?: number;
106110
}) => {
107111
const localePath = path.join(cwd, localeDir);
108112
innerLogger(logLevel)('Locale path:', localePath)(LogLevels.debug);
109113
const srcLangPath = path.join(localePath, srcLang.folderName);
110-
let localeSrcFiles = readdirSync(srcLangPath).filter((f) => f.endsWith('.json'));
114+
let localeSrcFiles = readdirSync(srcLangPath)
115+
.filter((f) => f.endsWith('.json'))
116+
.filter((lsf) => {
117+
if (lastTranslationTimeStamp) {
118+
return statSync(path.join(srcLangPath, lsf)).mtimeMs > lastTranslationTimeStamp;
119+
}
120+
return true;
121+
});
111122
if (fileNameFilter) localeSrcFiles = localeSrcFiles.filter((lsf) => path.parse(lsf).base === fileNameFilter);
112123
const outLangs = getOutputLanguages(localePath, srcLang.folderName);
113124
innerLogger(logLevel)(
@@ -135,7 +146,16 @@ export const predictLocaleFolder = async ({
135146
srcLang: LangPair;
136147
logLevel?: LogLevels;
137148
} & BackendProps) => {
138-
const { localeSrcFiles, outLangs, srcLangPath } = getLocalePaths({ cwd, localeDir, srcLang, logLevel });
149+
const writeExists = existsSync(timestampFilePath);
150+
const { localeSrcFiles, outLangs, srcLangPath } = getLocalePaths({
151+
cwd,
152+
localeDir,
153+
srcLang,
154+
logLevel,
155+
lastTranslationTimeStamp: writeExists
156+
? (JSON.parse(readFileSync(timestampFilePath, 'utf-8')).timestamp as number)
157+
: undefined,
158+
});
139159
const translateChain = await Chain(DEV_TRANSLATE_HOST, {
140160
headers: {
141161
'api-key': apiKey,
@@ -195,11 +215,15 @@ export const translateLocaleFolder = async ({
195215
} & BackendProps) => {
196216
let activeExecutions = 0;
197217
const queue = new PQueue({ concurrency: 1 });
218+
const writeExists = existsSync(timestampFilePath);
198219
const { localePath, localeSrcFiles, outLangs, srcLangPath } = getLocalePaths({
199220
cwd,
200221
localeDir,
201222
srcLang,
202223
logLevel,
224+
lastTranslationTimeStamp: writeExists
225+
? (JSON.parse(readFileSync(timestampFilePath, 'utf-8')).timestamp as number)
226+
: undefined,
203227
fileNameFilter,
204228
});
205229
const translateChain = Chain(DEV_TRANSLATE_HOST, {
@@ -261,6 +285,7 @@ export const translateLocaleFolder = async ({
261285
innerLogger(logLevel)(
262286
`All translations consumed ${results.reduce((a, b) => a + (b.consumedTokens as number), 0)} tokens`,
263287
)(LogLevels.info);
288+
writeFileSync(path.join(process.cwd(), TIMESTAMP_FILE), JSON.stringify({ timestamp: new Date().valueOf() }));
264289
return results;
265290
};
266291

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@aexol/dev-translate-core",
3-
"version": "0.3.5",
3+
"version": "0.3.6",
44
"private": false,
55
"main": "./lib/index.js",
66
"author": "Aexol, Artur Czemiel",

packages/nextjs-dev-translate-plugin/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@aexol/nextjs-dev-translate-plugin",
3-
"version": "0.3.5",
3+
"version": "0.3.6",
44
"private": false,
55
"main": "./lib/index.js",
66
"author": "Aexol, Artur Czemiel",
@@ -15,7 +15,7 @@
1515
"commonjs"
1616
],
1717
"dependencies": {
18-
"@aexol/dev-translate-watch": "^0.3.5"
18+
"@aexol/dev-translate-watch": "^0.3.6"
1919
},
2020
"peerDependencies": {
2121
"next": ">=13"

packages/testground/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@aexol/testground-dev-translate",
3-
"version": "0.3.5",
3+
"version": "0.3.6",
44
"private": true,
55
"main": "./lib/index.js",
66
"author": "Aexol, Artur Czemiel",
@@ -15,6 +15,6 @@
1515
"lib"
1616
],
1717
"dependencies": {
18-
"@aexol/dev-translate": "^0.3.5"
18+
"@aexol/dev-translate": "^0.3.6"
1919
}
2020
}

packages/vite-plugin-dev-translate/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@aexol/vite-plugin-dev-translate",
3-
"version": "0.3.5",
3+
"version": "0.3.6",
44
"private": false,
55
"main": "./lib/index.js",
66
"author": "Aexol, Artur Czemiel",
@@ -15,7 +15,7 @@
1515
"commonjs"
1616
],
1717
"dependencies": {
18-
"@aexol/dev-translate-watch": "^0.3.5"
18+
"@aexol/dev-translate-watch": "^0.3.6"
1919
},
2020
"peerDependencies": {
2121
"vite": ">=5"

0 commit comments

Comments
 (0)