@intlayer/chokidar 7.5.1 → 7.5.2-canary.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/cjs/buildIntlayerDictionary/buildIntlayerDictionary.cjs +1 -1
- package/dist/cjs/buildIntlayerDictionary/writeDynamicDictionary.cjs +1 -1
- package/dist/cjs/buildIntlayerDictionary/writeFetchDictionary.cjs +1 -1
- package/dist/cjs/buildIntlayerDictionary/writeMergedDictionary.cjs +1 -1
- package/dist/cjs/buildIntlayerDictionary/writeRemoteDictionary.cjs +2 -2
- package/dist/cjs/buildIntlayerDictionary/writeUnmergedDictionary.cjs +2 -2
- package/dist/cjs/cleanRemovedContentDeclaration.cjs +67 -0
- package/dist/cjs/cleanRemovedContentDeclaration.cjs.map +1 -0
- package/dist/cjs/createDictionaryEntryPoint/createDictionaryEntryPoint.cjs +1 -1
- package/dist/cjs/createDictionaryEntryPoint/generateDictionaryListContent.cjs +1 -1
- package/dist/cjs/createType/createModuleAugmentation.cjs +1 -1
- package/dist/cjs/createType/createType.cjs +1 -1
- package/dist/cjs/fetchDistantDictionaries.cjs +1 -1
- package/dist/cjs/handleAdditionalContentDeclarationFile.cjs +2 -2
- package/dist/cjs/handleContentDeclarationFileChange.cjs +8 -3
- package/dist/cjs/handleContentDeclarationFileChange.cjs.map +1 -1
- package/dist/cjs/handleUnlinkedContentDeclarationFile.cjs +8 -3
- package/dist/cjs/handleUnlinkedContentDeclarationFile.cjs.map +1 -1
- package/dist/cjs/index.cjs +5 -5
- package/dist/cjs/listGitFiles.cjs +1 -1
- package/dist/cjs/loadDictionaries/getIntlayerBundle.cjs +1 -1
- package/dist/cjs/loadDictionaries/loadContentDeclaration.cjs +1 -1
- package/dist/cjs/loadDictionaries/loadRemoteDictionaries.cjs +1 -1
- package/dist/cjs/prepareIntlayer.cjs +2 -2
- package/dist/cjs/transformFiles/transformFiles.cjs +1 -1
- package/dist/cjs/utils/formatter.cjs +1 -1
- package/dist/cjs/watcher.cjs +12 -3
- package/dist/cjs/watcher.cjs.map +1 -1
- package/dist/cjs/writeContentDeclaration/processContentDeclarationContent.cjs +1 -1
- package/dist/cjs/writeContentDeclaration/writeContentDeclaration.cjs +1 -1
- package/dist/cjs/writeContentDeclaration/writeContentDeclaration.cjs.map +1 -1
- package/dist/cjs/writeContentDeclaration/writeJSFile.cjs +7 -2
- package/dist/cjs/writeContentDeclaration/writeJSFile.cjs.map +1 -1
- package/dist/esm/buildIntlayerDictionary/buildIntlayerDictionary.mjs +1 -1
- package/dist/esm/buildIntlayerDictionary/writeDynamicDictionary.mjs +1 -1
- package/dist/esm/buildIntlayerDictionary/writeFetchDictionary.mjs +1 -1
- package/dist/esm/buildIntlayerDictionary/writeMergedDictionary.mjs +1 -1
- package/dist/esm/buildIntlayerDictionary/writeRemoteDictionary.mjs +2 -2
- package/dist/esm/buildIntlayerDictionary/writeUnmergedDictionary.mjs +2 -2
- package/dist/esm/cleanRemovedContentDeclaration.mjs +66 -0
- package/dist/esm/cleanRemovedContentDeclaration.mjs.map +1 -0
- package/dist/esm/createDictionaryEntryPoint/createDictionaryEntryPoint.mjs +1 -1
- package/dist/esm/createDictionaryEntryPoint/generateDictionaryListContent.mjs +1 -1
- package/dist/esm/createType/createModuleAugmentation.mjs +1 -1
- package/dist/esm/createType/createType.mjs +1 -1
- package/dist/esm/fetchDistantDictionaries.mjs +1 -1
- package/dist/esm/handleAdditionalContentDeclarationFile.mjs +2 -2
- package/dist/esm/handleContentDeclarationFileChange.mjs +8 -3
- package/dist/esm/handleContentDeclarationFileChange.mjs.map +1 -1
- package/dist/esm/handleUnlinkedContentDeclarationFile.mjs +8 -3
- package/dist/esm/handleUnlinkedContentDeclarationFile.mjs.map +1 -1
- package/dist/esm/index.mjs +5 -5
- package/dist/esm/listGitFiles.mjs +1 -1
- package/dist/esm/loadDictionaries/getIntlayerBundle.mjs +1 -1
- package/dist/esm/loadDictionaries/loadContentDeclaration.mjs +1 -1
- package/dist/esm/loadDictionaries/loadRemoteDictionaries.mjs +1 -1
- package/dist/esm/prepareIntlayer.mjs +2 -2
- package/dist/esm/transformFiles/transformFiles.mjs +1 -1
- package/dist/esm/utils/formatter.mjs +1 -1
- package/dist/esm/watcher.mjs +12 -3
- package/dist/esm/watcher.mjs.map +1 -1
- package/dist/esm/writeContentDeclaration/processContentDeclarationContent.mjs +1 -1
- package/dist/esm/writeContentDeclaration/writeContentDeclaration.mjs +1 -1
- package/dist/esm/writeContentDeclaration/writeContentDeclaration.mjs.map +1 -1
- package/dist/esm/writeContentDeclaration/writeJSFile.mjs +7 -2
- package/dist/esm/writeContentDeclaration/writeJSFile.mjs.map +1 -1
- package/dist/types/buildIntlayerDictionary/buildIntlayerDictionary.d.ts +2 -2
- package/dist/types/buildIntlayerDictionary/buildIntlayerDictionary.d.ts.map +1 -1
- package/dist/types/buildIntlayerDictionary/writeDynamicDictionary.d.ts +3 -3
- package/dist/types/buildIntlayerDictionary/writeDynamicDictionary.d.ts.map +1 -1
- package/dist/types/buildIntlayerDictionary/writeFetchDictionary.d.ts +3 -3
- package/dist/types/buildIntlayerDictionary/writeMergedDictionary.d.ts +2 -2
- package/dist/types/buildIntlayerDictionary/writeRemoteDictionary.d.ts +2 -2
- package/dist/types/buildIntlayerDictionary/writeRemoteDictionary.d.ts.map +1 -1
- package/dist/types/cleanRemovedContentDeclaration.d.ts +7 -0
- package/dist/types/cleanRemovedContentDeclaration.d.ts.map +1 -0
- package/dist/types/createDictionaryEntryPoint/createDictionaryEntryPoint.d.ts +2 -2
- package/dist/types/createDictionaryEntryPoint/generateDictionaryListContent.d.ts +2 -2
- package/dist/types/formatDictionary.d.ts +15 -15
- package/dist/types/handleContentDeclarationFileChange.d.ts.map +1 -1
- package/dist/types/handleUnlinkedContentDeclarationFile.d.ts.map +1 -1
- package/dist/types/loadDictionaries/loadRemoteDictionaries.d.ts +2 -2
- package/dist/types/loadDictionaries/loadRemoteDictionaries.d.ts.map +1 -1
- package/dist/types/utils/getFormatFromExtension.d.ts.map +1 -1
- package/dist/types/watcher.d.ts.map +1 -1
- package/package.json +10 -10
|
@@ -3,8 +3,8 @@ const require_buildIntlayerDictionary_writeDynamicDictionary = require('./writeD
|
|
|
3
3
|
const require_buildIntlayerDictionary_writeFetchDictionary = require('./writeFetchDictionary.cjs');
|
|
4
4
|
const require_buildIntlayerDictionary_writeMergedDictionary = require('./writeMergedDictionary.cjs');
|
|
5
5
|
const require_buildIntlayerDictionary_writeUnmergedDictionary = require('./writeUnmergedDictionary.cjs');
|
|
6
|
-
let _intlayer_config = require("@intlayer/config");
|
|
7
6
|
let _intlayer_unmerged_dictionaries_entry = require("@intlayer/unmerged-dictionaries-entry");
|
|
7
|
+
let _intlayer_config = require("@intlayer/config");
|
|
8
8
|
|
|
9
9
|
//#region src/buildIntlayerDictionary/buildIntlayerDictionary.ts
|
|
10
10
|
/**
|
|
@@ -3,8 +3,8 @@ const require_utils_parallelize = require('../utils/parallelize.cjs');
|
|
|
3
3
|
const require_writeFileIfChanged = require('../writeFileIfChanged.cjs');
|
|
4
4
|
const require_writeJsonIfChanged = require('../writeJsonIfChanged.cjs');
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
6
|
-
let _intlayer_config = require("@intlayer/config");
|
|
7
6
|
let node_path = require("node:path");
|
|
7
|
+
let _intlayer_config = require("@intlayer/config");
|
|
8
8
|
let _intlayer_core = require("@intlayer/core");
|
|
9
9
|
|
|
10
10
|
//#region src/buildIntlayerDictionary/writeDynamicDictionary.ts
|
|
@@ -2,8 +2,8 @@ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
|
2
2
|
const require_utils_parallelize = require('../utils/parallelize.cjs');
|
|
3
3
|
const require_writeFileIfChanged = require('../writeFileIfChanged.cjs');
|
|
4
4
|
let node_fs_promises = require("node:fs/promises");
|
|
5
|
-
let _intlayer_config = require("@intlayer/config");
|
|
6
5
|
let node_path = require("node:path");
|
|
6
|
+
let _intlayer_config = require("@intlayer/config");
|
|
7
7
|
|
|
8
8
|
//#region src/buildIntlayerDictionary/writeFetchDictionary.ts
|
|
9
9
|
/**
|
|
@@ -2,8 +2,8 @@ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
|
2
2
|
const require_utils_parallelize = require('../utils/parallelize.cjs');
|
|
3
3
|
const require_writeJsonIfChanged = require('../writeJsonIfChanged.cjs');
|
|
4
4
|
let node_fs_promises = require("node:fs/promises");
|
|
5
|
-
let _intlayer_config = require("@intlayer/config");
|
|
6
5
|
let node_path = require("node:path");
|
|
6
|
+
let _intlayer_config = require("@intlayer/config");
|
|
7
7
|
let _intlayer_core = require("@intlayer/core");
|
|
8
8
|
|
|
9
9
|
//#region src/buildIntlayerDictionary/writeMergedDictionary.ts
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_utils_parallelize = require('../utils/parallelize.cjs');
|
|
3
|
-
const require_filterInvalidDictionaries = require('../filterInvalidDictionaries.cjs');
|
|
4
3
|
const require_writeJsonIfChanged = require('../writeJsonIfChanged.cjs');
|
|
4
|
+
const require_filterInvalidDictionaries = require('../filterInvalidDictionaries.cjs');
|
|
5
5
|
const require_buildIntlayerDictionary_writeUnmergedDictionary = require('./writeUnmergedDictionary.cjs');
|
|
6
6
|
const require_loadDictionaries_loadRemoteDictionaries = require('../loadDictionaries/loadRemoteDictionaries.cjs');
|
|
7
7
|
let node_fs_promises = require("node:fs/promises");
|
|
8
|
-
let _intlayer_config = require("@intlayer/config");
|
|
9
8
|
let node_path = require("node:path");
|
|
9
|
+
let _intlayer_config = require("@intlayer/config");
|
|
10
10
|
let _intlayer_core = require("@intlayer/core");
|
|
11
11
|
|
|
12
12
|
//#region src/buildIntlayerDictionary/writeRemoteDictionary.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_utils_parallelize = require('../utils/parallelize.cjs');
|
|
3
|
-
const require_filterInvalidDictionaries = require('../filterInvalidDictionaries.cjs');
|
|
4
3
|
const require_writeJsonIfChanged = require('../writeJsonIfChanged.cjs');
|
|
4
|
+
const require_filterInvalidDictionaries = require('../filterInvalidDictionaries.cjs');
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
6
|
-
let _intlayer_config = require("@intlayer/config");
|
|
7
6
|
let node_path = require("node:path");
|
|
7
|
+
let _intlayer_config = require("@intlayer/config");
|
|
8
8
|
let _intlayer_core = require("@intlayer/core");
|
|
9
9
|
|
|
10
10
|
//#region src/buildIntlayerDictionary/writeUnmergedDictionary.ts
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_createDictionaryEntryPoint_createDictionaryEntryPoint = require('./createDictionaryEntryPoint/createDictionaryEntryPoint.cjs');
|
|
3
|
+
const require_createType_createType = require('./createType/createType.cjs');
|
|
4
|
+
const require_writeJsonIfChanged = require('./writeJsonIfChanged.cjs');
|
|
5
|
+
let node_fs_promises = require("node:fs/promises");
|
|
6
|
+
let _intlayer_config_client = require("@intlayer/config/client");
|
|
7
|
+
let node_path = require("node:path");
|
|
8
|
+
let _intlayer_dictionaries_entry = require("@intlayer/dictionaries-entry");
|
|
9
|
+
let _intlayer_unmerged_dictionaries_entry = require("@intlayer/unmerged-dictionaries-entry");
|
|
10
|
+
|
|
11
|
+
//#region src/cleanRemovedContentDeclaration.ts
|
|
12
|
+
const cleanRemovedContentDeclaration = async (filePath, key, configuration) => {
|
|
13
|
+
const appLogger = (0, _intlayer_config_client.getAppLogger)(configuration);
|
|
14
|
+
const unmergedDictionaries = (0, _intlayer_unmerged_dictionaries_entry.getUnmergedDictionaries)(configuration);
|
|
15
|
+
const relativeFilePath = (0, node_path.relative)(configuration.content.baseDir, filePath);
|
|
16
|
+
const filteredUnmergedDictionaries = Object.values(unmergedDictionaries).flat().filter((dictionary) => dictionary.filePath === relativeFilePath && dictionary.key !== key);
|
|
17
|
+
const changedDictionariesLocalIds = [];
|
|
18
|
+
const removedDictionariesLocalIds = [];
|
|
19
|
+
const removedDictionariesKeys = [];
|
|
20
|
+
filteredUnmergedDictionaries.forEach(async (dictionary) => {
|
|
21
|
+
const unmergedFilePath = (0, node_path.normalize)((0, node_path.join)(configuration.content.unmergedDictionariesDir, `${dictionary.key}.json`));
|
|
22
|
+
try {
|
|
23
|
+
const jsonContent = await (0, node_fs_promises.readFile)(unmergedFilePath, "utf8");
|
|
24
|
+
const parsedContent = JSON.parse(jsonContent);
|
|
25
|
+
if (parsedContent.length === 1) {
|
|
26
|
+
appLogger(`Removing outdated dictionary ${(0, _intlayer_config_client.colorizeKey)(dictionary.key)}`, { isVerbose: true });
|
|
27
|
+
await (0, node_fs_promises.rm)(unmergedFilePath);
|
|
28
|
+
removedDictionariesLocalIds.push(dictionary.localId);
|
|
29
|
+
} else {
|
|
30
|
+
await require_writeJsonIfChanged.writeJsonIfChanged(unmergedFilePath, parsedContent.filter((content) => content.filePath !== relativeFilePath));
|
|
31
|
+
changedDictionariesLocalIds.push(dictionary.localId);
|
|
32
|
+
}
|
|
33
|
+
} catch {
|
|
34
|
+
appLogger(`Error while processing unmerged dictionary file ${(0, _intlayer_config_client.colorizeKey)(dictionary.key)}`, { isVerbose: true });
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
const dictionaries = (0, _intlayer_dictionaries_entry.getDictionaries)(configuration);
|
|
38
|
+
const flatDictionaries = Object.values(dictionaries);
|
|
39
|
+
(flatDictionaries?.filter((dictionary) => dictionary.key !== key && dictionary.localIds?.length === 1 && dictionary.localIds[0].endsWith(`::local::${relativeFilePath}`))).forEach(async (dictionary) => {
|
|
40
|
+
const mergedFilePath = (0, node_path.normalize)((0, node_path.join)(configuration.content.dictionariesDir, `${dictionary.key}.json`));
|
|
41
|
+
try {
|
|
42
|
+
const fileContent = await (0, node_fs_promises.readFile)(mergedFilePath, "utf8");
|
|
43
|
+
const parsedContent = JSON.parse(fileContent);
|
|
44
|
+
if (parsedContent.localIds?.length === 1) {
|
|
45
|
+
appLogger(`Removing outdated dictionary ${(0, _intlayer_config_client.colorizeKey)(dictionary.key)}`, { isVerbose: true });
|
|
46
|
+
(0, node_fs_promises.rm)(mergedFilePath);
|
|
47
|
+
(0, node_fs_promises.rm)((0, node_path.normalize)((0, node_path.join)(configuration.content.typesDir, `${dictionary.key}.ts`)));
|
|
48
|
+
removedDictionariesKeys.push(dictionary.key);
|
|
49
|
+
} else {
|
|
50
|
+
const localIds = parsedContent.localIds?.filter((localeId) => localeId !== relativeFilePath);
|
|
51
|
+
await require_writeJsonIfChanged.writeJsonIfChanged(mergedFilePath, {
|
|
52
|
+
...parsedContent,
|
|
53
|
+
localIds
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
} catch (error) {
|
|
57
|
+
appLogger([`Error while processing merged dictionary file ${(0, _intlayer_config_client.colorizeKey)(dictionary.key)}`, error], { isVerbose: true });
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
await require_createType_createType.createTypes(flatDictionaries.filter((dictionary) => !removedDictionariesKeys.includes(dictionary.key)).map((dictionary) => (0, node_path.join)(configuration.content.dictionariesDir, `${dictionary.key}.json`)), configuration);
|
|
61
|
+
await require_createDictionaryEntryPoint_createDictionaryEntryPoint.createDictionaryEntryPoint(configuration);
|
|
62
|
+
return changedDictionariesLocalIds;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
//#endregion
|
|
66
|
+
exports.cleanRemovedContentDeclaration = cleanRemovedContentDeclaration;
|
|
67
|
+
//# sourceMappingURL=cleanRemovedContentDeclaration.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanRemovedContentDeclaration.cjs","names":["changedDictionariesLocalIds: string[]","removedDictionariesLocalIds: string[]","removedDictionariesKeys: string[]","writeJsonIfChanged","createTypes","createDictionaryEntryPoint"],"sources":["../../src/cleanRemovedContentDeclaration.ts"],"sourcesContent":["import { readFile, rm } from 'node:fs/promises';\nimport { join, normalize, relative } from 'node:path';\nimport { colorizeKey, getAppLogger } from '@intlayer/config/client';\nimport { getDictionaries } from '@intlayer/dictionaries-entry';\nimport type { Dictionary, IntlayerConfig } from '@intlayer/types';\nimport { getUnmergedDictionaries } from '@intlayer/unmerged-dictionaries-entry';\nimport { createDictionaryEntryPoint } from './createDictionaryEntryPoint';\nimport { createTypes } from './createType';\nimport { writeJsonIfChanged } from './writeJsonIfChanged';\n\nexport const cleanRemovedContentDeclaration = async (\n filePath: string,\n key: string,\n configuration: IntlayerConfig\n): Promise<string[]> => {\n const appLogger = getAppLogger(configuration);\n\n const unmergedDictionaries = getUnmergedDictionaries(configuration);\n\n const relativeFilePath = relative(configuration.content.baseDir, filePath);\n const flatUnmergedDictionaries = Object.values(unmergedDictionaries).flat();\n\n const filteredUnmergedDictionaries = flatUnmergedDictionaries.filter(\n (dictionary) =>\n dictionary.filePath === relativeFilePath && dictionary.key !== key\n );\n\n const changedDictionariesLocalIds: string[] = [];\n const removedDictionariesLocalIds: string[] = [];\n const removedDictionariesKeys: string[] = [];\n\n filteredUnmergedDictionaries.forEach(async (dictionary) => {\n const unmergedFilePath = normalize(\n join(\n configuration.content.unmergedDictionariesDir,\n `${dictionary.key}.json`\n )\n );\n\n try {\n const jsonContent = await readFile(unmergedFilePath, 'utf8');\n const parsedContent = JSON.parse(jsonContent);\n\n if (parsedContent.length === 1) {\n appLogger(\n `Removing outdated dictionary ${colorizeKey(dictionary.key)}`,\n {\n isVerbose: true,\n }\n );\n\n await rm(unmergedFilePath);\n\n removedDictionariesLocalIds.push(dictionary.localId!);\n } else {\n const filteredContent = parsedContent.filter(\n (content: any) => content.filePath !== relativeFilePath\n );\n\n await writeJsonIfChanged(unmergedFilePath, filteredContent);\n\n changedDictionariesLocalIds.push(dictionary.localId!);\n }\n } catch {\n appLogger(\n `Error while processing unmerged dictionary file ${colorizeKey(dictionary.key)}`,\n {\n isVerbose: true,\n }\n );\n }\n });\n\n const dictionaries = getDictionaries(configuration);\n const flatDictionaries = Object.values(dictionaries);\n\n const filteredMergedDictionaries = flatDictionaries?.filter(\n (dictionary) =>\n dictionary.key !== key &&\n dictionary.localIds?.length === 1 &&\n (dictionary.localIds[0] as string).endsWith(\n `::local::${relativeFilePath}`\n )\n );\n\n filteredMergedDictionaries.forEach(async (dictionary) => {\n const mergedFilePath = normalize(\n join(configuration.content.dictionariesDir, `${dictionary.key}.json`)\n );\n\n try {\n const fileContent = await readFile(mergedFilePath, 'utf8');\n const parsedContent = JSON.parse(fileContent) as Dictionary;\n\n if (parsedContent.localIds?.length === 1) {\n appLogger(\n `Removing outdated dictionary ${colorizeKey(dictionary.key)}`,\n {\n isVerbose: true,\n }\n );\n\n rm(mergedFilePath);\n\n const typesFilePath = normalize(\n join(configuration.content.typesDir, `${dictionary.key}.ts`)\n );\n\n rm(typesFilePath);\n\n removedDictionariesKeys.push(dictionary.key);\n } else {\n const localIds = parsedContent.localIds?.filter(\n (localeId) => localeId !== relativeFilePath\n );\n\n const newContent = { ...parsedContent, localIds };\n\n await writeJsonIfChanged(mergedFilePath, newContent);\n }\n } catch (error) {\n appLogger(\n [\n `Error while processing merged dictionary file ${colorizeKey(dictionary.key)}`,\n error,\n ],\n {\n isVerbose: true,\n }\n );\n }\n });\n\n const dictionariesPaths = flatDictionaries\n .filter((dictionary) => !removedDictionariesKeys.includes(dictionary.key))\n .map((dictionary) =>\n join(configuration.content.dictionariesDir, `${dictionary.key}.json`)\n );\n\n await createTypes(dictionariesPaths, configuration);\n\n await createDictionaryEntryPoint(configuration);\n\n return changedDictionariesLocalIds;\n};\n"],"mappings":";;;;;;;;;;;AAUA,MAAa,iCAAiC,OAC5C,UACA,KACA,kBACsB;CACtB,MAAM,sDAAyB,cAAc;CAE7C,MAAM,0FAA+C,cAAc;CAEnE,MAAM,2CAA4B,cAAc,QAAQ,SAAS,SAAS;CAG1E,MAAM,+BAF2B,OAAO,OAAO,qBAAqB,CAAC,MAAM,CAEb,QAC3D,eACC,WAAW,aAAa,oBAAoB,WAAW,QAAQ,IAClE;CAED,MAAMA,8BAAwC,EAAE;CAChD,MAAMC,8BAAwC,EAAE;CAChD,MAAMC,0BAAoC,EAAE;AAE5C,8BAA6B,QAAQ,OAAO,eAAe;EACzD,MAAM,gEAEF,cAAc,QAAQ,yBACtB,GAAG,WAAW,IAAI,OACnB,CACF;AAED,MAAI;GACF,MAAM,cAAc,qCAAe,kBAAkB,OAAO;GAC5D,MAAM,gBAAgB,KAAK,MAAM,YAAY;AAE7C,OAAI,cAAc,WAAW,GAAG;AAC9B,cACE,yEAA4C,WAAW,IAAI,IAC3D,EACE,WAAW,MACZ,CACF;AAED,mCAAS,iBAAiB;AAE1B,gCAA4B,KAAK,WAAW,QAAS;UAChD;AAKL,UAAMC,8CAAmB,kBAJD,cAAc,QACnC,YAAiB,QAAQ,aAAa,iBACxC,CAE0D;AAE3D,gCAA4B,KAAK,WAAW,QAAS;;UAEjD;AACN,aACE,4FAA+D,WAAW,IAAI,IAC9E,EACE,WAAW,MACZ,CACF;;GAEH;CAEF,MAAM,iEAA+B,cAAc;CACnD,MAAM,mBAAmB,OAAO,OAAO,aAAa;AAWpD,EATmC,kBAAkB,QAClD,eACC,WAAW,QAAQ,OACnB,WAAW,UAAU,WAAW,KAC/B,WAAW,SAAS,GAAc,SACjC,YAAY,mBACb,CACJ,EAE0B,QAAQ,OAAO,eAAe;EACvD,MAAM,8DACC,cAAc,QAAQ,iBAAiB,GAAG,WAAW,IAAI,OAAO,CACtE;AAED,MAAI;GACF,MAAM,cAAc,qCAAe,gBAAgB,OAAO;GAC1D,MAAM,gBAAgB,KAAK,MAAM,YAAY;AAE7C,OAAI,cAAc,UAAU,WAAW,GAAG;AACxC,cACE,yEAA4C,WAAW,IAAI,IAC3D,EACE,WAAW,MACZ,CACF;AAED,6BAAG,eAAe;AAMlB,0EAHO,cAAc,QAAQ,UAAU,GAAG,WAAW,IAAI,KAAK,CAC7D,CAEgB;AAEjB,4BAAwB,KAAK,WAAW,IAAI;UACvC;IACL,MAAM,WAAW,cAAc,UAAU,QACtC,aAAa,aAAa,iBAC5B;AAID,UAAMA,8CAAmB,gBAFN;KAAE,GAAG;KAAe;KAAU,CAEG;;WAE/C,OAAO;AACd,aACE,CACE,0FAA6D,WAAW,IAAI,IAC5E,MACD,EACD,EACE,WAAW,MACZ,CACF;;GAEH;AAQF,OAAMC,0CANoB,iBACvB,QAAQ,eAAe,CAAC,wBAAwB,SAAS,WAAW,IAAI,CAAC,CACzE,KAAK,mCACC,cAAc,QAAQ,iBAAiB,GAAG,WAAW,IAAI,OAAO,CACtE,EAEkC,cAAc;AAEnD,OAAMC,yFAA2B,cAAc;AAE/C,QAAO"}
|
|
@@ -8,8 +8,8 @@ const require_createDictionaryEntryPoint_getBuiltFetchDictionariesPath = require
|
|
|
8
8
|
const require_createDictionaryEntryPoint_getBuiltRemoteDictionariesPath = require('./getBuiltRemoteDictionariesPath.cjs');
|
|
9
9
|
const require_createDictionaryEntryPoint_getBuiltUnmergedDictionariesPath = require('./getBuiltUnmergedDictionariesPath.cjs');
|
|
10
10
|
let node_fs_promises = require("node:fs/promises");
|
|
11
|
-
let _intlayer_config = require("@intlayer/config");
|
|
12
11
|
let node_path = require("node:path");
|
|
12
|
+
let _intlayer_config = require("@intlayer/config");
|
|
13
13
|
|
|
14
14
|
//#region src/createDictionaryEntryPoint/createDictionaryEntryPoint.ts
|
|
15
15
|
const writeDictionaryFiles = async (paths, fileName, importType, functionName, format, configuration = (0, _intlayer_config.getConfiguration)()) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_utils_getFileHash = require('../utils/getFileHash.cjs');
|
|
3
|
-
let _intlayer_config = require("@intlayer/config");
|
|
4
3
|
let node_path = require("node:path");
|
|
4
|
+
let _intlayer_config = require("@intlayer/config");
|
|
5
5
|
|
|
6
6
|
//#region src/createDictionaryEntryPoint/generateDictionaryListContent.ts
|
|
7
7
|
/**
|
|
@@ -2,8 +2,8 @@ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
|
2
2
|
const require_writeFileIfChanged = require('../writeFileIfChanged.cjs');
|
|
3
3
|
const require_utils_getFileHash = require('../utils/getFileHash.cjs');
|
|
4
4
|
let node_fs_promises = require("node:fs/promises");
|
|
5
|
-
let _intlayer_config = require("@intlayer/config");
|
|
6
5
|
let node_path = require("node:path");
|
|
6
|
+
let _intlayer_config = require("@intlayer/config");
|
|
7
7
|
let fast_glob = require("fast-glob");
|
|
8
8
|
fast_glob = require_rolldown_runtime.__toESM(fast_glob);
|
|
9
9
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_utils_parallelize = require('../utils/parallelize.cjs');
|
|
3
3
|
let node_fs_promises = require("node:fs/promises");
|
|
4
|
-
let _intlayer_config = require("@intlayer/config");
|
|
5
4
|
let node_path = require("node:path");
|
|
5
|
+
let _intlayer_config = require("@intlayer/config");
|
|
6
6
|
|
|
7
7
|
//#region src/createType/createType.ts
|
|
8
8
|
const generateTypeScriptType = (dictionary) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_utils_parallelize = require('./utils/parallelize.cjs');
|
|
3
|
-
let _intlayer_api = require("@intlayer/api");
|
|
4
3
|
let _intlayer_config = require("@intlayer/config");
|
|
4
|
+
let _intlayer_api = require("@intlayer/api");
|
|
5
5
|
|
|
6
6
|
//#region src/fetchDistantDictionaries.ts
|
|
7
7
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
|
-
const require_utils_formatter = require('./utils/formatter.cjs');
|
|
3
|
-
const require_buildIntlayerDictionary_buildIntlayerDictionary = require('./buildIntlayerDictionary/buildIntlayerDictionary.cjs');
|
|
4
2
|
const require_createDictionaryEntryPoint_createDictionaryEntryPoint = require('./createDictionaryEntryPoint/createDictionaryEntryPoint.cjs');
|
|
5
3
|
const require_createType_createModuleAugmentation = require('./createType/createModuleAugmentation.cjs');
|
|
6
4
|
const require_createType_createType = require('./createType/createType.cjs');
|
|
5
|
+
const require_utils_formatter = require('./utils/formatter.cjs');
|
|
6
|
+
const require_buildIntlayerDictionary_buildIntlayerDictionary = require('./buildIntlayerDictionary/buildIntlayerDictionary.cjs');
|
|
7
7
|
const require_loadDictionaries_loadLocalDictionaries = require('./loadDictionaries/loadLocalDictionaries.cjs');
|
|
8
8
|
let _intlayer_config = require("@intlayer/config");
|
|
9
9
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
|
-
const require_utils_formatter = require('./utils/formatter.cjs');
|
|
3
|
-
const require_buildIntlayerDictionary_buildIntlayerDictionary = require('./buildIntlayerDictionary/buildIntlayerDictionary.cjs');
|
|
4
2
|
const require_createDictionaryEntryPoint_getBuiltDictionariesPath = require('./createDictionaryEntryPoint/getBuiltDictionariesPath.cjs');
|
|
5
3
|
const require_createDictionaryEntryPoint_createDictionaryEntryPoint = require('./createDictionaryEntryPoint/createDictionaryEntryPoint.cjs');
|
|
6
4
|
const require_createType_createModuleAugmentation = require('./createType/createModuleAugmentation.cjs');
|
|
7
5
|
const require_createType_createType = require('./createType/createType.cjs');
|
|
6
|
+
const require_cleanRemovedContentDeclaration = require('./cleanRemovedContentDeclaration.cjs');
|
|
7
|
+
const require_utils_formatter = require('./utils/formatter.cjs');
|
|
8
|
+
const require_buildIntlayerDictionary_buildIntlayerDictionary = require('./buildIntlayerDictionary/buildIntlayerDictionary.cjs');
|
|
8
9
|
const require_loadDictionaries_loadLocalDictionaries = require('./loadDictionaries/loadLocalDictionaries.cjs');
|
|
9
10
|
let _intlayer_config = require("@intlayer/config");
|
|
10
11
|
|
|
@@ -12,7 +13,11 @@ let _intlayer_config = require("@intlayer/config");
|
|
|
12
13
|
const handleContentDeclarationFileChange = async (filePath, config) => {
|
|
13
14
|
const appLogger = (0, _intlayer_config.getAppLogger)(config);
|
|
14
15
|
appLogger(`Change detected: ${require_utils_formatter.formatPath(filePath)}`, { isVerbose: true });
|
|
15
|
-
const
|
|
16
|
+
const localeDictionaries = await require_loadDictionaries_loadLocalDictionaries.loadLocalDictionaries(filePath, config);
|
|
17
|
+
localeDictionaries.forEach(async (dictionary) => {
|
|
18
|
+
await require_cleanRemovedContentDeclaration.cleanRemovedContentDeclaration(filePath, dictionary.key, config);
|
|
19
|
+
});
|
|
20
|
+
const dictionariesOutput = await require_buildIntlayerDictionary_buildIntlayerDictionary.buildDictionary(localeDictionaries, config);
|
|
16
21
|
const updatedDictionariesPaths = Object.values(dictionariesOutput?.mergedDictionaries ?? {}).map((dictionary) => dictionary.dictionaryPath);
|
|
17
22
|
const allDictionariesPaths = await require_createDictionaryEntryPoint_getBuiltDictionariesPath.getBuiltDictionariesPath(config);
|
|
18
23
|
require_createType_createType.createTypes(updatedDictionariesPaths, config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleContentDeclarationFileChange.cjs","names":["formatPath","
|
|
1
|
+
{"version":3,"file":"handleContentDeclarationFileChange.cjs","names":["formatPath","loadLocalDictionaries","cleanRemovedContentDeclaration","buildDictionary","allDictionariesPaths: string[]","getBuiltDictionariesPath","createDictionaryEntryPoint"],"sources":["../../src/handleContentDeclarationFileChange.ts"],"sourcesContent":["import { getAppLogger } from '@intlayer/config';\nimport type { IntlayerConfig } from '@intlayer/types';\nimport { buildDictionary } from './buildIntlayerDictionary/buildIntlayerDictionary';\nimport { cleanRemovedContentDeclaration } from './cleanRemovedContentDeclaration';\nimport { createDictionaryEntryPoint } from './createDictionaryEntryPoint/createDictionaryEntryPoint';\nimport { getBuiltDictionariesPath } from './createDictionaryEntryPoint/getBuiltDictionariesPath';\nimport { createTypes } from './createType';\nimport { createModuleAugmentation } from './createType/createModuleAugmentation';\nimport { loadLocalDictionaries } from './loadDictionaries/loadLocalDictionaries';\nimport { formatPath } from './utils/formatter';\n\nexport const handleContentDeclarationFileChange = async (\n filePath: string,\n config: IntlayerConfig\n) => {\n const appLogger = getAppLogger(config);\n\n // Process the file with the functionToRun\n appLogger(`Change detected: ${formatPath(filePath)}`, {\n isVerbose: true,\n });\n\n const localeDictionaries = await loadLocalDictionaries(filePath, config);\n\n localeDictionaries.forEach(async (dictionary) => {\n await cleanRemovedContentDeclaration(filePath, dictionary.key, config);\n });\n\n const dictionariesOutput = await buildDictionary(localeDictionaries, config);\n const updatedDictionariesPaths = Object.values(\n dictionariesOutput?.mergedDictionaries ?? {}\n ).map((dictionary) => dictionary.dictionaryPath);\n\n const allDictionariesPaths: string[] = await getBuiltDictionariesPath(config);\n\n createTypes(updatedDictionariesPaths, config);\n appLogger('TypeScript types built', {\n isVerbose: true,\n });\n\n if (\n updatedDictionariesPaths.some(\n (updatedDictionaryPath) =>\n !allDictionariesPaths.includes(updatedDictionaryPath)\n )\n ) {\n await createDictionaryEntryPoint(config);\n\n appLogger('Dictionary list built', {\n isVerbose: true,\n });\n }\n\n createModuleAugmentation(config);\n\n appLogger('Module augmentation built', {\n isVerbose: true,\n });\n\n // Plugin transformation\n // Allow plugins to post-process the final build output (e.g., write back ICU JSON)\n for await (const plugin of config.plugins ?? []) {\n const { unmergedDictionaries, mergedDictionaries } = dictionariesOutput;\n\n await plugin.afterBuild?.({\n dictionaries: {\n unmergedDictionaries,\n mergedDictionaries,\n },\n configuration: config,\n });\n }\n};\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,qCAAqC,OAChD,UACA,WACG;CACH,MAAM,+CAAyB,OAAO;AAGtC,WAAU,oBAAoBA,mCAAW,SAAS,IAAI,EACpD,WAAW,MACZ,CAAC;CAEF,MAAM,qBAAqB,MAAMC,qEAAsB,UAAU,OAAO;AAExE,oBAAmB,QAAQ,OAAO,eAAe;AAC/C,QAAMC,sEAA+B,UAAU,WAAW,KAAK,OAAO;GACtE;CAEF,MAAM,qBAAqB,MAAMC,wEAAgB,oBAAoB,OAAO;CAC5E,MAAM,2BAA2B,OAAO,OACtC,oBAAoB,sBAAsB,EAAE,CAC7C,CAAC,KAAK,eAAe,WAAW,eAAe;CAEhD,MAAMC,uBAAiC,MAAMC,qFAAyB,OAAO;AAE7E,2CAAY,0BAA0B,OAAO;AAC7C,WAAU,0BAA0B,EAClC,WAAW,MACZ,CAAC;AAEF,KACE,yBAAyB,MACtB,0BACC,CAAC,qBAAqB,SAAS,sBAAsB,CACxD,EACD;AACA,QAAMC,yFAA2B,OAAO;AAExC,YAAU,yBAAyB,EACjC,WAAW,MACZ,CAAC;;AAGJ,sEAAyB,OAAO;AAEhC,WAAU,6BAA6B,EACrC,WAAW,MACZ,CAAC;AAIF,YAAW,MAAM,UAAU,OAAO,WAAW,EAAE,EAAE;EAC/C,MAAM,EAAE,sBAAsB,uBAAuB;AAErD,QAAM,OAAO,aAAa;GACxB,cAAc;IACZ;IACA;IACD;GACD,eAAe;GAChB,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
|
-
const require_utils_formatter = require('./utils/formatter.cjs');
|
|
3
|
-
const require_buildIntlayerDictionary_buildIntlayerDictionary = require('./buildIntlayerDictionary/buildIntlayerDictionary.cjs');
|
|
4
2
|
const require_createDictionaryEntryPoint_createDictionaryEntryPoint = require('./createDictionaryEntryPoint/createDictionaryEntryPoint.cjs');
|
|
5
3
|
const require_createType_createModuleAugmentation = require('./createType/createModuleAugmentation.cjs');
|
|
6
4
|
const require_createType_createType = require('./createType/createType.cjs');
|
|
5
|
+
const require_cleanRemovedContentDeclaration = require('./cleanRemovedContentDeclaration.cjs');
|
|
6
|
+
const require_utils_formatter = require('./utils/formatter.cjs');
|
|
7
|
+
const require_buildIntlayerDictionary_buildIntlayerDictionary = require('./buildIntlayerDictionary/buildIntlayerDictionary.cjs');
|
|
7
8
|
const require_loadDictionaries_loadLocalDictionaries = require('./loadDictionaries/loadLocalDictionaries.cjs');
|
|
8
9
|
const require_listDictionariesPath = require('./listDictionariesPath.cjs');
|
|
9
10
|
let _intlayer_config = require("@intlayer/config");
|
|
@@ -12,7 +13,11 @@ let _intlayer_config = require("@intlayer/config");
|
|
|
12
13
|
const handleUnlinkedContentDeclarationFile = async (filePath, config) => {
|
|
13
14
|
const appLogger = (0, _intlayer_config.getAppLogger)(config);
|
|
14
15
|
appLogger(`Unlinked detected: ${require_utils_formatter.formatPath(filePath)}`, { isVerbose: true });
|
|
15
|
-
const
|
|
16
|
+
const localeDictionaries = await require_loadDictionaries_loadLocalDictionaries.loadLocalDictionaries(await require_listDictionariesPath.listDictionaries(config), config);
|
|
17
|
+
localeDictionaries.forEach(async (dictionary) => {
|
|
18
|
+
await require_cleanRemovedContentDeclaration.cleanRemovedContentDeclaration(filePath, dictionary.key, config);
|
|
19
|
+
});
|
|
20
|
+
const dictionariesOutput = await require_buildIntlayerDictionary_buildIntlayerDictionary.buildDictionary(localeDictionaries, config);
|
|
16
21
|
await require_createType_createType.createTypes(Object.values(dictionariesOutput?.mergedDictionaries ?? {}).map((dictionary) => dictionary.dictionaryPath), config);
|
|
17
22
|
await require_createDictionaryEntryPoint_createDictionaryEntryPoint.createDictionaryEntryPoint();
|
|
18
23
|
appLogger("Dictionaries rebuilt", { isVerbose: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleUnlinkedContentDeclarationFile.cjs","names":["formatPath","
|
|
1
|
+
{"version":3,"file":"handleUnlinkedContentDeclarationFile.cjs","names":["formatPath","loadLocalDictionaries","listDictionaries","cleanRemovedContentDeclaration","buildDictionary","createTypes","createDictionaryEntryPoint","createModuleAugmentation"],"sources":["../../src/handleUnlinkedContentDeclarationFile.ts"],"sourcesContent":["import { getAppLogger } from '@intlayer/config';\nimport type { IntlayerConfig } from '@intlayer/types';\nimport { buildDictionary } from './buildIntlayerDictionary/buildIntlayerDictionary';\nimport { cleanRemovedContentDeclaration } from './cleanRemovedContentDeclaration';\nimport { createDictionaryEntryPoint } from './createDictionaryEntryPoint/createDictionaryEntryPoint';\nimport { createTypes } from './createType';\nimport { createModuleAugmentation } from './createType/createModuleAugmentation';\nimport { listDictionaries } from './listDictionariesPath';\nimport { loadLocalDictionaries } from './loadDictionaries/loadLocalDictionaries';\nimport { formatPath } from './utils/formatter';\n\nexport const handleUnlinkedContentDeclarationFile = async (\n filePath: string,\n config: IntlayerConfig\n) => {\n const appLogger = getAppLogger(config);\n\n // Process the file with the functionToRun\n appLogger(`Unlinked detected: ${formatPath(filePath)}`, {\n isVerbose: true,\n });\n\n const files: string[] = await listDictionaries(config);\n\n const localeDictionaries = await loadLocalDictionaries(files, config);\n\n localeDictionaries.forEach(async (dictionary) => {\n await cleanRemovedContentDeclaration(filePath, dictionary.key, config);\n });\n\n const dictionariesOutput = await buildDictionary(localeDictionaries, config);\n\n const dictionariesPaths = Object.values(\n dictionariesOutput?.mergedDictionaries ?? {}\n ).map((dictionary) => dictionary.dictionaryPath);\n\n await createTypes(dictionariesPaths, config);\n\n await createDictionaryEntryPoint();\n\n appLogger('Dictionaries rebuilt', {\n isVerbose: true,\n });\n\n await createModuleAugmentation(config);\n\n appLogger('Module augmentation built', {\n isVerbose: true,\n });\n\n // Plugin transformation\n // Allow plugins to post-process the final build output (e.g., write back ICU JSON)\n for await (const plugin of config.plugins ?? []) {\n const { unmergedDictionaries, mergedDictionaries } = dictionariesOutput;\n\n await plugin.afterBuild?.({\n dictionaries: {\n unmergedDictionaries,\n mergedDictionaries,\n },\n configuration: config,\n });\n }\n};\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,uCAAuC,OAClD,UACA,WACG;CACH,MAAM,+CAAyB,OAAO;AAGtC,WAAU,sBAAsBA,mCAAW,SAAS,IAAI,EACtD,WAAW,MACZ,CAAC;CAIF,MAAM,qBAAqB,MAAMC,qEAFT,MAAMC,8CAAiB,OAAO,EAEQ,OAAO;AAErE,oBAAmB,QAAQ,OAAO,eAAe;AAC/C,QAAMC,sEAA+B,UAAU,WAAW,KAAK,OAAO;GACtE;CAEF,MAAM,qBAAqB,MAAMC,wEAAgB,oBAAoB,OAAO;AAM5E,OAAMC,0CAJoB,OAAO,OAC/B,oBAAoB,sBAAsB,EAAE,CAC7C,CAAC,KAAK,eAAe,WAAW,eAAe,EAEX,OAAO;AAE5C,OAAMC,0FAA4B;AAElC,WAAU,wBAAwB,EAChC,WAAW,MACZ,CAAC;AAEF,OAAMC,qEAAyB,OAAO;AAEtC,WAAU,6BAA6B,EACrC,WAAW,MACZ,CAAC;AAIF,YAAW,MAAM,UAAU,OAAO,WAAW,EAAE,EAAE;EAC/C,MAAM,EAAE,sBAAsB,uBAAuB;AAErD,QAAM,OAAO,aAAa;GACxB,cAAc;IACZ;IACA;IACD;GACD,eAAe;GAChB,CAAC"}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
const require_cleanOutputDir = require('./cleanOutputDir.cjs');
|
|
2
2
|
const require_utils_pLimit = require('./utils/pLimit.cjs');
|
|
3
3
|
const require_utils_parallelize = require('./utils/parallelize.cjs');
|
|
4
|
-
const require_fetchDistantDictionaries = require('./fetchDistantDictionaries.cjs');
|
|
5
|
-
const require_utils_formatter = require('./utils/formatter.cjs');
|
|
6
|
-
const require_filterInvalidDictionaries = require('./filterInvalidDictionaries.cjs');
|
|
7
|
-
const require_formatDictionary = require('./formatDictionary.cjs');
|
|
8
|
-
const require_buildIntlayerDictionary_buildIntlayerDictionary = require('./buildIntlayerDictionary/buildIntlayerDictionary.cjs');
|
|
9
4
|
const require_utils_getFileHash = require('./utils/getFileHash.cjs');
|
|
10
5
|
const require_createDictionaryEntryPoint_generateDictionaryListContent = require('./createDictionaryEntryPoint/generateDictionaryListContent.cjs');
|
|
11
6
|
const require_createDictionaryEntryPoint_getBuiltDictionariesPath = require('./createDictionaryEntryPoint/getBuiltDictionariesPath.cjs');
|
|
@@ -16,6 +11,11 @@ const require_createDictionaryEntryPoint_getBuiltUnmergedDictionariesPath = requ
|
|
|
16
11
|
const require_createDictionaryEntryPoint_createDictionaryEntryPoint = require('./createDictionaryEntryPoint/createDictionaryEntryPoint.cjs');
|
|
17
12
|
const require_createType_createModuleAugmentation = require('./createType/createModuleAugmentation.cjs');
|
|
18
13
|
const require_createType_createType = require('./createType/createType.cjs');
|
|
14
|
+
const require_fetchDistantDictionaries = require('./fetchDistantDictionaries.cjs');
|
|
15
|
+
const require_utils_formatter = require('./utils/formatter.cjs');
|
|
16
|
+
const require_filterInvalidDictionaries = require('./filterInvalidDictionaries.cjs');
|
|
17
|
+
const require_formatDictionary = require('./formatDictionary.cjs');
|
|
18
|
+
const require_buildIntlayerDictionary_buildIntlayerDictionary = require('./buildIntlayerDictionary/buildIntlayerDictionary.cjs');
|
|
19
19
|
const require_utils_resolveObjectPromises = require('./utils/resolveObjectPromises.cjs');
|
|
20
20
|
const require_loadDictionaries_loadContentDeclaration = require('./loadDictionaries/loadContentDeclaration.cjs');
|
|
21
21
|
const require_loadDictionaries_loadLocalDictionaries = require('./loadDictionaries/loadLocalDictionaries.cjs');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
2
|
let node_fs = require("node:fs");
|
|
3
|
-
let _intlayer_config = require("@intlayer/config");
|
|
4
3
|
let node_path = require("node:path");
|
|
4
|
+
let _intlayer_config = require("@intlayer/config");
|
|
5
5
|
let _intlayer_config_built = require("@intlayer/config/built");
|
|
6
6
|
_intlayer_config_built = require_rolldown_runtime.__toESM(_intlayer_config_built);
|
|
7
7
|
let simple_git = require("simple-git");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
let node_fs_promises = require("node:fs/promises");
|
|
3
|
-
let _intlayer_config = require("@intlayer/config");
|
|
4
3
|
let node_path = require("node:path");
|
|
4
|
+
let _intlayer_config = require("@intlayer/config");
|
|
5
5
|
let node_module = require("node:module");
|
|
6
6
|
|
|
7
7
|
//#region src/loadDictionaries/getIntlayerBundle.ts
|
|
@@ -4,8 +4,8 @@ const require_filterInvalidDictionaries = require('../filterInvalidDictionaries.
|
|
|
4
4
|
const require_buildIntlayerDictionary_processContentDeclaration = require('../buildIntlayerDictionary/processContentDeclaration.cjs');
|
|
5
5
|
const require_loadDictionaries_getIntlayerBundle = require('./getIntlayerBundle.cjs');
|
|
6
6
|
let node_fs_promises = require("node:fs/promises");
|
|
7
|
-
let _intlayer_config = require("@intlayer/config");
|
|
8
7
|
let node_path = require("node:path");
|
|
8
|
+
let _intlayer_config = require("@intlayer/config");
|
|
9
9
|
|
|
10
10
|
//#region src/loadDictionaries/loadContentDeclaration.ts
|
|
11
11
|
const formatLocalDictionaries = (dictionariesRecord, configuration) => Object.entries(dictionariesRecord).filter(([_relativePath, dict]) => require_filterInvalidDictionaries.isInvalidDictionary(dict, configuration)).map(([relativePath, dict]) => ({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_fetchDistantDictionaries = require('../fetchDistantDictionaries.cjs');
|
|
3
3
|
const require_utils_sortAlphabetically = require('../utils/sortAlphabetically.cjs');
|
|
4
|
-
let _intlayer_api = require("@intlayer/api");
|
|
5
4
|
let _intlayer_config = require("@intlayer/config");
|
|
5
|
+
let _intlayer_api = require("@intlayer/api");
|
|
6
6
|
let _intlayer_remote_dictionaries_entry = require("@intlayer/remote-dictionaries-entry");
|
|
7
7
|
|
|
8
8
|
//#region src/loadDictionaries/loadRemoteDictionaries.ts
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_cleanOutputDir = require('./cleanOutputDir.cjs');
|
|
3
|
-
const require_buildIntlayerDictionary_buildIntlayerDictionary = require('./buildIntlayerDictionary/buildIntlayerDictionary.cjs');
|
|
4
3
|
const require_createDictionaryEntryPoint_createDictionaryEntryPoint = require('./createDictionaryEntryPoint/createDictionaryEntryPoint.cjs');
|
|
5
4
|
const require_createType_createModuleAugmentation = require('./createType/createModuleAugmentation.cjs');
|
|
6
5
|
const require_createType_createType = require('./createType/createType.cjs');
|
|
6
|
+
const require_buildIntlayerDictionary_buildIntlayerDictionary = require('./buildIntlayerDictionary/buildIntlayerDictionary.cjs');
|
|
7
7
|
const require_listDictionariesPath = require('./listDictionariesPath.cjs');
|
|
8
8
|
const require_loadDictionaries_loadDictionaries = require('./loadDictionaries/loadDictionaries.cjs');
|
|
9
9
|
const require_buildIntlayerDictionary_writeRemoteDictionary = require('./buildIntlayerDictionary/writeRemoteDictionary.cjs');
|
|
10
10
|
const require_utils_runOnce = require('./utils/runOnce.cjs');
|
|
11
11
|
const require_writeConfiguration_index = require('./writeConfiguration/index.cjs');
|
|
12
12
|
let node_fs_promises = require("node:fs/promises");
|
|
13
|
-
let _intlayer_config = require("@intlayer/config");
|
|
14
13
|
let node_path = require("node:path");
|
|
14
|
+
let _intlayer_config = require("@intlayer/config");
|
|
15
15
|
let _intlayer_config_package_json = require("@intlayer/config/package.json");
|
|
16
16
|
_intlayer_config_package_json = require_rolldown_runtime.__toESM(_intlayer_config_package_json);
|
|
17
17
|
|
|
@@ -4,8 +4,8 @@ const require_writeContentDeclaration_detectFormatCommand = require('../writeCon
|
|
|
4
4
|
const require_writeContentDeclaration_writeContentDeclaration = require('../writeContentDeclaration/writeContentDeclaration.cjs');
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
6
6
|
node_fs_promises = require_rolldown_runtime.__toESM(node_fs_promises);
|
|
7
|
-
let _intlayer_config = require("@intlayer/config");
|
|
8
7
|
let node_path = require("node:path");
|
|
8
|
+
let _intlayer_config = require("@intlayer/config");
|
|
9
9
|
let node_child_process = require("node:child_process");
|
|
10
10
|
let ts_morph = require("ts-morph");
|
|
11
11
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
-
let _intlayer_config = require("@intlayer/config");
|
|
3
2
|
let node_path = require("node:path");
|
|
3
|
+
let _intlayer_config = require("@intlayer/config");
|
|
4
4
|
let _intlayer_config_built = require("@intlayer/config/built");
|
|
5
5
|
_intlayer_config_built = require_rolldown_runtime.__toESM(_intlayer_config_built);
|
|
6
6
|
let _intlayer_core = require("@intlayer/core");
|
package/dist/cjs/watcher.cjs
CHANGED
|
@@ -3,8 +3,10 @@ const require_handleAdditionalContentDeclarationFile = require('./handleAddition
|
|
|
3
3
|
const require_handleContentDeclarationFileChange = require('./handleContentDeclarationFileChange.cjs');
|
|
4
4
|
const require_handleUnlinkedContentDeclarationFile = require('./handleUnlinkedContentDeclarationFile.cjs');
|
|
5
5
|
const require_prepareIntlayer = require('./prepareIntlayer.cjs');
|
|
6
|
-
|
|
6
|
+
const require_writeContentDeclaration_writeContentDeclaration = require('./writeContentDeclaration/writeContentDeclaration.cjs');
|
|
7
|
+
let node_fs_promises = require("node:fs/promises");
|
|
7
8
|
let node_path = require("node:path");
|
|
9
|
+
let _intlayer_config = require("@intlayer/config");
|
|
8
10
|
let chokidar = require("chokidar");
|
|
9
11
|
|
|
10
12
|
//#region src/watcher.ts
|
|
@@ -13,8 +15,7 @@ const recentlyAddedFiles = /* @__PURE__ */ new Set();
|
|
|
13
15
|
const watch = (options) => {
|
|
14
16
|
const configuration = options?.configuration ?? (0, _intlayer_config.getConfiguration)(options?.configOptions);
|
|
15
17
|
const appLogger = (0, _intlayer_config.getAppLogger)(configuration);
|
|
16
|
-
const { watch: isWatchMode, watchedFilesPatternWithPath } = configuration.content;
|
|
17
|
-
/** @ts-ignore remove error Expected 0-1 arguments, but got 2. */
|
|
18
|
+
const { watch: isWatchMode, watchedFilesPatternWithPath, fileExtensions } = configuration.content;
|
|
18
19
|
return (0, chokidar.watch)(watchedFilesPatternWithPath, {
|
|
19
20
|
persistent: isWatchMode,
|
|
20
21
|
ignoreInitial: true,
|
|
@@ -32,6 +33,14 @@ const watch = (options) => {
|
|
|
32
33
|
}).on("add", async (filePath) => {
|
|
33
34
|
const fileName = (0, node_path.basename)(filePath);
|
|
34
35
|
recentlyAddedFiles.add(fileName);
|
|
36
|
+
if (await (0, node_fs_promises.readFile)(filePath, "utf-8") === "") {
|
|
37
|
+
const extensionPattern = fileExtensions.map((ext) => ext.replace(/\./g, "\\.")).join("|");
|
|
38
|
+
await require_writeContentDeclaration_writeContentDeclaration.writeContentDeclaration({
|
|
39
|
+
key: fileName.replace(/* @__PURE__ */ new RegExp(`(${extensionPattern})$`), ""),
|
|
40
|
+
content: {},
|
|
41
|
+
filePath
|
|
42
|
+
}, configuration);
|
|
43
|
+
}
|
|
35
44
|
await require_handleAdditionalContentDeclarationFile.handleAdditionalContentDeclarationFile(filePath, configuration);
|
|
36
45
|
setTimeout(() => recentlyAddedFiles.delete(fileName), 1e3);
|
|
37
46
|
}).on("change", async (filePath) => await require_handleContentDeclarationFileChange.handleContentDeclarationFileChange(filePath, configuration)).on("unlink", async (filePath) => {
|
package/dist/cjs/watcher.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.cjs","names":["handleAdditionalContentDeclarationFile","handleContentDeclarationFileChange","handleUnlinkedContentDeclarationFile","prepareIntlayer"],"sources":["../../src/watcher.ts"],"sourcesContent":["import { basename } from 'node:path';\nimport {\n type GetConfigurationOptions,\n getAppLogger,\n getConfiguration,\n} from '@intlayer/config';\nimport type { IntlayerConfig } from '@intlayer/types';\n/** @ts-ignore remove error Module '\"chokidar\"' has no exported member 'ChokidarOptions'. */\nimport { type ChokidarOptions, watch as chokidarWatch } from 'chokidar';\nimport { handleAdditionalContentDeclarationFile } from './handleAdditionalContentDeclarationFile';\nimport { handleContentDeclarationFileChange } from './handleContentDeclarationFileChange';\nimport { handleUnlinkedContentDeclarationFile } from './handleUnlinkedContentDeclarationFile';\nimport { prepareIntlayer } from './prepareIntlayer';\n\nconst recentlyAddedFiles = new Set<string>();\n\ntype WatchOptions = ChokidarOptions & {\n configuration?: IntlayerConfig;\n configOptions?: GetConfigurationOptions;\n skipPrepare?: boolean;\n};\n\n// Initialize chokidar watcher (non-persistent)\nexport const watch = (options?: WatchOptions) => {\n const configuration =\n options?.configuration ?? getConfiguration(options?.configOptions);\n const appLogger = getAppLogger(configuration);\n\n const {
|
|
1
|
+
{"version":3,"file":"watcher.cjs","names":["writeContentDeclaration","handleAdditionalContentDeclarationFile","handleContentDeclarationFileChange","handleUnlinkedContentDeclarationFile","prepareIntlayer"],"sources":["../../src/watcher.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises';\nimport { basename } from 'node:path';\nimport {\n type GetConfigurationOptions,\n getAppLogger,\n getConfiguration,\n} from '@intlayer/config';\nimport type { IntlayerConfig } from '@intlayer/types';\n/** @ts-ignore remove error Module '\"chokidar\"' has no exported member 'ChokidarOptions'. */\nimport { type ChokidarOptions, watch as chokidarWatch } from 'chokidar';\nimport { handleAdditionalContentDeclarationFile } from './handleAdditionalContentDeclarationFile';\nimport { handleContentDeclarationFileChange } from './handleContentDeclarationFileChange';\nimport { handleUnlinkedContentDeclarationFile } from './handleUnlinkedContentDeclarationFile';\nimport { prepareIntlayer } from './prepareIntlayer';\nimport { writeContentDeclaration } from './writeContentDeclaration';\n\nconst recentlyAddedFiles = new Set<string>();\n\ntype WatchOptions = ChokidarOptions & {\n configuration?: IntlayerConfig;\n configOptions?: GetConfigurationOptions;\n skipPrepare?: boolean;\n};\n\n// Initialize chokidar watcher (non-persistent)\nexport const watch = (options?: WatchOptions) => {\n const configuration =\n options?.configuration ?? getConfiguration(options?.configOptions);\n const appLogger = getAppLogger(configuration);\n\n const {\n watch: isWatchMode,\n watchedFilesPatternWithPath,\n fileExtensions,\n } = configuration.content;\n\n return chokidarWatch(watchedFilesPatternWithPath, {\n persistent: isWatchMode, // Make the watcher persistent\n ignoreInitial: true, // Process existing files\n awaitWriteFinish: {\n stabilityThreshold: 1000,\n pollInterval: 100,\n },\n ignored: [\n '**/node_modules/**',\n '**/dist/**',\n '**/build/**',\n '**/.intlayer/**',\n ],\n ...options,\n })\n .on('add', async (filePath) => {\n const fileName = basename(filePath);\n recentlyAddedFiles.add(fileName);\n\n const fileContent = await readFile(filePath, 'utf-8');\n\n const isEmpty = fileContent === '';\n\n // Fill template content declaration file if it is empty\n if (isEmpty) {\n // Extract name from filename by removing any configured extension\n // e.g., \"example.content.ts\" -> \"example\" or \"example.i18n.json\" -> \"example\"\n const extensionPattern = fileExtensions\n .map((ext) => ext.replace(/\\./g, '\\\\.'))\n .join('|');\n const name = fileName.replace(new RegExp(`(${extensionPattern})$`), '');\n\n await writeContentDeclaration(\n {\n key: name,\n content: {},\n filePath,\n },\n configuration\n );\n }\n\n await handleAdditionalContentDeclarationFile(filePath, configuration);\n\n setTimeout(() => recentlyAddedFiles.delete(fileName), 1000); // Allow time for unlink to trigger if it's a move\n })\n .on(\n 'change',\n async (filePath) =>\n await handleContentDeclarationFileChange(filePath, configuration)\n )\n .on('unlink', async (filePath) => {\n setTimeout(async () => {\n const fileName = basename(filePath);\n\n if (recentlyAddedFiles.has(fileName)) {\n // The file was moved, so ignore unlink\n return;\n }\n\n await handleUnlinkedContentDeclarationFile(filePath, configuration);\n }, 300); // Allow time for unlink to trigger if it's a move\n })\n .on('error', async (error) => {\n appLogger(`Watcher error: ${error}`, {\n level: 'error',\n });\n\n appLogger('Restarting watcher');\n\n await prepareIntlayer(configuration);\n });\n};\n\nexport const buildAndWatchIntlayer = async (options?: WatchOptions) => {\n const { skipPrepare, ...rest } = options ?? {};\n const configuration =\n options?.configuration ?? getConfiguration(options?.configOptions);\n\n if (!options?.skipPrepare) {\n await prepareIntlayer(configuration, { forceRun: true });\n }\n\n if (configuration.content.watch || options?.persistent) {\n const appLogger = getAppLogger(configuration);\n\n appLogger('Watching Intlayer content declarations');\n // Start watching (assuming watch is also async)\n watch({ ...rest, configuration });\n }\n};\n"],"mappings":";;;;;;;;;;;;;AAgBA,MAAM,qCAAqB,IAAI,KAAa;AAS5C,MAAa,SAAS,YAA2B;CAC/C,MAAM,gBACJ,SAAS,wDAAkC,SAAS,cAAc;CACpE,MAAM,+CAAyB,cAAc;CAE7C,MAAM,EACJ,OAAO,aACP,6BACA,mBACE,cAAc;AAElB,4BAAqB,6BAA6B;EAChD,YAAY;EACZ,eAAe;EACf,kBAAkB;GAChB,oBAAoB;GACpB,cAAc;GACf;EACD,SAAS;GACP;GACA;GACA;GACA;GACD;EACD,GAAG;EACJ,CAAC,CACC,GAAG,OAAO,OAAO,aAAa;EAC7B,MAAM,mCAAoB,SAAS;AACnC,qBAAmB,IAAI,SAAS;AAOhC,MALoB,qCAAe,UAAU,QAAQ,KAErB,IAGnB;GAGX,MAAM,mBAAmB,eACtB,KAAK,QAAQ,IAAI,QAAQ,OAAO,MAAM,CAAC,CACvC,KAAK,IAAI;AAGZ,SAAMA,gFACJ;IACE,KAJS,SAAS,wBAAQ,IAAI,OAAO,IAAI,iBAAiB,IAAI,EAAE,GAAG;IAKnE,SAAS,EAAE;IACX;IACD,EACD,cACD;;AAGH,QAAMC,sFAAuC,UAAU,cAAc;AAErE,mBAAiB,mBAAmB,OAAO,SAAS,EAAE,IAAK;GAC3D,CACD,GACC,UACA,OAAO,aACL,MAAMC,8EAAmC,UAAU,cAAc,CACpE,CACA,GAAG,UAAU,OAAO,aAAa;AAChC,aAAW,YAAY;GACrB,MAAM,mCAAoB,SAAS;AAEnC,OAAI,mBAAmB,IAAI,SAAS,CAElC;AAGF,SAAMC,kFAAqC,UAAU,cAAc;KAClE,IAAI;GACP,CACD,GAAG,SAAS,OAAO,UAAU;AAC5B,YAAU,kBAAkB,SAAS,EACnC,OAAO,SACR,CAAC;AAEF,YAAU,qBAAqB;AAE/B,QAAMC,wCAAgB,cAAc;GACpC;;AAGN,MAAa,wBAAwB,OAAO,YAA2B;CACrE,MAAM,EAAE,aAAa,GAAG,SAAS,WAAW,EAAE;CAC9C,MAAM,gBACJ,SAAS,wDAAkC,SAAS,cAAc;AAEpE,KAAI,CAAC,SAAS,YACZ,OAAMA,wCAAgB,eAAe,EAAE,UAAU,MAAM,CAAC;AAG1D,KAAI,cAAc,QAAQ,SAAS,SAAS,YAAY;AAGtD,qCAF+B,cAAc,CAEnC,yCAAyC;AAEnD,QAAM;GAAE,GAAG;GAAM;GAAe,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
let node_fs = require("node:fs");
|
|
3
|
-
let _intlayer_config = require("@intlayer/config");
|
|
4
3
|
let node_path = require("node:path");
|
|
4
|
+
let _intlayer_config = require("@intlayer/config");
|
|
5
5
|
let _intlayer_core = require("@intlayer/core");
|
|
6
6
|
let _intlayer_types = require("@intlayer/types");
|
|
7
7
|
|
|
@@ -4,8 +4,8 @@ const require_writeContentDeclaration_processContentDeclarationContent = require
|
|
|
4
4
|
const require_writeContentDeclaration_writeJSFile = require('./writeJSFile.cjs');
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
6
6
|
let node_path = require("node:path");
|
|
7
|
-
let _intlayer_core = require("@intlayer/core");
|
|
8
7
|
let _intlayer_unmerged_dictionaries_entry = require("@intlayer/unmerged-dictionaries-entry");
|
|
8
|
+
let _intlayer_core = require("@intlayer/core");
|
|
9
9
|
let node_util = require("node:util");
|
|
10
10
|
|
|
11
11
|
//#region src/writeContentDeclaration/writeContentDeclaration.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeContentDeclaration.cjs","names":["processContentDeclarationContent","pluginFormatResult: any","result: Dictionary","getFormatFromExtension","extension","writeJSFile"],"sources":["../../../src/writeContentDeclaration/writeContentDeclaration.ts"],"sourcesContent":["import { mkdir, rm, writeFile } from 'node:fs/promises';\nimport { dirname, extname, join, resolve } from 'node:path';\nimport { isDeepStrictEqual } from 'node:util';\nimport {\n getFilteredLocalesDictionary,\n getPerLocaleDictionary,\n} from '@intlayer/core';\nimport type {\n Dictionary,\n IntlayerConfig,\n Locale,\n LocalesValues,\n} from '@intlayer/types';\nimport { getUnmergedDictionaries } from '@intlayer/unmerged-dictionaries-entry';\nimport {\n type Extension,\n getFormatFromExtension,\n} from '../utils/getFormatFromExtension';\nimport type { DictionaryStatus } from './dictionaryStatus';\nimport { processContentDeclarationContent } from './processContentDeclarationContent';\nimport { writeJSFile } from './writeJSFile';\n\nconst formatContentDeclaration = async (\n dictionary: Dictionary,\n configuration: IntlayerConfig,\n localeList?: LocalesValues[]\n) => {\n /**\n * Clean Markdown, Insertion, File, etc. node metadata\n */\n const processedDictionary =\n await processContentDeclarationContent(dictionary);\n\n let content = processedDictionary.content;\n\n /**\n * Filter locales content\n */\n\n if (dictionary.locale) {\n content = getPerLocaleDictionary(\n processedDictionary,\n dictionary.locale\n ).content;\n } else if (localeList) {\n content = getFilteredLocalesDictionary(\n processedDictionary,\n localeList\n ).content;\n }\n\n let pluginFormatResult: any = {\n ...dictionary,\n content,\n } satisfies Dictionary;\n\n /**\n * Format the dictionary with the plugins\n */\n\n for await (const plugin of configuration.plugins ?? []) {\n if (plugin.formatOutput) {\n const formattedResult = await plugin.formatOutput?.({\n dictionary: pluginFormatResult,\n configuration,\n });\n\n if (formattedResult) {\n pluginFormatResult = formattedResult;\n }\n }\n }\n\n const isDictionaryFormat =\n pluginFormatResult.content && pluginFormatResult.key;\n\n if (!isDictionaryFormat) return pluginFormatResult;\n\n let result: Dictionary = {\n key: dictionary.key,\n id: dictionary.id,\n title: dictionary.title,\n description: dictionary.description,\n tags: dictionary.tags,\n locale: dictionary.locale,\n fill: dictionary.fill,\n filled: dictionary.filled,\n priority: dictionary.priority,\n live: dictionary.live,\n version: dictionary.version,\n content,\n };\n\n /**\n * Add $schema to JSON dictionaries\n */\n const extension = (\n dictionary.filePath ? extname(dictionary.filePath) : '.json'\n ) as Extension;\n const format = getFormatFromExtension(extension);\n\n if (\n format === 'json' &&\n pluginFormatResult.content &&\n pluginFormatResult.key\n ) {\n result = {\n $schema: 'https://intlayer.org/schema.json',\n ...result,\n };\n }\n\n return result;\n};\n\ntype WriteContentDeclarationOptions = {\n newDictionariesPath?: string;\n localeList?: LocalesValues[];\n fallbackLocale?: Locale;\n};\n\nconst defaultOptions = {\n newDictionariesPath: 'intlayer-dictionaries',\n} satisfies WriteContentDeclarationOptions;\n\nexport const writeContentDeclaration = async (\n dictionary: Dictionary,\n configuration: IntlayerConfig,\n options?: WriteContentDeclarationOptions\n): Promise<{ status: DictionaryStatus; path: string }> => {\n const { content } = configuration;\n const { baseDir } = content;\n const { newDictionariesPath, localeList } = {\n ...defaultOptions,\n ...options,\n };\n\n const newDictionaryLocationPath = join(baseDir, newDictionariesPath);\n\n const unmergedDictionariesRecord = getUnmergedDictionaries(configuration);\n const unmergedDictionaries = unmergedDictionariesRecord[\n dictionary.key\n ] as Dictionary[];\n\n const existingDictionary = unmergedDictionaries?.find(\n (el) => el.localId === dictionary.localId\n );\n\n const formattedContentDeclaration = await formatContentDeclaration(\n dictionary,\n configuration,\n localeList\n );\n\n if (existingDictionary?.filePath) {\n // Compare existing dictionary content with new dictionary content\n const isSameContent = isDeepStrictEqual(existingDictionary, dictionary);\n\n const filePath = resolve(\n configuration.content.baseDir,\n existingDictionary.filePath\n );\n\n // Up to date, nothing to do\n if (isSameContent) {\n return {\n status: 'up-to-date',\n path: filePath,\n };\n }\n\n await writeFileWithDirectories(\n filePath,\n formattedContentDeclaration,\n configuration\n );\n\n return { status: 'updated', path: filePath };\n }\n\n if (dictionary.filePath) {\n const filePath = resolve(\n configuration.content.baseDir,\n dictionary.filePath\n );\n await writeFileWithDirectories(\n filePath,\n formattedContentDeclaration,\n configuration\n );\n\n return { status: 'created', path: filePath };\n }\n\n // No existing dictionary, write to new location\n const contentDeclarationPath = join(\n newDictionaryLocationPath,\n `${dictionary.key}.content.json`\n );\n\n await writeFileWithDirectories(\n contentDeclarationPath,\n formattedContentDeclaration,\n configuration\n );\n\n return {\n status: 'imported',\n path: contentDeclarationPath,\n };\n};\n\nconst writeFileWithDirectories = async (\n absoluteFilePath: string,\n dictionary: Dictionary,\n configuration: IntlayerConfig\n): Promise<void> => {\n // Extract the directory from the file path\n const dir = dirname(absoluteFilePath);\n\n // Create the directory recursively\n await mkdir(dir, { recursive: true });\n\n const extension = extname(absoluteFilePath);\n const acceptedExtensions = configuration.content.fileExtensions.map(\n (extension) => extname(extension)\n );\n\n if (!acceptedExtensions.includes(extension)) {\n throw new Error(\n `Invalid file extension: ${extension}, file: ${absoluteFilePath}`\n );\n }\n\n if (extension === '.json') {\n const jsonDictionary = JSON.stringify(dictionary, null, 2);\n\n // Write the file\n await writeFile(absoluteFilePath, `${jsonDictionary}\\n`); // Add a new line at the end of the file to avoid formatting issues with VSCode\n\n return;\n }\n\n await writeJSFile(absoluteFilePath, dictionary, configuration);\n\n // remove the cache as content has changed\n // Will force a new preparation of the intlayer on next build\n try {\n const sentinelPath = join(\n configuration.content.cacheDir,\n 'intlayer-prepared.lock'\n );\n await rm(sentinelPath, { recursive: true });\n } catch {}\n};\n"],"mappings":";;;;;;;;;;;AAsBA,MAAM,2BAA2B,OAC/B,YACA,eACA,eACG;;;;CAIH,MAAM,sBACJ,MAAMA,kGAAiC,WAAW;CAEpD,IAAI,UAAU,oBAAoB;;;;AAMlC,KAAI,WAAW,OACb,sDACE,qBACA,WAAW,OACZ,CAAC;UACO,WACT,4DACE,qBACA,WACD,CAAC;CAGJ,IAAIC,qBAA0B;EAC5B,GAAG;EACH;EACD;;;;AAMD,YAAW,MAAM,UAAU,cAAc,WAAW,EAAE,CACpD,KAAI,OAAO,cAAc;EACvB,MAAM,kBAAkB,MAAM,OAAO,eAAe;GAClD,YAAY;GACZ;GACD,CAAC;AAEF,MAAI,gBACF,sBAAqB;;AAQ3B,KAAI,EAFF,mBAAmB,WAAW,mBAAmB,KAE1B,QAAO;CAEhC,IAAIC,SAAqB;EACvB,KAAK,WAAW;EAChB,IAAI,WAAW;EACf,OAAO,WAAW;EAClB,aAAa,WAAW;EACxB,MAAM,WAAW;EACjB,QAAQ,WAAW;EACnB,MAAM,WAAW;EACjB,QAAQ,WAAW;EACnB,UAAU,WAAW;EACrB,MAAM,WAAW;EACjB,SAAS,WAAW;EACpB;EACD;AAUD,KAFeC,4DAFb,WAAW,kCAAmB,WAAW,SAAS,GAAG,QAEP,KAGnC,UACX,mBAAmB,WACnB,mBAAmB,IAEnB,UAAS;EACP,SAAS;EACT,GAAG;EACJ;AAGH,QAAO;;AAST,MAAM,iBAAiB,EACrB,qBAAqB,yBACtB;AAED,MAAa,0BAA0B,OACrC,YACA,eACA,YACwD;CACxD,MAAM,EAAE,YAAY;CACpB,MAAM,EAAE,YAAY;CACpB,MAAM,EAAE,qBAAqB,eAAe;EAC1C,GAAG;EACH,GAAG;EACJ;CAED,MAAM,gDAAiC,SAAS,oBAAoB;CAOpE,MAAM,wFALqD,cAAc,CAEvE,WAAW,MAGoC,MAC9C,OAAO,GAAG,YAAY,WAAW,QACnC;CAED,MAAM,8BAA8B,MAAM,yBACxC,YACA,eACA,WACD;AAED,KAAI,oBAAoB,UAAU;EAEhC,MAAM,iDAAkC,oBAAoB,WAAW;EAEvE,MAAM,kCACJ,cAAc,QAAQ,SACtB,mBAAmB,SACpB;AAGD,MAAI,cACF,QAAO;GACL,QAAQ;GACR,MAAM;GACP;AAGH,QAAM,yBACJ,UACA,6BACA,cACD;AAED,SAAO;GAAE,QAAQ;GAAW,MAAM;GAAU;;AAG9C,KAAI,WAAW,UAAU;EACvB,MAAM,kCACJ,cAAc,QAAQ,SACtB,WAAW,SACZ;
|
|
1
|
+
{"version":3,"file":"writeContentDeclaration.cjs","names":["processContentDeclarationContent","pluginFormatResult: any","result: Dictionary","getFormatFromExtension","extension","writeJSFile"],"sources":["../../../src/writeContentDeclaration/writeContentDeclaration.ts"],"sourcesContent":["import { mkdir, rm, writeFile } from 'node:fs/promises';\nimport { dirname, extname, join, resolve } from 'node:path';\nimport { isDeepStrictEqual } from 'node:util';\nimport {\n getFilteredLocalesDictionary,\n getPerLocaleDictionary,\n} from '@intlayer/core';\nimport type {\n Dictionary,\n IntlayerConfig,\n Locale,\n LocalesValues,\n} from '@intlayer/types';\nimport { getUnmergedDictionaries } from '@intlayer/unmerged-dictionaries-entry';\nimport {\n type Extension,\n getFormatFromExtension,\n} from '../utils/getFormatFromExtension';\nimport type { DictionaryStatus } from './dictionaryStatus';\nimport { processContentDeclarationContent } from './processContentDeclarationContent';\nimport { writeJSFile } from './writeJSFile';\n\nconst formatContentDeclaration = async (\n dictionary: Dictionary,\n configuration: IntlayerConfig,\n localeList?: LocalesValues[]\n) => {\n /**\n * Clean Markdown, Insertion, File, etc. node metadata\n */\n const processedDictionary =\n await processContentDeclarationContent(dictionary);\n\n let content = processedDictionary.content;\n\n /**\n * Filter locales content\n */\n\n if (dictionary.locale) {\n content = getPerLocaleDictionary(\n processedDictionary,\n dictionary.locale\n ).content;\n } else if (localeList) {\n content = getFilteredLocalesDictionary(\n processedDictionary,\n localeList\n ).content;\n }\n\n let pluginFormatResult: any = {\n ...dictionary,\n content,\n } satisfies Dictionary;\n\n /**\n * Format the dictionary with the plugins\n */\n\n for await (const plugin of configuration.plugins ?? []) {\n if (plugin.formatOutput) {\n const formattedResult = await plugin.formatOutput?.({\n dictionary: pluginFormatResult,\n configuration,\n });\n\n if (formattedResult) {\n pluginFormatResult = formattedResult;\n }\n }\n }\n\n const isDictionaryFormat =\n pluginFormatResult.content && pluginFormatResult.key;\n\n if (!isDictionaryFormat) return pluginFormatResult;\n\n let result: Dictionary = {\n key: dictionary.key,\n id: dictionary.id,\n title: dictionary.title,\n description: dictionary.description,\n tags: dictionary.tags,\n locale: dictionary.locale,\n fill: dictionary.fill,\n filled: dictionary.filled,\n priority: dictionary.priority,\n live: dictionary.live,\n version: dictionary.version,\n content,\n };\n\n /**\n * Add $schema to JSON dictionaries\n */\n const extension = (\n dictionary.filePath ? extname(dictionary.filePath) : '.json'\n ) as Extension;\n const format = getFormatFromExtension(extension);\n\n if (\n format === 'json' &&\n pluginFormatResult.content &&\n pluginFormatResult.key\n ) {\n result = {\n $schema: 'https://intlayer.org/schema.json',\n ...result,\n };\n }\n\n return result;\n};\n\ntype WriteContentDeclarationOptions = {\n newDictionariesPath?: string;\n localeList?: LocalesValues[];\n fallbackLocale?: Locale;\n};\n\nconst defaultOptions = {\n newDictionariesPath: 'intlayer-dictionaries',\n} satisfies WriteContentDeclarationOptions;\n\nexport const writeContentDeclaration = async (\n dictionary: Dictionary,\n configuration: IntlayerConfig,\n options?: WriteContentDeclarationOptions\n): Promise<{ status: DictionaryStatus; path: string }> => {\n const { content } = configuration;\n const { baseDir } = content;\n const { newDictionariesPath, localeList } = {\n ...defaultOptions,\n ...options,\n };\n\n const newDictionaryLocationPath = join(baseDir, newDictionariesPath);\n\n const unmergedDictionariesRecord = getUnmergedDictionaries(configuration);\n const unmergedDictionaries = unmergedDictionariesRecord[\n dictionary.key\n ] as Dictionary[];\n\n const existingDictionary = unmergedDictionaries?.find(\n (el) => el.localId === dictionary.localId\n );\n\n const formattedContentDeclaration = await formatContentDeclaration(\n dictionary,\n configuration,\n localeList\n );\n\n if (existingDictionary?.filePath) {\n // Compare existing dictionary content with new dictionary content\n const isSameContent = isDeepStrictEqual(existingDictionary, dictionary);\n\n const filePath = resolve(\n configuration.content.baseDir,\n existingDictionary.filePath\n );\n\n // Up to date, nothing to do\n if (isSameContent) {\n return {\n status: 'up-to-date',\n path: filePath,\n };\n }\n\n await writeFileWithDirectories(\n filePath,\n formattedContentDeclaration,\n configuration\n );\n\n return { status: 'updated', path: filePath };\n }\n\n if (dictionary.filePath) {\n const filePath = resolve(\n configuration.content.baseDir,\n dictionary.filePath\n );\n\n await writeFileWithDirectories(\n filePath,\n formattedContentDeclaration,\n configuration\n );\n\n return { status: 'created', path: filePath };\n }\n\n // No existing dictionary, write to new location\n const contentDeclarationPath = join(\n newDictionaryLocationPath,\n `${dictionary.key}.content.json`\n );\n\n await writeFileWithDirectories(\n contentDeclarationPath,\n formattedContentDeclaration,\n configuration\n );\n\n return {\n status: 'imported',\n path: contentDeclarationPath,\n };\n};\n\nconst writeFileWithDirectories = async (\n absoluteFilePath: string,\n dictionary: Dictionary,\n configuration: IntlayerConfig\n): Promise<void> => {\n // Extract the directory from the file path\n const dir = dirname(absoluteFilePath);\n\n // Create the directory recursively\n await mkdir(dir, { recursive: true });\n\n const extension = extname(absoluteFilePath);\n const acceptedExtensions = configuration.content.fileExtensions.map(\n (extension) => extname(extension)\n );\n\n if (!acceptedExtensions.includes(extension)) {\n throw new Error(\n `Invalid file extension: ${extension}, file: ${absoluteFilePath}`\n );\n }\n\n if (extension === '.json') {\n const jsonDictionary = JSON.stringify(dictionary, null, 2);\n\n // Write the file\n await writeFile(absoluteFilePath, `${jsonDictionary}\\n`); // Add a new line at the end of the file to avoid formatting issues with VSCode\n\n return;\n }\n\n await writeJSFile(absoluteFilePath, dictionary, configuration);\n\n // remove the cache as content has changed\n // Will force a new preparation of the intlayer on next build\n try {\n const sentinelPath = join(\n configuration.content.cacheDir,\n 'intlayer-prepared.lock'\n );\n await rm(sentinelPath, { recursive: true });\n } catch {}\n};\n"],"mappings":";;;;;;;;;;;AAsBA,MAAM,2BAA2B,OAC/B,YACA,eACA,eACG;;;;CAIH,MAAM,sBACJ,MAAMA,kGAAiC,WAAW;CAEpD,IAAI,UAAU,oBAAoB;;;;AAMlC,KAAI,WAAW,OACb,sDACE,qBACA,WAAW,OACZ,CAAC;UACO,WACT,4DACE,qBACA,WACD,CAAC;CAGJ,IAAIC,qBAA0B;EAC5B,GAAG;EACH;EACD;;;;AAMD,YAAW,MAAM,UAAU,cAAc,WAAW,EAAE,CACpD,KAAI,OAAO,cAAc;EACvB,MAAM,kBAAkB,MAAM,OAAO,eAAe;GAClD,YAAY;GACZ;GACD,CAAC;AAEF,MAAI,gBACF,sBAAqB;;AAQ3B,KAAI,EAFF,mBAAmB,WAAW,mBAAmB,KAE1B,QAAO;CAEhC,IAAIC,SAAqB;EACvB,KAAK,WAAW;EAChB,IAAI,WAAW;EACf,OAAO,WAAW;EAClB,aAAa,WAAW;EACxB,MAAM,WAAW;EACjB,QAAQ,WAAW;EACnB,MAAM,WAAW;EACjB,QAAQ,WAAW;EACnB,UAAU,WAAW;EACrB,MAAM,WAAW;EACjB,SAAS,WAAW;EACpB;EACD;AAUD,KAFeC,4DAFb,WAAW,kCAAmB,WAAW,SAAS,GAAG,QAEP,KAGnC,UACX,mBAAmB,WACnB,mBAAmB,IAEnB,UAAS;EACP,SAAS;EACT,GAAG;EACJ;AAGH,QAAO;;AAST,MAAM,iBAAiB,EACrB,qBAAqB,yBACtB;AAED,MAAa,0BAA0B,OACrC,YACA,eACA,YACwD;CACxD,MAAM,EAAE,YAAY;CACpB,MAAM,EAAE,YAAY;CACpB,MAAM,EAAE,qBAAqB,eAAe;EAC1C,GAAG;EACH,GAAG;EACJ;CAED,MAAM,gDAAiC,SAAS,oBAAoB;CAOpE,MAAM,wFALqD,cAAc,CAEvE,WAAW,MAGoC,MAC9C,OAAO,GAAG,YAAY,WAAW,QACnC;CAED,MAAM,8BAA8B,MAAM,yBACxC,YACA,eACA,WACD;AAED,KAAI,oBAAoB,UAAU;EAEhC,MAAM,iDAAkC,oBAAoB,WAAW;EAEvE,MAAM,kCACJ,cAAc,QAAQ,SACtB,mBAAmB,SACpB;AAGD,MAAI,cACF,QAAO;GACL,QAAQ;GACR,MAAM;GACP;AAGH,QAAM,yBACJ,UACA,6BACA,cACD;AAED,SAAO;GAAE,QAAQ;GAAW,MAAM;GAAU;;AAG9C,KAAI,WAAW,UAAU;EACvB,MAAM,kCACJ,cAAc,QAAQ,SACtB,WAAW,SACZ;AAED,QAAM,yBACJ,UACA,6BACA,cACD;AAED,SAAO;GAAE,QAAQ;GAAW,MAAM;GAAU;;CAI9C,MAAM,6CACJ,2BACA,GAAG,WAAW,IAAI,eACnB;AAED,OAAM,yBACJ,wBACA,6BACA,cACD;AAED,QAAO;EACL,QAAQ;EACR,MAAM;EACP;;AAGH,MAAM,2BAA2B,OAC/B,kBACA,YACA,kBACkB;AAKlB,0DAHoB,iBAAiB,EAGpB,EAAE,WAAW,MAAM,CAAC;CAErC,MAAM,mCAAoB,iBAAiB;AAK3C,KAAI,CAJuB,cAAc,QAAQ,eAAe,KAC7D,uCAAsBC,YAAU,CAClC,CAEuB,SAAS,UAAU,CACzC,OAAM,IAAI,MACR,2BAA2B,UAAU,UAAU,mBAChD;AAGH,KAAI,cAAc,SAAS;AAIzB,wCAAgB,kBAAkB,GAHX,KAAK,UAAU,YAAY,MAAM,EAAE,CAGN,IAAI;AAExD;;AAGF,OAAMC,wDAAY,kBAAkB,YAAY,cAAc;AAI9D,KAAI;AAKF,qDAHE,cAAc,QAAQ,UACtB,yBACD,EACsB,EAAE,WAAW,MAAM,CAAC;SACrC"}
|
|
@@ -5,8 +5,8 @@ const require_utils_getFormatFromExtension = require('../utils/getFormatFromExte
|
|
|
5
5
|
const require_writeContentDeclaration_detectFormatCommand = require('./detectFormatCommand.cjs');
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
let node_fs_promises = require("node:fs/promises");
|
|
8
|
-
let _intlayer_config = require("@intlayer/config");
|
|
9
8
|
let node_path = require("node:path");
|
|
9
|
+
let _intlayer_config = require("@intlayer/config");
|
|
10
10
|
let node_child_process = require("node:child_process");
|
|
11
11
|
|
|
12
12
|
//#region src/writeContentDeclaration/writeJSFile.ts
|
|
@@ -38,7 +38,12 @@ const writeJSFile = async (filePath, dictionary, configuration) => {
|
|
|
38
38
|
live: mergedDictionary.live
|
|
39
39
|
}).filter(([, value]) => value !== void 0))), "utf-8");
|
|
40
40
|
}
|
|
41
|
-
|
|
41
|
+
let fileContent = await (0, node_fs_promises.readFile)(filePath, "utf-8");
|
|
42
|
+
if (fileContent === "") {
|
|
43
|
+
const format = require_utils_getFormatFromExtension.getFormatFromExtension((0, node_path.extname)(filePath));
|
|
44
|
+
fileContent = await require_getContentDeclarationFileTemplate_getContentDeclarationFileTemplate.getContentDeclarationFileTemplate(mergedDictionary.key, format);
|
|
45
|
+
}
|
|
46
|
+
const finalCode = await require_writeContentDeclaration_transformJSFile.transformJSFile(fileContent, dictionary);
|
|
42
47
|
try {
|
|
43
48
|
await (0, node_fs_promises.writeFile)(filePath, finalCode, "utf-8");
|
|
44
49
|
(0, _intlayer_config.logger)(`Successfully updated ${filePath}`, {
|