|
@@ -6,6 +6,7 @@ const stop = Symbol.for('object-stream.stop');
|
|
|
const finalSymbol = Symbol.for('object-stream.final');
|
|
const finalSymbol = Symbol.for('object-stream.final');
|
|
|
const manySymbol = Symbol.for('object-stream.many');
|
|
const manySymbol = Symbol.for('object-stream.many');
|
|
|
const flushSymbol = Symbol.for('object-stream.flush');
|
|
const flushSymbol = Symbol.for('object-stream.flush');
|
|
|
|
|
+const fListSymbol = Symbol.for('object-stream.fList');
|
|
|
|
|
|
|
|
const finalValue = value => ({[finalSymbol]: 1, value});
|
|
const finalValue = value => ({[finalSymbol]: 1, value});
|
|
|
const many = values => ({[manySymbol]: 1, values});
|
|
const many = values => ({[manySymbol]: 1, values});
|
|
@@ -13,9 +14,11 @@ const many = values => ({[manySymbol]: 1, values});
|
|
|
const isFinalValue = o => o && o[finalSymbol] === 1;
|
|
const isFinalValue = o => o && o[finalSymbol] === 1;
|
|
|
const isMany = o => o && o[manySymbol] === 1;
|
|
const isMany = o => o && o[manySymbol] === 1;
|
|
|
const isFlushable = o => o && o[flushSymbol] === 1;
|
|
const isFlushable = o => o && o[flushSymbol] === 1;
|
|
|
|
|
+const isFunctionList = o => o && o[fListSymbol] === 1;
|
|
|
|
|
|
|
|
-const getFinalValue = value => value.value;
|
|
|
|
|
-const getManyValues = value => value.values;
|
|
|
|
|
|
|
+const getFinalValue = o => o.value;
|
|
|
|
|
+const getManyValues = o => o.values;
|
|
|
|
|
+const getFunctionList = o => o.fns;
|
|
|
|
|
|
|
|
const flushable = (write, final = null) => {
|
|
const flushable = (write, final = null) => {
|
|
|
const fn = final ? value => (value === none ? final() : write(value)) : write;
|
|
const fn = final ? value => (value === none ? final() : write(value)) : write;
|
|
@@ -23,6 +26,12 @@ const flushable = (write, final = null) => {
|
|
|
return fn;
|
|
return fn;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+const setFunctionList = (o, fns) => {
|
|
|
|
|
+ o.fns = fns;
|
|
|
|
|
+ o[fListSymbol] = 1;
|
|
|
|
|
+ return o;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
class Stop extends Error {}
|
|
class Stop extends Error {}
|
|
|
|
|
|
|
|
// old aliases
|
|
// old aliases
|
|
@@ -31,15 +40,24 @@ const final = finalValue;
|
|
|
module.exports.none = none;
|
|
module.exports.none = none;
|
|
|
module.exports.stop = stop;
|
|
module.exports.stop = stop;
|
|
|
module.exports.Stop = Stop;
|
|
module.exports.Stop = Stop;
|
|
|
|
|
+
|
|
|
module.exports.finalSymbol = finalSymbol;
|
|
module.exports.finalSymbol = finalSymbol;
|
|
|
-module.exports.manySymbol = manySymbol;
|
|
|
|
|
-module.exports.flushSymbol = flushSymbol;
|
|
|
|
|
module.exports.finalValue = finalValue;
|
|
module.exports.finalValue = finalValue;
|
|
|
-module.exports.many = many;
|
|
|
|
|
-module.exports.flushable = flushable;
|
|
|
|
|
|
|
+module.exports.final = final;
|
|
|
module.exports.isFinalValue = isFinalValue;
|
|
module.exports.isFinalValue = isFinalValue;
|
|
|
-module.exports.isMany = isMany;
|
|
|
|
|
-module.exports.isFlushable = isFlushable;
|
|
|
|
|
module.exports.getFinalValue = getFinalValue;
|
|
module.exports.getFinalValue = getFinalValue;
|
|
|
|
|
+
|
|
|
|
|
+module.exports.manySymbol = manySymbol;
|
|
|
|
|
+module.exports.many = many;
|
|
|
|
|
+module.exports.isMany = isMany;
|
|
|
module.exports.getManyValues = getManyValues;
|
|
module.exports.getManyValues = getManyValues;
|
|
|
-module.exports.final = final;
|
|
|
|
|
|
|
+module.exports.getFunctionList = getFunctionList;
|
|
|
|
|
+
|
|
|
|
|
+module.exports.flushSymbol = flushSymbol;
|
|
|
|
|
+module.exports.flushable = flushable;
|
|
|
|
|
+module.exports.isFlushable = isFlushable;
|
|
|
|
|
+
|
|
|
|
|
+module.exports.fListSymbol = fListSymbol;
|
|
|
|
|
+module.exports.isFunctionList = isFunctionList;
|
|
|
|
|
+module.exports.getFunctionList = getFunctionList;
|
|
|
|
|
+module.exports.setFunctionList = setFunctionList;
|