astro-intlayer
Version:
Easily internationalize i18n your Nuxt applications with type-safe multilingual content management.
46 lines (44 loc) • 1.71 kB
JavaScript
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
let node_path = require("node:path");
node_path = require_rolldown_runtime.__toESM(node_path);
let __intlayer_chokidar = require("@intlayer/chokidar");
__intlayer_chokidar = require_rolldown_runtime.__toESM(__intlayer_chokidar);
let __intlayer_config = require("@intlayer/config");
__intlayer_config = require_rolldown_runtime.__toESM(__intlayer_config);
let vite_intlayer = require("vite-intlayer");
vite_intlayer = require_rolldown_runtime.__toESM(vite_intlayer);
//#region src/index.ts
/**
* Astro integration for Intlayer
* - Adds Vite plugins: intlayer (aliases, watchers), middleware, prune (when optimize enabled)
* - Prepares dictionaries at build start
* - Starts watcher in dev
*/
const intlayer = () => ({
name: "astro-intlayer",
hooks: {
"astro:config:setup": async ({ updateConfig }) => {
const configuration = (0, __intlayer_config.getConfiguration)();
const { optimize } = configuration.build;
await (0, __intlayer_chokidar.prepareIntlayer)(configuration);
updateConfig({ vite: {
plugins: [
(0, vite_intlayer.intlayer)(),
(0, vite_intlayer.intlayerMiddleware)(),
...optimize ? [(0, vite_intlayer.intlayerPrune)(configuration)] : []
],
resolve: { alias: { ...(0, __intlayer_config.getAlias)({
configuration,
formatter: (value) => (0, node_path.resolve)(value)
}) } }
} });
},
"astro:server:setup": async () => {
const configuration = (0, __intlayer_config.getConfiguration)();
if (configuration.content.watch) (0, __intlayer_chokidar.watch)({ configuration });
}
}
});
//#endregion
exports.intlayer = intlayer;
//# sourceMappingURL=index.cjs.map