Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | 'use strict'; module.exports = { compile: function compile(code, process) { let self = this; let evalFn = eval; if (typeof code == "function") { evalFn = () => { return function (wrap) { let exports = { handler: code }; let module = { exports: exports } return wrap(exports, module) }; } } else if (typeof code === "object") { evalFn = () => { return function (wrap) { let module = code; if (!code.exports) { module = { exports: code } } return wrap(module.exports, module); }; } } else { let exp = `((wrap) => { var exports = {}; var module = { exports :exports }; ${code} return wrap(exports, module); })`; // Not an exports module. Just a return value. // Wrap it as a module if (!code.match(/([^\w\d]+ *exports\.?.*?)\s*=/gm)) { exp = `((wrap) => { var exports = {}; var module = { exports :exports }; exports.handler = (data)=>{let $ = data; ${code}} return wrap(exports, module); })`; } evalFn = () => eval(exp); } return evalFn()(function (exports, module) { if (!exports.handler && exports.each) { exports.handler = exports.each; } exports.each = self.callbackify(exports.each, 1); exports.handler = self.callbackify(exports.handler, 1); if (typeof process === "function") { process(exports, module); } return exports; }); }, callbackify: function (fn, arity) { if (fn && fn.length <= arity) { return function () { let done = arguments[arguments.length - 1]; try { done(null, fn.apply(this, arguments)); } catch (err) { done(err); } } } return fn; } } |