refactor: expose parse in compiler-dom, improve sfc parse error handling

This commit is contained in:
Evan You
2019-12-22 19:44:21 -05:00
parent 7d436ab59a
commit 90ddb7c260
33 changed files with 243 additions and 147 deletions

View File

@@ -1,5 +1,5 @@
import { CompilerOptions } from './options'
import { parse } from './parse'
import { baseParse } from './parse'
import { transform } from './transform'
import { generate, CodegenResult } from './codegen'
import { RootNode } from './ast'
@@ -43,7 +43,7 @@ export function baseCompile(
onError(createCompilerError(ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED))
}
const ast = isString(template) ? parse(template, options) : template
const ast = isString(template) ? baseParse(template, options) : template
transform(ast, {
...options,
prefixIdentifiers,

View File

@@ -7,7 +7,7 @@ export {
TransformOptions,
CodegenOptions
} from './options'
export { parse, TextModes } from './parse'
export { baseParse, TextModes } from './parse'
export {
transform,
createStructuralDirectiveTransform,

View File

@@ -66,7 +66,10 @@ interface ParserContext {
inPre: boolean
}
export function parse(content: string, options: ParserOptions = {}): RootNode {
export function baseParse(
content: string,
options: ParserOptions = {}
): RootNode {
const context = createParserContext(content, options)
const start = getCursor(context)