Skip to content

Commit 2ef97fe

Browse files
committed
refactor: isolatedDeclarations for vapor
1 parent 4468a2b commit 2ef97fe

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+198
-130
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66
pull_request:
77
branches:
88
- main
9+
- minor
910

1011
jobs:
1112
test:

packages/compiler-core/src/transforms/transformExpression.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,8 @@ import { parseExpression } from '@babel/parser'
4444
import { IS_REF, UNREF } from '../runtimeHelpers'
4545
import { BindingTypes } from '../options'
4646

47-
export const isLiteralWhitelisted = /*#__PURE__*/ makeMap(
48-
'true,false,null,this',
49-
)
47+
export const isLiteralWhitelisted: (key: string) => boolean =
48+
/*#__PURE__*/ makeMap('true,false,null,this')
5049

5150
export const transformExpression: NodeTransform = (node, context) => {
5251
if (node.type === NodeTypes.INTERPOLATION) {

packages/compiler-core/src/transforms/vOn.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { validateBrowserExpression } from '../validateExpression'
1616
import { hasScopeRef, isMemberExpression } from '../utils'
1717
import { TO_HANDLER_KEY } from '../runtimeHelpers'
1818

19-
export const fnExpRE =
19+
export const fnExpRE: RegExp =
2020
/^\s*(async\s*)?(\([^)]*?\)|[\w$_]+)\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/
2121

2222
export interface VOnDirectiveNode extends DirectiveNode {

packages/compiler-core/src/utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ export const isMemberExpressionNode: (
158158
context: Pick<TransformContext, 'expressionPlugins'>,
159159
) => boolean = __BROWSER__
160160
? (NOOP as any)
161-
: (path, context): boolean => {
161+
: (path, context) => {
162162
try {
163163
let ret: Expression = parseExpression(path, {
164164
plugins: context.expressionPlugins,
@@ -176,7 +176,7 @@ export const isMemberExpressionNode: (
176176

177177
export const isMemberExpression: (
178178
path: string,
179-
context: TransformContext,
179+
context: Pick<TransformContext, 'expressionPlugins'>,
180180
) => boolean = __BROWSER__ ? isMemberExpressionBrowser : isMemberExpressionNode
181181

182182
export function advancePositionWithClone(

packages/compiler-dom/src/transforms/vOn.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,11 @@ export const resolveModifiers = (
3737
modifiers: string[],
3838
context: TransformContext | null,
3939
loc: SourceLocation,
40-
) => {
40+
): {
41+
keyModifiers: string[]
42+
nonKeyModifiers: string[]
43+
eventOptionModifiers: string[]
44+
} => {
4145
const keyModifiers = []
4246
const nonKeyModifiers = []
4347
const eventOptionModifiers = []

packages/compiler-vapor/src/generate.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ export type CodegenOptions = Omit<BaseCodegenOptions, 'optimizeImports'>
2222
export class CodegenContext {
2323
options: Required<CodegenOptions>
2424

25-
helpers = new Set<string>([])
26-
vaporHelpers = new Set<string>([])
25+
helpers: Set<string> = new Set<string>([])
26+
vaporHelpers: Set<string> = new Set<string>([])
2727
helper = (name: string) => {
2828
this.helpers.add(name)
2929
return `_${name}`
@@ -33,7 +33,7 @@ export class CodegenContext {
3333
return `_${name}`
3434
}
3535

36-
delegates = new Set<string>()
36+
delegates: Set<string> = new Set<string>()
3737

3838
identifiers: Record<string, string[]> = Object.create(null)
3939

@@ -56,11 +56,11 @@ export class CodegenContext {
5656
enterBlock(block: BlockIRNode) {
5757
const parent = this.block
5858
this.block = block
59-
return () => (this.block = parent)
59+
return (): BlockIRNode => (this.block = parent)
6060
}
6161

6262
scopeLevel: number = 0
63-
enterScope() {
63+
enterScope(): [level: number, exit: () => number] {
6464
return [this.scopeLevel++, () => this.scopeLevel--] as const
6565
}
6666

packages/compiler-vapor/src/generators/component.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,10 @@ export function genCreateComponent(
7676
}
7777
}
7878

79-
export function genRawProps(props: IRProps[], context: CodegenContext) {
79+
export function genRawProps(
80+
props: IRProps[],
81+
context: CodegenContext,
82+
): CodeFragment[] | undefined {
8083
const { vaporHelper } = context
8184
const frag = props
8285
.map(props => {

packages/compiler-vapor/src/generators/directive.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ import {
2020
type WithDirectiveIRNode,
2121
} from '../ir'
2222

23-
export function genDirectivesForElement(id: number, context: CodegenContext) {
23+
export function genDirectivesForElement(
24+
id: number,
25+
context: CodegenContext,
26+
): CodeFragment[] {
2427
const dirs = filterDirectives(id, context.block.operation)
2528
return dirs.length ? genWithDirective(dirs, context) : []
2629
}
@@ -78,7 +81,7 @@ export function genWithDirective(
7881
}
7982
}
8083

81-
export function genDirectiveModifiers(modifiers: string[]) {
84+
export function genDirectiveModifiers(modifiers: string[]): string {
8285
return modifiers
8386
.map(
8487
value =>

packages/compiler-vapor/src/generators/event.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ function genArrayExpression(elements: string[]) {
9090
export function genEventHandler(
9191
context: CodegenContext,
9292
value: SimpleExpressionNode | undefined,
93-
) {
93+
): CodeFragment[] {
9494
if (value && value.content.trim()) {
9595
const isMemberExp = isMemberExpression(value.content, context.options)
9696
const isInlineStatement = !(isMemberExp || fnExpRE.test(value.content))

packages/compiler-vapor/src/generators/modelValue.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export function genSetModelValue(
2525
export function genModelHandler(
2626
value: SimpleExpressionNode,
2727
context: CodegenContext,
28-
) {
28+
): CodeFragment[] {
2929
const {
3030
options: { isTS },
3131
} = context

0 commit comments

Comments
 (0)