@rduk/expression

0.5.2 • Public • Published

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

Package Sidebar

Install

npm i @rduk/expression

Weekly Downloads

11

Version

0.5.2

License

MIT

Unpacked Size

73.9 kB

Total Files

43

Last publish

Collaborators

  • khuang