0.5.2 • Published 6 years ago

@rduk/expression v0.5.2

Weekly downloads
1
License
MIT
Repository
github
Last release
6 years ago

RDUK - Expression

Build Status Coverage Status bitHound Overall Score Greenkeeper badge JavaScript Style Guide

Generate abstract syntax tree

Note: tested with node v6.4.0

Installation

npm install @rduk/expression --save --save-exact

Usage

const expression =  require('@rduk/expression');
let tree = expression.lambda.parse(user => (user.age >= 21));

Example

let fn = (user, profile) => ({
    id: user.id,
    email: user.email,
    password: user.password,
    firstName: profile.first_name,
    lastName: profile.last_name
});

let expression = ast.lambda.parse(fn);

/**
 * LambdaExpression {
 *  body:
 *   ObjectLiteralExpression {
 *     fields:
 *      [ FieldExpression {
 *          name: 'id',
 *          assignment:
 *            PropertyExpression {
 *              property: 'id',
 *              context:
 *                NameExpression { name: 'user' } } },
 *        FieldExpression {
 *          name: 'email',
 *          assignment:
 *            PropertyExpression {
 *              property: 'email',
 *              context:
 *                NameExpression { name: 'user' } } },
 *        FieldExpression {
 *          name: 'password',
 *          assignment:
 *            PropertyExpression {
 *              property: 'password',
 *              context:
 *                NameExpression { name: 'user' } } },
 *        FieldExpression {
 *          name: 'firstName',
 *          assignment:
 *            PropertyExpression {
 *              property: 'first_name',
 *              context:
 *                NameExpression { name: 'profile' } } },
 *        FieldExpression {
 *          name: 'lastName',
 *          assignment:
 *            PropertyExpression {
 *              property: 'last_name',
 *              context:
 *                NameExpression { name: 'profile' } } } ] },
 *  args:
 *   [ NameExpression { name: 'user' },
 *     NameExpression { name: 'profile' } ] }
 */

License and copyright

see LICENSE file

0.5.2

6 years ago

0.5.1

6 years ago

0.5.0

6 years ago

0.4.0

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago