diff --git a/packages/core/package.json b/packages/core/package.json index 820f8e19..b0cb6c29 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -55,7 +55,7 @@ "tinyglobby": "^0.2.12", "ufo": "^1.6.1", "unplugin": "^2.3.2", - "unplugin-ast": "^0.14.6", + "unplugin-ast": "0.14.4", "zod": "^3.24.2" } } diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 67ddb291..b1ab6136 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,10 +1,8 @@ import { joinURL } from 'ufo' -import AST from 'unplugin-ast/vite' -import { RemoveWrapperFunction } from 'unplugin-ast/transformers' import { libraryCollections as libraryCollectionsConfig } from '@compodium/examples' import { collectionsPlugin } from './plugins/collections' -import { metaPlugin } from './plugins/meta' +import { extendMetaPlugin, metaPlugin } from './plugins/meta' import { examplePlugin } from './plugins/examples' import { devtoolsPlugin } from './plugins/devtools' import { colorsPlugin } from './plugins/colors' @@ -61,13 +59,10 @@ export const compodium = /* #__PURE__ */ (options: PluginOptions) => { return [ collectionsPlugin(config), metaPlugin(config), + extendMetaPlugin(config), devtoolsPlugin(config), examplePlugin(config), iconifyPlugin(config), - colorsPlugin(config), - AST({ - include: [/\.[jt]sx?$/, /\.vue$/], - transformer: [RemoveWrapperFunction(['extendCompodiumMeta'])] - }) + colorsPlugin(config) ] } diff --git a/packages/core/src/plugins/meta/index.ts b/packages/core/src/plugins/meta/index.ts index e4e57bc9..b04eb4d2 100644 --- a/packages/core/src/plugins/meta/index.ts +++ b/packages/core/src/plugins/meta/index.ts @@ -5,6 +5,25 @@ import { watch } from 'chokidar' import type { VitePlugin } from 'unplugin' import { resolve } from 'pathe' +import AST from 'unplugin-ast/vite' + +export function extendMetaPlugin(_config: PluginConfig): VitePlugin { + return AST({ + include: [/\.[jt]sx?$/, /\.vue$/], + enforce: 'post', + transformer: [ + { + onNode(node) { + return node.type === 'CallExpression' + && node.callee.type === 'Identifier' + && node.callee.name === 'extendCompodiumMeta' + }, + transform: () => false + } + ] + }) +} + export function metaPlugin(config: PluginConfig): VitePlugin { const checkerDirs = [ ...config.componentCollection.dirs, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b99b0637..95a661cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -138,8 +138,8 @@ importers: specifier: ^2.3.2 version: 2.3.2 unplugin-ast: - specifier: ^0.14.6 - version: 0.14.6 + specifier: 0.14.4 + version: 0.14.4 vite: specifier: '>=6' version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.1) @@ -4256,8 +4256,8 @@ packages: resolution: {integrity: sha512-ub9iytsEbT7Yw/Pd29mSo/cNQpaEu67zR1VVcXDiYjSFwzeBxNdTd0FMnSslLQXiRj8uGPzwsaoefrMD5XAmdw==} engines: {node: '>=16.14.0'} - magic-string-ast@0.9.1: - resolution: {integrity: sha512-18dv2ZlSSgJ/jDWlZGKfnDJx56ilNlYq9F7NnwuWTErsmYmqJ2TWE4l1o2zlUHBYUGBy3tIhPCC1gxq8M5HkMA==} + magic-string-ast@0.8.0: + resolution: {integrity: sha512-e9eH6YOYl2OuDd3fNt2ciFhj/l2vxJmGeWLLcY+0NcW6k0Xitq7XIxN2++QVVhswXeJLy95SjF8oVKRyJC95GQ==} engines: {node: '>=20.18.0'} magic-string@0.30.17: @@ -5810,8 +5810,8 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unplugin-ast@0.14.6: - resolution: {integrity: sha512-HdntpxAN8fWyJ28n8iRkRrez9UrxTPda27XzdEkI8tz0Cn0+fLrnN+8qHqHlzRWXxSPVP7M9eEJ5MeMwbbhy4g==} + unplugin-ast@0.14.4: + resolution: {integrity: sha512-9EWJqy9PblRP/7/6Fl2YSAXEuzkJmTMSmoWEd+NBlqHETDaYgd2hGrRNC2gHmz4Ec7lUVxeWKtowYmYuC+lJng==} engines: {node: '>=18.12.0'} unplugin-auto-import@19.1.2: @@ -10802,7 +10802,7 @@ snapshots: dependencies: magic-string: 0.30.17 - magic-string-ast@0.9.1: + magic-string-ast@0.8.0: dependencies: magic-string: 0.30.17 @@ -13013,12 +13013,13 @@ snapshots: universalify@2.0.1: {} - unplugin-ast@0.14.6: + unplugin-ast@0.14.4: dependencies: '@babel/generator': 7.27.0 ast-kit: 1.4.2 - magic-string-ast: 0.9.1 + magic-string-ast: 0.8.0 unplugin: 2.3.2 + unplugin-utils: 0.2.4 unplugin-auto-import@19.1.2(@nuxt/kit@3.16.2(magicast@0.3.5))(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.6.3))): dependencies: