UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

55 lines (54 loc) 2.57 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = JexlF; const jexl_1 = __importDefault(require("jexl")); function JexlF() { const j = new jexl_1.default.Jexl(); j.addFunction('get', (feature, data) => feature.get(data)); j.addFunction('parent', (feature) => feature.parent()); j.addFunction('id', (feature) => feature.id()); j.addFunction('cast', (arg) => arg); j.addFunction('log', (thing) => { console.log(thing); return thing; }); j.addFunction('max', Math.max); j.addFunction('min', Math.min); j.addFunction('sqrt', Math.sqrt); j.addFunction('ceil', Math.ceil); j.addFunction('floor', Math.floor); j.addFunction('round', Math.round); j.addFunction('abs', Math.abs); j.addFunction('log10', Math.log10); j.addFunction('parseInt', Number.parseInt); j.addFunction('parseFloat', Number.parseFloat); j.addFunction('split', (s, char) => s.split(char)); j.addFunction('charAt', (s, index) => s.charAt(index)); j.addFunction('charCodeAt', (s, index) => s.charCodeAt(index)); j.addFunction('codePointAt', (s, pos) => s.codePointAt(pos)); j.addFunction('startsWith', (s, search, len) => s.startsWith(search, len)); j.addFunction('endsWith', (s, search, len) => s.endsWith(search, len)); j.addFunction('padEnd', (s, len, pad) => s.padEnd(len, pad)); j.addFunction('padStart', (s, len, fill) => s.padStart(len, fill)); j.addFunction('repeat', (s, count) => s.repeat(count)); j.addFunction('replace', (s, match, sub) => s.replace(match, sub)); j.addFunction('replaceAll', (s, match, sub) => s.replaceAll(match, sub)); j.addFunction('slice', (s, start, end) => s.slice(start, end)); j.addFunction('startsWith', (s, search, pos) => s.startsWith(search, pos)); j.addFunction('substring', (s, start, end) => s.substring(start, end)); j.addFunction('toLowerCase', (s) => s.toLowerCase()); j.addFunction('toUpperCase', (s) => s.toUpperCase()); j.addFunction('jsonParse', (s) => JSON.parse(s)); j.addFunction('trim', (s) => s.trim()); j.addFunction('trimEnd', (s) => s.trimEnd()); j.addFunction('trimStart', (s) => s.trimStart()); j.addFunction('getTag', (feature, s) => { const tags = feature.get('tags'); return tags ? tags[s] : feature.get(s); }); j.addBinaryOp('&', 15, (a, b) => a & b); return j; }