@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
37 lines • 1.45 kB
JavaScript
import { IntlayerEventListener } from "@intlayer/api";
import {
getAppLogger,
getConfiguration
} from "@intlayer/config";
import { buildIntlayerDictionary } from "./transpiler/declaration_file_to_dictionary/intlayer_dictionary/buildIntlayerDictionary.mjs";
const writeDictionary = async (dictionary, configuration) => {
const appLogger = getAppLogger(configuration);
appLogger(`Writing dictionary ${dictionary.key}`);
await buildIntlayerDictionary([dictionary]);
};
const checkDictionaryChanges = async () => {
const configuration = getConfiguration();
const appLogger = getAppLogger(configuration);
const { editor } = configuration;
if (!editor.hotReload) return;
if (!editor.clientId) return;
if (!editor.clientSecret) return;
const eventSource = new IntlayerEventListener(configuration);
try {
await eventSource.initialize().then(() => {
appLogger("Connected to Intlayer. Hot reload enabled");
});
} catch (error) {
appLogger("Error initializing IntlayerEventListener:", {
level: "error"
});
}
eventSource.onDictionaryAdded = (dictionary) => writeDictionary(dictionary, configuration);
eventSource.onDictionaryChange = (dictionary) => writeDictionary(dictionary, configuration);
eventSource.onDictionaryDeleted = (dictionary) => writeDictionary(dictionary, configuration);
return eventSource;
};
export {
checkDictionaryChanges
};
//# sourceMappingURL=checkDictionaryChanges.mjs.map