@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
70 lines • 2.61 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var getFilteredLocalesContent_exports = {};
__export(getFilteredLocalesContent_exports, {
getFilteredLocalesContent: () => getFilteredLocalesContent
});
module.exports = __toCommonJS(getFilteredLocalesContent_exports);
var import_core = require("@intlayer/core");
const filterTranlationsPlugin = (locales, fallback = void 0) => ({
id: "filter-translations-plugin",
canHandle: (node) => typeof node === "object" && node?.nodeType === import_core.NodeType.Translation,
transform: (node, props, deepTransformNode2) => {
const translationMap = node.translation;
const localesArray = Array.isArray(locales) ? locales : [locales];
const isSingleLocale = localesArray.length === 1;
if (isSingleLocale) {
let content = translationMap[localesArray[0]];
if (typeof content === "undefined" && fallback) {
content = translationMap[fallback];
}
return deepTransformNode2(content, props);
}
const filteredTranslationMap = Object.fromEntries(
Object.entries(translationMap).filter(
([key]) => locales.includes(key)
)
);
return {
...node,
translation: deepTransformNode2(filteredTranslationMap, {
...props,
keyPath: [
...props.keyPath,
{ type: import_core.NodeType.Object, key: import_core.NodeType.Translation }
]
})
};
}
});
const getFilteredLocalesContent = (node, locale, nodeProps, fallback) => {
const plugins = [
filterTranlationsPlugin(locale, fallback),
...nodeProps.plugins ?? []
];
return (0, import_core.deepTransformNode)(node, {
...nodeProps,
plugins
});
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
getFilteredLocalesContent
});
//# sourceMappingURL=getFilteredLocalesContent.cjs.map