How to use the vega-expression.codegen function in vega-expression

To help you get started, we’ve selected a few vega-expression examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github apache-superset / superset-ui / packages / superset-ui-encodable / src / parsers / parseDateTime.ts View on Github external
export default function parseDateTime(dateTime: string | number | DateTime) {
  if (typeof dateTime === 'number' || typeof dateTime === 'string') {
    return new Date(dateTime);
  }

  const expression = dateTimeExpr(dateTime, true) as string;
  const code = codegen({ globalvar: 'window' })(parse(expression)).code as string;
  // Technically the "code" here is safe to eval(),
  // but we will use more conservative approach and manually parse at the moment.
  const isUtc = code.startsWith('Date.UTC');

  const dateParts = code
    .replace(/^(Date[.]UTC|new[ ]Date)\(/, '')
    .replace(/\)$/, '')
    .split(',')
    .map((chunk: string) => Number(chunk.trim())) as [
    number, // year
    number, // month
    number, // date
    number, // hours
    number, // minutes
    number, // seconds
    number, // milliseconds
github vega / voyager / src / models / shelf / filter.ts View on Github external
export function toPredicateFunction(filters: ShelfFilter[]) {
  const expr = '(' +
    filters.map(f => {
      return fieldFilterExpression(f, false); // Do not use inrange as it is not included in the main Vega Expression
    }).join(')&&(') +
  ')';
  const ast = vegaExpression.parse(expr);
  const codegen = vegaExpression.codegen({
    whitelist: ['datum'],
    globalvar: 'global'
  });
  const value = codegen(ast);

  return new Function('datum', `return ${value.code};`) as (d: object) => boolean;
}
github vega / vega / packages / vega-parser / src / parsers / expression / codegen.js View on Github external
for (var name in functionContext) { fn[name] = thisPrefix + name; }
  return fn;
}

// Export code generator and parameters
export var codegenParams = {
  blacklist:  ['_'],
  whitelist:  ['datum', 'event', 'item'],
  fieldvar:   'datum',
  globalvar:  function(id) { return '_[' + stringValue('$' + id) + ']'; },
  functions:  buildFunctions,
  constants:  constants,
  visitors:   astVisitors
};

export var codeGenerator = codegen(codegenParams);
github vega / vega / packages / vega-functions / src / codegen.js View on Github external
// register Vega-Lite selection functions
expressionFunction('vlSelectionTest', selectionTest, selectionVisitor);
expressionFunction('vlSelectionResolve', selectionResolve, selectionVisitor);

// Export code generator and parameters
export const codegenParams = {
  blacklist:  ['_'],
  whitelist:  ['datum', 'event', 'item'],
  fieldvar:   'datum',
  globalvar:  function(id) { return '_[' + stringValue(SignalPrefix + id) + ']'; },
  functions:  buildFunctions,
  constants:  constants,
  visitors:   astVisitors
};

export var codeGenerator = codegen(codegenParams);

vega-expression

Vega expression parser and code generator.

BSD-3-Clause
Latest version published 6 months ago

Package Health Score

88 / 100
Full package analysis