d8bdb8fb08c3c63129e0767e8675fc80004e68e6fbc220c013cb911f4572d9d7c044e2d80d844a7f46456b1a90dd27a9f029a69df55b57d23e2db4fc9102ac 783 B

12345678910111213141516171819202122232425
  1. /* @flow */
  2. import { parse } from './parser/index'
  3. import { optimize } from './optimizer'
  4. import { generate } from './codegen/index'
  5. import { createCompilerCreator } from './create-compiler'
  6. // `createCompilerCreator` allows creating compilers that use alternative
  7. // parser/optimizer/codegen, e.g the SSR optimizing compiler.
  8. // Here we just export a default compiler using the default parts.
  9. export const createCompiler = createCompilerCreator(function baseCompile (
  10. template: string,
  11. options: CompilerOptions
  12. ): CompiledResult {
  13. const ast = parse(template.trim(), options)
  14. if (options.optimize !== false) {
  15. optimize(ast, options)
  16. }
  17. const code = generate(ast, options)
  18. return {
  19. ast,
  20. render: code.render,
  21. staticRenderFns: code.staticRenderFns
  22. }
  23. })