import Vue, { VNode } from "vue"; import { compile, compileToFunctions, ssrCompile, ssrCompileToFunctions, parseComponent, generateCodeFrame } from "./"; // check compile options const compiled = compile("
hi
", { outputSourceRange: true, preserveWhitespace: false, whitespace: 'condense', modules: [ { preTransformNode: el => el, transformNode: el => el, postTransformNode: el => { el.tag = "p"; }, genData: el => el.tag, transformCode: (el, code) => code, staticKeys: ["test"] } ], directives: { test: (node, directiveMeta) => { node.tag; directiveMeta.value; } } }); // can be passed to function constructor new Function(compiled.render); compiled.staticRenderFns.map(fn => new Function(fn)); // with outputSourceRange: true // errors should be objects with range compiled.errors.forEach(e => { console.log(e.msg) }) // without option or without outputSourceRange: true, should be strings const { errors } = compile(`foo`) errors.forEach(e => { console.log(e.length) }) const { errors: errors2 } = compile(`foo`, {}) errors2.forEach(e => { console.log(e.length) }) const { errors: errors3 } = compile(`foo`, { outputSourceRange: false }) errors3.forEach(e => { console.log(e.length) }) const compiledFns = compileToFunctions("
hi
"); // can be passed to component render / staticRenderFns options const vm = new Vue({ data() { return { test: "Test" }; }, render: compiledFns.render, staticRenderFns: compiledFns.staticRenderFns }); // can be called with component instance const vnode: VNode = compiledFns.render.call(vm); // check SFC parser const desc = parseComponent("", { pad: "space", deindent: false }); const templateContent: string = desc.template!.content; const scriptContent: string = desc.script!.content; const styleContent: string = desc.styles.map(s => s.content).join("\n"); const codeframe: string = generateCodeFrame(`foobar`, 0, 4)