import path from 'node:path'; import type { Options as VueOptions } from '@vitejs/plugin-vue'; import vue from '@vitejs/plugin-vue'; import type { Options as VueJsxOptions } from '@vitejs/plugin-vue-jsx'; import type { AstroIntegration, AstroRenderer } from 'astro'; import type { Plugin, UserConfig } from 'vite'; interface Options extends VueOptions { jsx?: boolean | VueJsxOptions; appEntrypoint?: string; } function getRenderer(): AstroRenderer { return { name: '@astrojs/vue', clientEntrypoint: '@astrojs/vue/client.js', serverEntrypoint: '@astrojs/vue/server.js', }; } function getJsxRenderer(): AstroRenderer { return { name: '@astrojs/vue (jsx)', clientEntrypoint: '@astrojs/vue/client.js', serverEntrypoint: '@astrojs/vue/server.js', jsxImportSource: 'vue', jsxTransformOptions: async () => { const jsxPlugin = (await import('@vue/babel-plugin-jsx')).default; return { plugins: [jsxPlugin], }; }, }; } function virtualAppEntrypoint(options?: Options): Plugin { const virtualModuleId = 'virtual:@astrojs/vue/app'; const resolvedVirtualModuleId = '\0' + virtualModuleId; let isBuild: boolean; let root: string; return { name: '@astrojs/vue/virtual-app', config(_, { command }) { isBuild = command === 'build'; }, configResolved(config) { root = config.root; }, resolveId(id: string) { if (id == virtualModuleId) { return resolvedVirtualModuleId; } }, load(id: string) { if (id === resolvedVirtualModuleId) { if (options?.appEntrypoint) { const appEntrypoint = options.appEntrypoint.startsWith('.') ? path.resolve(root, options.appEntrypoint) : options.appEntrypoint; return `\ import * as mod from ${JSON.stringify(appEntrypoint)}; export const setup = async (app) => { if ('default' in mod) { await mod.default(app); } else { ${ !isBuild ? `console.warn("[@astrojs/vue] appEntrypoint \`" + ${JSON.stringify( appEntrypoint )} + "\` does not export a default function. Check out https://docs.astro.build/en/guides/integrations-guide/vue/#appentrypoint.");` : '' } } }`; } return `export const setup = () => {};`; } }, }; } async function getViteConfiguration(options?: Options): Promise { const config: UserConfig = { optimizeDeps: { include: ['@astrojs/vue/client.js', 'vue'], exclude: ['@astrojs/vue/server.js', 'virtual:@astrojs/vue/app'], }, plugins: [vue(options), virtualAppEntrypoint(options)], ssr: { external: ['@vue/server-renderer'], noExternal: ['vuetify', 'vueperslides', 'primevue'], }, }; if (options?.jsx) { const vueJsx = (await import('@vitejs/plugin-vue-jsx')).default; const jsxOptions = typeof options.jsx === 'object' ? options.jsx : undefined; config.plugins?.push(vueJsx(jsxOptions)); } return config; } export default function (options?: Options): AstroIntegration { return { name: '@astrojs/vue', hooks: { 'astro:config:setup': async ({ addRenderer, updateConfig }) => { addRenderer(getRenderer()); if (options?.jsx) { addRenderer(getJsxRenderer()); } updateConfig({ vite: await getViteConfiguration(options) }); }, }, }; } b6504c69e7d33f4ccc&follow=1'>rawconn_stub.go (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2018-02-19Update Polish translationGravatar Sebastian Korotkiewicz 2-96/+96
2018-02-17Handle Atom feeds with HTML titleGravatar Frédéric Guillot 2-2/+92
2018-02-17There are more than 2 plurals in PolishGravatar Frédéric Guillot 2-8/+8
2018-02-17Add Polish translationGravatar Sebastian Korotkiewicz 3-1/+444
2018-02-10Change color of <q> tags for black themeGravatar Frédéric Guillot 2-3/+7
2018-02-10Add indexesGravatar Frédéric Guillot 3-2/+8
2018-02-09Update German translationGravatar stratmaster 2-10/+18
2018-02-08Improve error handling for HTTP clientGravatar Frédéric Guillot 5-7/+62
2018-02-08Add missing German stringGravatar stratmaster 2-4/+6
2018-02-07Strip invalid XML characters to avoid parsing errorsGravatar Frédéric Guillot 1-1/+26
2018-02-07Remove period for feed errorsGravatar Frédéric Guillot 4-23/+23
2018-02-07Improve error handling when the response is emptyGravatar Frédéric Guillot 5-6/+28
2018-02-07Add missing French translationGravatar stratmaster 2-2/+4
2018-02-05Update ChangeLog2.0.2Gravatar Frédéric Guillot 1-0/+14
2018-02-04Add support for Let's Encrypt http-01 challengeGravatar Frédéric Guillot 32-286/+2042
2018-02-04Move template functions outside engine (refactoring)Gravatar Frédéric Guillot 9-214/+254
2018-02-04Take timezone into consideration when calculating relative timeGravatar Frédéric Guillot 16-58/+91
2018-02-03Add support for HTTP Strict Transport Security headerGravatar Frédéric Guillot 4-3/+33
2018-02-03Add support for base URLs with subfoldersGravatar Frédéric Guillot 10-23/+105
2018-02-01Update German translationGravatar stratmaster 2-4/+12
2018-01-31Add missing about menu in settingsGravatar Frédéric Guillot 5-5/+29
2018-01-31Show API URL endpoints in user interfaceGravatar Frédéric Guillot 11-14/+99
2018-01-29Do not update entry date while refreshing a feedGravatar Frédéric Guillot 1-4/+5
2018-01-29Enable debug mode for integration testsGravatar Frédéric Guillot 1-1/+1
2018-01-29Add the possiblity to enable debug mode with an environment variableGravatar Frédéric Guillot 2-1/+6
2018-01-29Keep code base tidyGravatar Frédéric Guillot 5-18/+16
2018-01-29Add flag to enable debug loggingGravatar Rogier Lommers 2-7/+64
2018-01-25Improve unread counter updatesGravatar Mahendra Kalkura 1-6/+35