serverless-offline-msk
Version:
A serverless offline plugin that enables AWS MSK events
27 lines (23 loc) • 882 B
JavaScript
;
var from = require('es5-ext/array/from')
, value = require('es5-ext/object/valid-value')
, primitiveSet = require('es5-ext/object/primitive-set')
, esniff = require('./')
, allowedSeparators = primitiveSet.apply(null, from('.+-*/,&|;'))
, next = esniff.next;
module.exports = function (code, sep/*, limit*/) {
var expressions, fromIndex, limit = arguments[2] || Infinity;
code = String(value(code));
sep = String(value(sep));
if (!allowedSeparators[sep]) throw new Error(sep + ' is not supported separator');
expressions = [];
fromIndex = 0;
esniff(code, sep, function (i, previous, nest) {
if (nest) return next();
if (expressions.push(code.slice(fromIndex, i)) === limit) return;
fromIndex = i + 1;
return next();
});
if (expressions.length < limit) expressions.push(code.slice(fromIndex));
return expressions;
};