@synstack/pipe
Version:
Simple typesafe pipe utility for Functional Programming
44 lines • 885 B
JavaScript
// src/pipe.lib.ts
var Pipeable = class _Pipeable {
_(fn) {
const value = this.instanceOf();
const res = fn(value);
if (res instanceof Promise) return res;
if (res instanceof _Pipeable) return res;
return new Pipe(res);
}
_$(fn) {
const res = fn(this.valueOf());
if (res instanceof Promise) return res;
if (res instanceof _Pipeable) return res;
return new Pipe(res);
}
get $() {
return this.valueOf();
}
};
var Pipe = class _Pipe extends Pipeable {
value;
constructor(value) {
super();
this.value = value;
}
static from(value) {
return new _Pipe(value);
}
valueOf() {
return this.value;
}
instanceOf() {
return this.value;
}
};
function pipe(value) {
if (value instanceof Pipeable) return value;
return new Pipe(value);
}
export {
Pipeable,
pipe
};
//# sourceMappingURL=pipe.index.js.map