UNPKG

@entestat/formula

Version:

fast excel formula parser

36 lines (31 loc) 1.29 kB
const FormulaError = require('../error'); const {FormulaHelpers, Types} = require('../helpers'); const H = FormulaHelpers; const WebFunctions = { ENCODEURL: text => { return encodeURIComponent(H.accept(text, Types.STRING)); }, FILTERXML: () => { // Not implemented due to extra dependency }, WEBSERVICE: (context, url) => { throw FormulaError.ERROR('WEBSERVICE is not supported in sync mode.'); if (typeof fetch === "function") { url = H.accept(url, Types.STRING); return fetch(url).then(res => res.text()); } else { // Not implemented for Node.js due to extra dependency // Sample code for Node.js // const fetch = require('node-fetch'); // url = H.accept(url, Types.STRING); // return fetch(url).then(res => res.text()); throw FormulaError.ERROR('WEBSERVICE only available to browser with fetch.' + 'If you want to use WEBSERVICE in Node.js, please override this function: \n' + 'new FormulaParser({\n' + ' functionsNeedContext: {\n' + ' WEBSERVICE: (context, url) => {...}}\n' + '})'); } } } module.exports = WebFunctions;