| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- import Vue, { VNode } from "vue";
- import {
- compile,
- compileToFunctions,
- ssrCompile,
- ssrCompileToFunctions,
- parseComponent,
- generateCodeFrame
- } from "./";
- // check compile options
- const compiled = compile("<div>hi</div>", {
- 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("<div>hi</div>");
- // 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("<template></template>", {
- 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)
|