script pattern factory
Simple tool for creating AST patterns from JavaScript code
API
SPF.parse (source, opts)
Traverse source code and returns its AST pattern
source
(string)opts
(object) - optionalinput
(object)minify
(boolean/opts) uglify-js minify configuration. iftrue
the source will be minified using the default configuration (UglifyJS.minify(code);
)
parse
(object) meriyah parsing APIoutput
(object)raw
(boolean) return raw nodescompressed
(boolean) return compressed pattern (e.gVVVVV
->V5
)map
(object) override AST nodes mapping
SPF.inspect()
returns the AST nodes mapping
AST Nodes Mapping
{
Program: '',
FunctionDeclaration: 'F',
VariableDeclaration: 'V',
VariableDeclarator: 'v',
BlockStatement: 'B',
Identifier: 'I',
ExpressionStatement: 'E',
CallExpression: 'C',
ThisExpression: 'd',
Literal: 'e',
EmptyStatement: 'h',
DebuggerStatement: 'i',
WithStatement: 'j',
ReturnStatement: 'k',
LabeledStatement: 'l',
BreakStatement: 'm',
ContinueStatement: 'n',
IfStatement: 'o',
SwitchStatement: 'p',
SwitchCase: 'q',
ThrowStatement: 'r',
TryStatement: 's',
CatchClause: 't',
WhileStatement: 'u',
DoWhileStatement: 'c',
ForStatement: 'w',
ForInStatement: 'x',
Property: 'z',
ArrayExpression: 'A',
ObjectExpression: 'b',
FunctionExpression: 'P',
UnaryExpression: 'D',
UnaryOperator: 'g',
UpdateExpression: 'a',
UpdateOperator: 'G',
BinaryExpression: 'H',
BinaryOperator: 'f',
AssignmentExpression: 'J',
AssignmentOperator: 'K',
LogicalExpression: 'L',
LogicalOperator: 'M',
MemberExpression: 'N',
ConditionalExpression: 'O',
NewExpression: 'Q',
SequenceExpression: 'R',
}
Example - SPF.parse
const SPF = ; { const code = ` const x = 10; function foo(val){ console.log(val); } foo(x); const y = 55; `; const pattern = await SPF; //VveIFIBECNIIIIECIIVveI console; console;};
SPF.getNodes (source, opts)
Traverse source code and returns its AST, complete with the code for each node.
source
(string)parse
(object) meriyah parsing API. Note the location (loc
) option is on by default and is required to extract the actual code for each node.
Example - SPF.getNodes
const SPF = ; { const code = ` const x = 10; function foo(val){ console.log(val); } foo(x); ; const y = 55; `; const nodes = await SPF; console; for let node of nodes console; };