This repository was archived by the owner on Jun 6, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathindex.js
More file actions
87 lines (72 loc) · 2.69 KB
/
index.js
File metadata and controls
87 lines (72 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
var parser = require('./lib/parser')
var scripter = require('weex-scripter')
var transformerVersion = require('./package.json').version
function transform(name, code, path, elements, config) {
config = config || {}
var path = path || '.'
var elements = elements || {}
var results = []
var bootstrapParams = {}
var thirdPartyJs = {}
var logs = []
var oldFormat = config.oldFormat === true ? true : false
var isEntry = config.isEntry !== false ? true : false
parser.parse(name, code, results, bootstrapParams, thirdPartyJs, logs, elements, path, oldFormat)
var output = '// { "framework": "Weex" }\n\n'
output += results.reverse().map(function (item) {
return item.content
}).join('\n\n// module\n\n')
if (oldFormat) {
output += '\n\n// require module\nrender(\'' + name + '\', {})'
}
else {
if (Object.keys(thirdPartyJs).length) {
output = [scripter.getBundle(thirdPartyJs), output].join('\n\n')
}
if (isEntry) {
bootstrapParams.config = bootstrapParams.config || {}
bootstrapParams.config.transformerVersion = transformerVersion
var configJson = JSON.stringify(bootstrapParams.config)
var dataJson = JSON.stringify(bootstrapParams.data)
output += '\n\n// require module\nbootstrap(\'@weex-component/' + name + '\', ' + configJson
if (dataJson) {
output += ', ' + dataJson + ')'
}
else {
output += ')'
}
}
}
logs = filterLogs(logs, config.logLevel)
return {result: output, logs: logs}
}
function filterLogs(logs, logLevel) {
logLevel = logLevel ? logLevel.toUpperCase() : 'NOTE'
var logLevels = ['OFF', 'ERROR', 'WARNING', 'NOTE']
if (logLevel === 'ALL' || logLevels.indexOf(logLevel) === -1) {
logLevel = 'NOTE'
}
var specifyLevel = logLevels.indexOf(logLevel)
return logs.filter(function (log) {
var curLevel = logLevels.indexOf(log.reason.match(/^(ERROR|WARNING|NOTE): /)[1])
return curLevel <= specifyLevel
})
}
function parseNew(name, content, results, bootstrapParams, thirdPartyJs, logs, elements, path) {
return parser.parse(name, content, results, bootstrapParams, thirdPartyJs, logs, elements, path)
}
function parseOld(name, content, results, bootstrapParams, thirdPartyJs, logs, elements, path) {
return parser.parse(name, content, results, bootstrapParams, thirdPartyJs, logs, elements, path, true)
}
function transformNew(name, code, path, elements, config) {
return transform(name, code, path, elements, config)
}
function transformOld(name, code, path, elements) {
return transform(name, code, path, elements, {oldFormat: true})
}
module.exports = {
parse: parseNew,
parseOld: parseOld,
transform: transformNew,
transformOld: transformOld
}