vue3-core/packages/compiler-dom/src/index.ts

79 lines
2.2 KiB
TypeScript
Raw Normal View History

import {
baseCompile,
baseParse,
CompilerOptions,
CodegenResult,
2020-01-03 07:21:56 +08:00
ParserOptions,
2020-02-05 01:20:51 +08:00
RootNode,
2020-02-07 14:06:51 +08:00
noopDirectiveTransform,
TransformPreset,
getBaseTransformPreset
} from '@vue/compiler-core'
import { parserOptionsMinimal } from './parserOptionsMinimal'
import { parserOptionsStandard } from './parserOptionsStandard'
import { transformStyle } from './transforms/transformStyle'
import { transformVHtml } from './transforms/vHtml'
import { transformVText } from './transforms/vText'
2019-10-11 06:02:51 +08:00
import { transformModel } from './transforms/vModel'
import { transformOn } from './transforms/vOn'
import { transformShow } from './transforms/vShow'
import { warnTransitionChildren } from './transforms/warnTransitionChildren'
export const parserOptions = __BROWSER__
? parserOptionsMinimal
: parserOptionsStandard
2020-02-07 14:06:51 +08:00
export function getDOMTransformPreset(
prefixIdentifiers?: boolean
): TransformPreset {
const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(
prefixIdentifiers
)
return [
[
...nodeTransforms,
transformStyle,
...(__DEV__ ? [warnTransitionChildren] : [])
],
{
...directiveTransforms,
cloak: noopDirectiveTransform,
html: transformVHtml,
text: transformVText,
model: transformModel, // override compiler-core
on: transformOn, // override compiler-core
show: transformShow
}
]
}
2019-09-20 12:12:37 +08:00
export function compile(
template: string,
options: CompilerOptions = {}
): CodegenResult {
2020-02-07 14:06:51 +08:00
const [nodeTransforms, directiveTransforms] = getDOMTransformPreset(
options.prefixIdentifiers
)
return baseCompile(template, {
...parserOptions,
...options,
2020-02-07 14:06:51 +08:00
nodeTransforms: [...nodeTransforms, ...(options.nodeTransforms || [])],
2019-09-22 05:42:12 +08:00
directiveTransforms: {
2020-02-07 14:06:51 +08:00
...directiveTransforms,
2019-09-22 05:42:12 +08:00
...(options.directiveTransforms || {})
}
2019-09-20 12:12:37 +08:00
})
}
2019-09-23 04:50:57 +08:00
2020-01-03 07:21:56 +08:00
export function parse(template: string, options: ParserOptions = {}): RootNode {
return baseParse(template, {
...parserOptions,
...options
})
}
export * from './runtimeHelpers'
export { transformStyle } from './transforms/transformStyle'
export { createDOMCompilerError, DOMErrorCodes } from './errors'
2019-09-23 04:50:57 +08:00
export * from '@vue/compiler-core'