diff --git a/packages/boolean-prop/src/core/transformer.ts b/packages/boolean-prop/src/core/transformer.ts index 2dae58699..fd986f6ef 100644 --- a/packages/boolean-prop/src/core/transformer.ts +++ b/packages/boolean-prop/src/core/transformer.ts @@ -1,7 +1,7 @@ -import type { +import { ConstantTypes, - NodeTransform, NodeTypes, + type NodeTransform, } from '@vue/compiler-core' export interface Options { @@ -13,15 +13,12 @@ export interface Options { export function transformBooleanProp({ negativePrefix = '!', - constType = 3 satisfies ConstantTypes.CAN_STRINGIFY, + constType = ConstantTypes.CAN_STRINGIFY, }: Options & { constType?: ConstantTypes } = {}): NodeTransform { return (node) => { - if (node.type !== (1 satisfies NodeTypes.ELEMENT)) return + if (node.type !== NodeTypes.ELEMENT) return for (const [i, prop] of node.props.entries()) { - if ( - prop.type !== (6 satisfies NodeTypes.ATTRIBUTE) || - prop.value !== undefined - ) + if (prop.type !== NodeTypes.ATTRIBUTE || prop.value !== undefined) continue const isNegative = prop.name[0] === negativePrefix @@ -29,17 +26,17 @@ export function transformBooleanProp({ const value = String(!isNegative) if (isNegative) prop.loc.start.offset++ node.props[i] = { - type: 7 satisfies NodeTypes.DIRECTIVE, + type: NodeTypes.DIRECTIVE, name: 'bind', arg: { - type: 4 satisfies NodeTypes.SIMPLE_EXPRESSION, - constType: 3 satisfies ConstantTypes.CAN_STRINGIFY, + type: NodeTypes.SIMPLE_EXPRESSION, + constType: ConstantTypes.CAN_STRINGIFY, content: propName, isStatic: true, loc: prop.loc, }, exp: { - type: 4 satisfies NodeTypes.SIMPLE_EXPRESSION, + type: NodeTypes.SIMPLE_EXPRESSION, constType, content: value, isStatic: false, diff --git a/packages/define-stylex/src/core/index.ts b/packages/define-stylex/src/core/index.ts index 29024c0bc..51606ad4b 100644 --- a/packages/define-stylex/src/core/index.ts +++ b/packages/define-stylex/src/core/index.ts @@ -10,10 +10,10 @@ import { } from '@vue-macros/common' import { createTransformContext, + NodeTypes, traverseNode, type DirectiveNode, type NodeTransform, - type NodeTypes, } from '@vue/compiler-dom' import type { Node } from '@babel/types' @@ -22,17 +22,14 @@ const STYLEX_ATTRS = '_stylex_attrs' function transformDirective(s: MagicStringAST): NodeTransform { return (node) => { - if (!(node.type === (1 satisfies NodeTypes.ELEMENT))) return + if (!(node.type === NodeTypes.ELEMENT)) return const i = node.props.findIndex( (item) => - item.type === (7 satisfies NodeTypes.DIRECTIVE) && - item.rawName === 'v-stylex', + item.type === NodeTypes.DIRECTIVE && item.rawName === 'v-stylex', ) if (i === -1) return const directiveVStyleX = node.props[i] as DirectiveNode - if ( - directiveVStyleX.exp?.type !== (4 satisfies NodeTypes.SIMPLE_EXPRESSION) - ) + if (directiveVStyleX.exp?.type !== NodeTypes.SIMPLE_EXPRESSION) throw new Error('`v-stylex` must be passed a expression') const hasColon = diff --git a/packages/named-template/src/core/index.ts b/packages/named-template/src/core/index.ts index eccea8c3b..87a81658e 100644 --- a/packages/named-template/src/core/index.ts +++ b/packages/named-template/src/core/index.ts @@ -11,12 +11,12 @@ import { } from '@vue-macros/common' import { createTransformContext, + NodeTypes, parse, traverseNode, type AttributeNode, type ElementNode, type NodeTransform, - type NodeTypes, type RootNode, } from '@vue/compiler-dom' import type { CustomBlocks, TemplateContent } from '..' @@ -33,16 +33,11 @@ export * from './utils' export function transformTemplateIs(s: MagicStringAST): NodeTransform { return (node) => { - if ( - !( - node.type === (1 satisfies NodeTypes.ELEMENT) && node.tag === 'template' - ) - ) - return + if (!(node.type === NodeTypes.ELEMENT && node.tag === 'template')) return const propIs = node.props.find( (prop): prop is AttributeNode => - prop.type === (6 satisfies NodeTypes.ATTRIBUTE) && prop.name === 'is', + prop.type === NodeTypes.ATTRIBUTE && prop.name === 'is', ) if (!propIs?.value) return @@ -64,7 +59,7 @@ export function preTransform( const templates = root.children.filter( (node): node is ElementNode => - node.type === (1 satisfies NodeTypes.ELEMENT) && node.tag === 'template', + node.type === NodeTypes.ELEMENT && node.tag === 'template', ) if (templates.length <= 1) return @@ -72,7 +67,7 @@ export function preTransform( for (const node of templates) { const propName = node.props.find( (prop): prop is AttributeNode => - prop.type === (6 satisfies NodeTypes.ATTRIBUTE) && prop.name === 'name', + prop.type === NodeTypes.ATTRIBUTE && prop.name === 'name', ) if (!propName) { preTransformMainTemplate({ s, root, node, id, templateContent }) diff --git a/packages/setup-block/src/core/index.ts b/packages/setup-block/src/core/index.ts index 3bd2f8bb7..c62433ec2 100644 --- a/packages/setup-block/src/core/index.ts +++ b/packages/setup-block/src/core/index.ts @@ -3,7 +3,7 @@ import { MagicStringAST, type CodeTransform, } from '@vue-macros/common' -import { parse, type ElementNode, type NodeTypes } from '@vue/compiler-dom' +import { NodeTypes, parse, type ElementNode } from '@vue/compiler-dom' export function transformSetupBlock( code: string, @@ -29,7 +29,7 @@ export function transformSetupBlock( (tag === 'template' && props.some( (p) => - p.type === (6 satisfies NodeTypes.ATTRIBUTE) && + p.type === NodeTypes.ATTRIBUTE && p.name === 'lang' && p.value && p.value.content && diff --git a/packages/short-bind/src/core/transformer.ts b/packages/short-bind/src/core/transformer.ts index 289191d84..a7b311318 100644 --- a/packages/short-bind/src/core/transformer.ts +++ b/packages/short-bind/src/core/transformer.ts @@ -1,9 +1,9 @@ import { + ConstantTypes, createSimpleExpression, + NodeTypes, processExpression, - type ConstantTypes, type NodeTransform, - type NodeTypes, } from '@vue/compiler-core' export interface Options { @@ -18,14 +18,14 @@ export function transformShortBind(options: Options = {}): NodeTransform { ) return (node, context) => { - if (node.type !== (1 satisfies NodeTypes.ELEMENT)) return + if (node.type !== NodeTypes.ELEMENT) return for (const prop of node.props) { if ( reg.test(prop.loc.source) && - (prop.type === (6 satisfies NodeTypes.ATTRIBUTE) + (prop.type === NodeTypes.ATTRIBUTE ? !prop.value - : prop.type === (7 satisfies NodeTypes.DIRECTIVE) + : prop.type === NodeTypes.DIRECTIVE ? !prop.exp : false) ) { @@ -33,9 +33,9 @@ export function transformShortBind(options: Options = {}): NodeTransform { .replace(reg, '') .replaceAll(/-([A-Z])/gi, (_, name) => name.toUpperCase()) - if (prop.type === (6 satisfies NodeTypes.ATTRIBUTE)) { + if (prop.type === NodeTypes.ATTRIBUTE) { prop.value = { - type: 2 satisfies NodeTypes.TEXT, + type: NodeTypes.TEXT, content: valueName, loc: { start: { ...prop.loc.start }, @@ -44,7 +44,7 @@ export function transformShortBind(options: Options = {}): NodeTransform { }, } prop.loc.start.offset = Number.POSITIVE_INFINITY - } else if (prop.type === (7 satisfies NodeTypes.DIRECTIVE)) { + } else if (prop.type === NodeTypes.DIRECTIVE) { const simpleExpression = createSimpleExpression( valueName, false, @@ -63,10 +63,10 @@ export function transformShortBind(options: Options = {}): NodeTransform { }, source: valueName, }, - 0 satisfies ConstantTypes.NOT_CONSTANT, + ConstantTypes.NOT_CONSTANT, ) - if (prop.arg?.type === (4 satisfies NodeTypes.SIMPLE_EXPRESSION)) + if (prop.arg?.type === NodeTypes.SIMPLE_EXPRESSION) prop.arg.loc.start.offset = Number.POSITIVE_INFINITY prop.exp = processExpression(simpleExpression, context) diff --git a/packages/short-vmodel/src/core/transformer.ts b/packages/short-vmodel/src/core/transformer.ts index d6262bc54..ed3e15ef4 100644 --- a/packages/short-vmodel/src/core/transformer.ts +++ b/packages/short-vmodel/src/core/transformer.ts @@ -1,10 +1,11 @@ import { + ConstantTypes, createSimpleExpression, + NodeTypes, processExpression, type ComponentNode, - type ConstantTypes, + type ExpressionNode, type NodeTransform, - type NodeTypes, type PlainElementNode, type SlotOutletNode, type TemplateNode, @@ -29,7 +30,7 @@ export function transformShortVmodel({ prefix = '$', }: Options = {}): NodeTransform { return (node, context) => { - if (node.type !== (1 satisfies NodeTypes.ELEMENT)) return + if (node.type !== NodeTypes.ELEMENT) return if (prefix === '::') processDirective(node) else processAttribute(prefix, node, context) } @@ -39,8 +40,8 @@ export function processDirective(node: NodeElement): void { for (const [i, prop] of node.props.entries()) { if ( !( - prop.type === (7 satisfies NodeTypes.DIRECTIVE) && - prop.arg?.type === (4 satisfies NodeTypes.SIMPLE_EXPRESSION) && + prop.type === NodeTypes.DIRECTIVE && + prop.arg?.type === NodeTypes.SIMPLE_EXPRESSION && prop.arg.content.startsWith(':') ) ) @@ -69,7 +70,7 @@ export function processAttribute( for (const [i, prop] of node.props.entries()) { if ( !( - prop.type === (6 satisfies NodeTypes.ATTRIBUTE) && + prop.type === NodeTypes.ATTRIBUTE && prop.name.startsWith(prefix) && prop.value ) @@ -89,17 +90,17 @@ export function processAttribute( prop.value.content, false, expLoc, - 0 satisfies ConstantTypes.NOT_CONSTANT, + ConstantTypes.NOT_CONSTANT, ) const exp = processExpression(simpleExpression, context) const argName = prop.name.slice(prefix.length) - const arg = + const arg: ExpressionNode | undefined = argName.length > 0 ? { - type: 4 satisfies NodeTypes.SIMPLE_EXPRESSION, + type: NodeTypes.SIMPLE_EXPRESSION, content: argName, - constType: 3 satisfies ConstantTypes.CAN_STRINGIFY, + constType: ConstantTypes.CAN_STRINGIFY, isStatic: true, loc: { source: argName, @@ -118,7 +119,7 @@ export function processAttribute( : undefined node.props[i] = { - type: 7 satisfies NodeTypes.DIRECTIVE, + type: NodeTypes.DIRECTIVE, name: 'model', arg, exp, diff --git a/packages/volar/package.json b/packages/volar/package.json index f19566077..025e396d2 100644 --- a/packages/volar/package.json +++ b/packages/volar/package.json @@ -279,11 +279,11 @@ "@vue-macros/config": "workspace:*", "@vue-macros/short-bind": "workspace:*", "@vue-macros/short-vmodel": "workspace:*", + "@vue/compiler-core": "catalog:", "@vue/language-core": "catalog:", "muggle-string": "^0.4.1" }, "devDependencies": { - "@vue/compiler-dom": "catalog:", "typescript": "catalog:", "vue-tsc": "catalog:" }, diff --git a/packages/volar/src/boolean-prop.ts b/packages/volar/src/boolean-prop.ts index 6b7bb80ea..dd400c9b2 100644 --- a/packages/volar/src/boolean-prop.ts +++ b/packages/volar/src/boolean-prop.ts @@ -1,6 +1,6 @@ import { transformBooleanProp } from '@vue-macros/boolean-prop/api' +import { ConstantTypes } from '@vue/compiler-core' import type { VueMacrosPlugin } from './common' -import type { ConstantTypes } from '@vue/compiler-dom' const plugin: VueMacrosPlugin<'booleanProp'> = (_, options = {}) => { if (!options) return [] @@ -12,7 +12,7 @@ const plugin: VueMacrosPlugin<'booleanProp'> = (_, options = {}) => { options.nodeTransforms ||= [] options.nodeTransforms.push( transformBooleanProp({ - constType: 0 satisfies ConstantTypes.NOT_CONSTANT, + constType: ConstantTypes.NOT_CONSTANT, }), ) return options diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d11bed037..0d389a2d8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -949,6 +949,9 @@ importers: '@vue-macros/short-vmodel': specifier: workspace:* version: link:../short-vmodel + '@vue/compiler-core': + specifier: 'catalog:' + version: 3.5.12 '@vue/language-core': specifier: 'catalog:' version: 2.1.8(typescript@5.6.3) @@ -956,9 +959,6 @@ importers: specifier: ^0.4.1 version: 0.4.1 devDependencies: - '@vue/compiler-dom': - specifier: 'catalog:' - version: 3.5.12 typescript: specifier: 'catalog:' version: 5.6.3