@jplorg/jpl
Version:
JPL interpreter
31 lines (30 loc) • 877 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _library = require("../../../library");
var _default = exports.default = {
/** { optional: boolean } */
op(runtime, input, target, params, scope, next) {
const value = runtime.unwrapValue(target);
const t = runtime.type(value);
switch (t) {
case 'object':
return runtime.muxAll([Object.values(value)], next);
case 'array':
return runtime.muxAll([value], next);
case 'string':
return runtime.muxAll([[...value]], next);
default:
}
if (params.optional) return [];
throw new _library.JPLTypeError('cannot iterate over %s (%*<100v)', t, value);
},
/** { optional: boolean } */
map(runtime, params) {
return {
optional: runtime.assertType(params.optional, 'boolean')
};
}
};