2019-11-29 17:42:04 +00:00
|
|
|
import {
|
|
|
|
baseCompile,
|
2019-12-23 00:44:21 +00:00
|
|
|
baseParse,
|
2019-11-29 17:42:04 +00:00
|
|
|
CompilerOptions,
|
|
|
|
CodegenResult,
|
2020-01-02 23:21:56 +00:00
|
|
|
ParserOptions,
|
2020-02-04 17:20:51 +00:00
|
|
|
RootNode,
|
2020-02-07 06:06:51 +00:00
|
|
|
noopDirectiveTransform,
|
2020-02-07 19:24:56 +00:00
|
|
|
NodeTransform,
|
|
|
|
DirectiveTransform
|
2019-11-29 17:42:04 +00:00
|
|
|
} from '@vue/compiler-core'
|
2020-04-08 22:51:25 +00:00
|
|
|
import { parserOptions } from './parserOptions'
|
2019-10-03 20:55:14 +00:00
|
|
|
import { transformStyle } from './transforms/transformStyle'
|
2019-10-08 19:35:57 +00:00
|
|
|
import { transformVHtml } from './transforms/vHtml'
|
2019-10-10 14:18:19 +00:00
|
|
|
import { transformVText } from './transforms/vText'
|
2019-10-10 22:02:51 +00:00
|
|
|
import { transformModel } from './transforms/vModel'
|
2019-10-14 04:33:23 +00:00
|
|
|
import { transformOn } from './transforms/vOn'
|
2019-11-25 03:04:26 +00:00
|
|
|
import { transformShow } from './transforms/vShow'
|
2020-02-06 20:53:26 +00:00
|
|
|
import { warnTransitionChildren } from './transforms/warnTransitionChildren'
|
2020-02-12 20:00:00 +00:00
|
|
|
import { stringifyStatic } from './transforms/stringifyStatic'
|
2020-07-08 16:32:07 +00:00
|
|
|
import { ignoreSideEffectTags } from './transforms/ignoreSideEffectTags'
|
2020-06-10 20:54:23 +00:00
|
|
|
import { extend } from '@vue/shared'
|
2019-09-17 15:57:25 +00:00
|
|
|
|
2020-04-08 22:51:25 +00:00
|
|
|
export { parserOptions }
|
2019-12-23 00:44:21 +00:00
|
|
|
|
2020-02-07 19:24:56 +00:00
|
|
|
export const DOMNodeTransforms: NodeTransform[] = [
|
|
|
|
transformStyle,
|
|
|
|
...(__DEV__ ? [warnTransitionChildren] : [])
|
|
|
|
]
|
|
|
|
|
|
|
|
export const DOMDirectiveTransforms: Record<string, DirectiveTransform> = {
|
|
|
|
cloak: noopDirectiveTransform,
|
|
|
|
html: transformVHtml,
|
|
|
|
text: transformVText,
|
|
|
|
model: transformModel, // override compiler-core
|
|
|
|
on: transformOn, // override compiler-core
|
|
|
|
show: transformShow
|
2020-02-07 06:06:51 +00:00
|
|
|
}
|
|
|
|
|
2019-09-20 04:12:37 +00:00
|
|
|
export function compile(
|
|
|
|
template: string,
|
|
|
|
options: CompilerOptions = {}
|
|
|
|
): CodegenResult {
|
2020-06-10 20:54:23 +00:00
|
|
|
return baseCompile(
|
|
|
|
template,
|
|
|
|
extend({}, parserOptions, options, {
|
2020-07-08 16:32:07 +00:00
|
|
|
nodeTransforms: [
|
|
|
|
// ignore <script> and <tag>
|
|
|
|
// this is not put inside DOMNodeTransforms because that list is used
|
|
|
|
// by compiler-ssr to generate vnode fallback branches
|
|
|
|
ignoreSideEffectTags,
|
|
|
|
...DOMNodeTransforms,
|
|
|
|
...(options.nodeTransforms || [])
|
|
|
|
],
|
2020-06-10 20:54:23 +00:00
|
|
|
directiveTransforms: extend(
|
|
|
|
{},
|
|
|
|
DOMDirectiveTransforms,
|
|
|
|
options.directiveTransforms || {}
|
|
|
|
),
|
|
|
|
transformHoist: __BROWSER__ ? null : stringifyStatic
|
|
|
|
})
|
|
|
|
)
|
2019-09-20 04:12:37 +00:00
|
|
|
}
|
2019-09-22 20:50:57 +00:00
|
|
|
|
2020-01-02 23:21:56 +00:00
|
|
|
export function parse(template: string, options: ParserOptions = {}): RootNode {
|
2020-06-10 20:54:23 +00:00
|
|
|
return baseParse(template, extend({}, parserOptions, options))
|
2019-12-23 00:44:21 +00:00
|
|
|
}
|
|
|
|
|
2020-02-06 20:29:02 +00:00
|
|
|
export * from './runtimeHelpers'
|
2020-02-04 23:37:23 +00:00
|
|
|
export { transformStyle } from './transforms/transformStyle'
|
2020-02-05 19:23:03 +00:00
|
|
|
export { createDOMCompilerError, DOMErrorCodes } from './errors'
|
2019-09-22 20:50:57 +00:00
|
|
|
export * from '@vue/compiler-core'
|