@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
47 lines • 1.18 kB
JavaScript
import { logger } from "@intlayer/config/client";
const resolveContentPromises = async (entry) => {
if (entry && typeof entry.then === "function") {
const awaited = await entry;
return resolveContentPromises(awaited);
}
if (typeof entry === "function") {
const result = entry();
return resolveContentPromises(result);
}
if (Array.isArray(entry)) {
return Promise.all(
entry.map(async (item) => resolveContentPromises(item))
);
}
if (entry && typeof entry === "object") {
const result = {};
const keys = Object.keys(entry);
await Promise.all(
keys.map(async (key) => {
result[key] = await resolveContentPromises(entry[key]);
})
);
return result;
}
return entry;
};
const processContentDeclaration = async (contentDeclaration) => {
try {
const content = await resolveContentPromises(
contentDeclaration.content
);
return {
...contentDeclaration,
content
};
} catch (error) {
logger(error, {
level: "error"
});
}
};
export {
processContentDeclaration,
resolveContentPromises
};
//# sourceMappingURL=processContentDeclaration.mjs.map