cssauron-falafel

falafel bindings for cssauron

npm install cssauron-falafel
57 downloads in the last week
306 downloads in the last month

cssauron-falafel

cssauron bindings for falafel / esprima JS ASTs.

It shortens the esprima names they're a bit verbose.

It also supports .relation classes -- for example:

if(x) {

}

if(x > y) {

}

if(100) {

}

If we wanted to select all of the if tests ("x", "x > y", "100"), we could use the following selectors:

if > *:first-child                  // lil verbose!
.test                               // test the relation from the parent, not the node type
if > .test                          // more specific -- only ".test" relations from "if" statements.

node types

LabeledStatement        ->    label
BlockStatement            ->    block
Program                    ->    root
ExpressionStatement        ->    expr
ConditionalExpression    ->    ternary
IfStatement                ->    if
BreakStatement            ->    break
ContinueStatement        ->    continue
WithStatement            ->    with
SwitchStatement            ->    switch
ReturnStatement            ->    return
ThrowStatement            ->    throw
TryStatement            ->    try
WhileStatement            ->    while
DoWhileStatement        ->    do-while
ForStatement            ->    for
ForInStatement            ->    for-in
FunctionDeclaration        ->    function
VariableDeclaration        ->    variable-decl
VariableDeclarator        ->    variable
LogicalExpression        ->    binary
BinaryExpression        ->    binary
AssignmentExpression    ->    assign
ArrayExpression            ->    array
ObjectExpression        ->    object
ObjectKeyExpression        ->    key
FunctionExpression        ->    function
SequenceExpression        ->    sequence
UpdateExpression        ->    update
UnaryExpression            ->    unary
CallExpression            ->    call
NewExpression            ->    new
MemberExpression        ->    lookup
SwitchClause            ->    case
CatchClause                ->    catch
DebuggerStatement        ->    debugger
ThisExpression            ->    this
Identifier                ->    id
Literal                    ->    literal

license

MIT

npm loves you