Weex DSL Transformer
<template>
+ <style>
+ <script>
+ <element>
Install
npm install weex-transformer
Usage
CLI tool
Usage: transformer [options] <file...>
Options:
-h, --help output usage information
-V, --version output the version number
-g, --logLevel [value] specify log output level - `NOTE`, `WARNING`, `ERROR`, `OFF` (default: `NOTE`, equivalent to `ALL`)
-e, --isEntry [value] whether is an entry module which has `bootstrap` (default: true)
-l, --oldFormat [value] whether to transform to old format (default: false)
-o, --output [path] the output file dirname
API
transform(name, code, path, elements, config)
var transformer = require('weex-transformer')
var output = transformer.transform('foo', '/* code here */', '.', {})
params
name
: string, current bundle namecode
: string, source codepath
: string optional, useful when find custom component in a certain pathelements
: object optional, existed custom component mapconfig
: object optional
logLevel
: specify log output level - NOTE
(default, equivalent to ALL
), WARNING
, ERROR
, OFF
, aranging from low to highisEntry
: whether is an entry module which has bootstrap
(default: true)oldFormat
: whether to transform to old format (default: false)
returns
- an object with keys
result
: string, all custom components define()
and final bootstrap()
logs
: array, corresponding warning & error logs
transformOld(...)
same params and different output format for old style: register(name, options)
and render(name, data)
transforming content
template
: JavaScript Object by parse5
style
: JSON Object by css
script
: JavaScript AST with template
, deps
, style
by esprima
element
: string code map for deeply parsing
workflow
- get template, style, script, elements
- parse and validate style by
styler
- parse and validate template by
templater
and get deps - parse script by
scripter
- join template, style and script to build a module
- collect element code map
- output
define()
string code, deps, element code map and logs - find deps code by name from element code map first and from file system for second
- join all deps code together recursively
- find all required 3rd party javascript and bundle them
- append
bootstrap()
string code and bundle at last