1 | const FirescriptParser = require('./FirescriptParser')
|
2 | const JSTranspiler = require('./JSTranspiler')
|
3 |
|
4 | require('./fs-parser/nodes/ArrayExpression.js')
|
5 | require('./fs-parser/nodes/ArrayPattern.js')
|
6 | require('./fs-parser/nodes/ArrowFunctionExpression.js')
|
7 | require('./fs-parser/nodes/AssignmentExpression.js')
|
8 | require('./fs-parser/nodes/AssignmentPattern.js')
|
9 | require('./fs-parser/nodes/AwaitExpression.js')
|
10 | require('./fs-parser/nodes/BinaryExpression.js')
|
11 | require('./fs-parser/nodes/BlockStatement.js')
|
12 | require('./fs-parser/nodes/BreakStatement.js')
|
13 | require('./fs-parser/nodes/CallExpression.js')
|
14 | require('./fs-parser/nodes/CatchClause.js')
|
15 | require('./fs-parser/nodes/ClassBody.js')
|
16 | require('./fs-parser/nodes/ClassDeclaration.js')
|
17 | require('./fs-parser/nodes/ClassExpression.js')
|
18 | require('./fs-parser/nodes/Comment.js')
|
19 | require('./fs-parser/nodes/ConditionalExpression.js')
|
20 | require('./fs-parser/nodes/ContinueStatement.js')
|
21 | require('./fs-parser/nodes/DebuggerStatement.js')
|
22 | require('./fs-parser/nodes/DoWhileStatement.js')
|
23 | require('./fs-parser/nodes/EmptyStatement.js')
|
24 | require('./fs-parser/nodes/ExportAllDeclaration.js')
|
25 | require('./fs-parser/nodes/ExportDefaultDeclaration.js')
|
26 | require('./fs-parser/nodes/ExportNamedDeclaration.js')
|
27 | require('./fs-parser/nodes/ExportSpecifier.js')
|
28 | require('./fs-parser/nodes/ExpressionStatement.js')
|
29 | require('./fs-parser/nodes/FirescriptGrouping.js')
|
30 | require('./fs-parser/nodes/FirescriptLogStatement.js')
|
31 | require('./fs-parser/nodes/FirescriptSyntaxError.js')
|
32 | require('./fs-parser/nodes/FirescriptTyping.js')
|
33 | require('./fs-parser/nodes/ForInStatement.js')
|
34 | require('./fs-parser/nodes/ForOfStatement.js')
|
35 | require('./fs-parser/nodes/ForStatement.js')
|
36 | require('./fs-parser/nodes/FunctionDeclaration.js')
|
37 | require('./fs-parser/nodes/FunctionExpression.js')
|
38 | require('./fs-parser/nodes/Identifier.js')
|
39 | require('./fs-parser/nodes/IfStatement.js')
|
40 | require('./fs-parser/nodes/ImportDeclaration.js')
|
41 | require('./fs-parser/nodes/ImportDefaultSpecifier.js')
|
42 | require('./fs-parser/nodes/ImportNamespaceSpecifier.js')
|
43 | require('./fs-parser/nodes/ImportSpecifier.js')
|
44 | require('./fs-parser/nodes/Literal.js')
|
45 | require('./fs-parser/nodes/LogicalExpression.js')
|
46 | require('./fs-parser/nodes/MemberExpression.js')
|
47 | require('./fs-parser/nodes/MetaProperty.js')
|
48 | require('./fs-parser/nodes/MethodDefinition.js')
|
49 | require('./fs-parser/nodes/NewExpression.js')
|
50 | require('./fs-parser/nodes/Node.js')
|
51 | require('./fs-parser/nodes/NullNode.js')
|
52 | require('./fs-parser/nodes/ObjectExpression.js')
|
53 | require('./fs-parser/nodes/ObjectPattern.js')
|
54 | require('./fs-parser/nodes/Program.js')
|
55 | require('./fs-parser/nodes/Property.js')
|
56 | require('./fs-parser/nodes/RestElement.js')
|
57 | require('./fs-parser/nodes/ReturnStatement.js')
|
58 | require('./fs-parser/nodes/SequenceExpression.js')
|
59 | require('./fs-parser/nodes/SpreadElement.js')
|
60 | require('./fs-parser/nodes/Super.js')
|
61 | require('./fs-parser/nodes/SwitchCase.js')
|
62 | require('./fs-parser/nodes/SwitchStatement.js')
|
63 | require('./fs-parser/nodes/TaggedTemplateExpression.js')
|
64 | require('./fs-parser/nodes/TemplateElement.js')
|
65 | require('./fs-parser/nodes/TemplateLiteral.js')
|
66 | require('./fs-parser/nodes/ThisExpression.js')
|
67 | require('./fs-parser/nodes/ThrowStatement.js')
|
68 | require('./fs-parser/nodes/TryStatement.js')
|
69 | require('./fs-parser/nodes/UnaryExpression.js')
|
70 | require('./fs-parser/nodes/UpdateExpression.js')
|
71 | require('./fs-parser/nodes/VariableDeclaration.js')
|
72 | require('./fs-parser/nodes/VariableDeclarator.js')
|
73 | require('./fs-parser/nodes/WhileStatement.js')
|
74 | require('./fs-parser/nodes/YieldExpression.js')
|
75 |
|
76 | require('./fs-parser/nodeDefinition.js')
|
77 | require('./fs-parser/nodeMapping.js')
|
78 | require('./js-transformations/classDeclaration.js')
|
79 | require('./js-transformations/exportAllDeclaration.js')
|
80 | require('./js-transformations/exportDeclaration.js')
|
81 | require('./js-transformations/functionDeclaration.js')
|
82 | require('./js-transformations/functionExpression.js')
|
83 | require('./js-transformations/functionParamTyping.js')
|
84 | require('./js-transformations/importDeclaration.js')
|
85 | require('./js-transformations/logStatement.js')
|
86 | require('./js-transformations/programm.js')
|
87 | require('./js-transformations/regexp.js')
|
88 | require('./js-transformations/templateLiteral.js')
|
89 | require('./js-transformations/variableTyping.js')
|
90 | require('./js-elements/ArrayExpression.js')
|
91 | require('./js-elements/ArrayPattern.js')
|
92 | require('./js-elements/ArrowFunctionExpression.js')
|
93 | require('./js-elements/AssignmentExpression.js')
|
94 | require('./js-elements/AssignmentPattern.js')
|
95 | require('./js-elements/AwaitExpression.js')
|
96 | require('./js-elements/BinaryExpression.js')
|
97 | require('./js-elements/Block.js')
|
98 | require('./js-elements/BlockStatement.js')
|
99 | require('./js-elements/BreakStatement.js')
|
100 | require('./js-elements/CallExpression.js')
|
101 | require('./js-elements/CatchClause.js')
|
102 | require('./js-elements/ClassBody.js')
|
103 | require('./js-elements/ClassDeclaration.js')
|
104 | require('./js-elements/ClassExpression.js')
|
105 | require('./js-elements/Comment.js')
|
106 | require('./js-elements/ConditionalExpression.js')
|
107 | require('./js-elements/ContinueStatement.js')
|
108 | require('./js-elements/DebuggerStatement.js')
|
109 | require('./js-elements/DoWhileStatement.js')
|
110 | require('./js-elements/EmptyStatement.js')
|
111 | require('./js-elements/ExportAllDeclaration.js')
|
112 | require('./js-elements/ExportDefaultDeclaration.js')
|
113 | require('./js-elements/ExportNamedDeclaration.js')
|
114 | require('./js-elements/ExportSpecifier.js')
|
115 | require('./js-elements/ExpressionStatement.js')
|
116 | require('./js-elements/ForInStatement.js')
|
117 | require('./js-elements/ForOfStatement.js')
|
118 | require('./js-elements/ForStatement.js')
|
119 | require('./js-elements/FunctionDeclaration.js')
|
120 | require('./js-elements/FunctionExpression.js')
|
121 | require('./js-elements/Identifier.js')
|
122 | require('./js-elements/IfStatement.js')
|
123 | require('./js-elements/ImportDeclaration.js')
|
124 | require('./js-elements/ImportDefaultSpecifier.js')
|
125 | require('./js-elements/ImportNamespaceSpecifier.js')
|
126 | require('./js-elements/ImportSpecifier.js')
|
127 | require('./js-elements/JSElement.js')
|
128 | require('./js-elements/LabeledStatement.js')
|
129 | require('./js-elements/Line.js')
|
130 | require('./js-elements/Literal.js')
|
131 | require('./js-elements/LogicalExpression.js')
|
132 | require('./js-elements/MemberExpression.js')
|
133 | require('./js-elements/MetaProperty.js')
|
134 | require('./js-elements/MethodDefinition.js')
|
135 | require('./js-elements/NewExpression.js')
|
136 | require('./js-elements/ObjectExpression.js')
|
137 | require('./js-elements/ObjectPattern.js')
|
138 | require('./js-elements/Program.js')
|
139 | require('./js-elements/Property.js')
|
140 | require('./js-elements/RestElement.js')
|
141 | require('./js-elements/ReturnStatement.js')
|
142 | require('./js-elements/SequenceExpression.js')
|
143 | require('./js-elements/SpreadElement.js')
|
144 | require('./js-elements/Super.js')
|
145 | require('./js-elements/SwitchCase.js')
|
146 | require('./js-elements/SwitchStatement.js')
|
147 | require('./js-elements/TaggedTemplateExpression.js')
|
148 | require('./js-elements/TemplateElement.js')
|
149 | require('./js-elements/TemplateLiteral.js')
|
150 | require('./js-elements/ThisExpression.js')
|
151 | require('./js-elements/ThrowStatement.js')
|
152 | require('./js-elements/TryStatement.js')
|
153 | require('./js-elements/UnaryExpression.js')
|
154 | require('./js-elements/UpdateExpression.js')
|
155 | require('./js-elements/VariableDeclaration.js')
|
156 | require('./js-elements/VariableDeclarator.js')
|
157 | require('./js-elements/WhileStatement.js')
|
158 | require('./js-elements/YieldExpression.js')
|
159 |
|
160 | module.exports = {
|
161 | FirescriptParser,
|
162 |
|
163 | parse (input, opts) {
|
164 | opts = opts || {}
|
165 | const parser = new FirescriptParser(opts)
|
166 | return parser.parse(input)
|
167 | },
|
168 |
|
169 | transpile (input, opts) {
|
170 | opts = opts || {}
|
171 |
|
172 | let ast
|
173 |
|
174 | if (typeof input === 'string') {
|
175 | const parser = new FirescriptParser(opts)
|
176 | ast = parser.parse(input)
|
177 | } else {
|
178 | ast = input
|
179 | }
|
180 |
|
181 | opts.features = {
|
182 | 'esModules': false,
|
183 | 'esDefaultParams': false,
|
184 | 'esClasses': true,
|
185 | 'esTemplates': true,
|
186 | 'extendRegExp': true,
|
187 | 'dissableRuntime': false,
|
188 | 'fireRTModuleName': 'firescript-runtime'
|
189 | }
|
190 |
|
191 | const transpiler = new JSTranspiler(opts)
|
192 | return transpiler.transpile(ast)
|
193 | }
|
194 | }
|