Skip to content

bug: Problem with the object prototype when piping #12

Description

@hrajchert

When we use a custom operator like the tap defined below, the input loses its prototype

import{Task,UnknownError}from'@ts-task/task';import{map}from'@ts-task/task/dist/lib/src/operators';consttap=<T,E>(fn: (t: T)=>unknown)=>{returnfunction(input: Task<T,E>): Task<T,E|UnknownError>{returninput.map(val=>{fn(val);returnval;});};};Task.resolve(1).pipe(map(x=>x+1),tap(x=>console.log('waaa',x))).fork(err=>console.error('buu',err),val=>console.log(val));
buu Error: UnknownError (input.map is not a function)
at fns.reduce (/Users/test/myapp/node_modules/@ts-task/task/dist/task.umd.js:194:40)
at Array.reduce (<anonymous>)
at Task [as resolver] (/Users/test/myapp/node_modules/@ts-task/task/dist/task.umd.js:189:33)
at Promise (/Users/test/myapp/node_modules/@ts-task/task/dist/task.umd.js:42:22)
at new Promise (<anonymous>)
at Task.fork (/Users/test/myapp/node_modules/@ts-task/task/dist/task.umd.js:41:13)
at Object.<anonymous> (/Users/test/myapp/dist/index.js:28:6)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
at Module.load (internal/modules/cjs/loader.js:600:32)
--------------
TypeError: input.map is not a function
at /Users/test/myapp/dist/index.js:7:22
at fns.reduce (/Users/test/myapp/node_modules/@ts-task/task/dist/task.umd.js:191:28)
at Array.reduce (<anonymous>)
at Task [as resolver] (/Users/test/myapp/node_modules/@ts-task/task/dist/task.umd.js:189:33)
at Promise (/Users/test/myapp/node_modules/@ts-task/task/dist/task.umd.js:42:22)
at new Promise (<anonymous>)
at Task.fork (/Users/test/myapp/node_modules/@ts-task/task/dist/task.umd.js:41:13)
at Object.<anonymous> (/Users/test/myapp/dist/index.js:28:6)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions