UNPKG

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