@sheepdog/vanilla
Advanced tools
Comparing version 0.0.2 to 0.0.3
@@ -18,3 +18,3 @@ import type { HandlerType, HandlersMap, SheepdogUtils, TaskOptions, TaskFunction } from '@sheepdog/core'; | ||
} & TaskInstance<TReturn>; | ||
} & { | ||
} & Readonly<{ | ||
isRunning: boolean; | ||
@@ -29,3 +29,3 @@ last: undefined | TaskInstance<TReturn>; | ||
destroy(): void; | ||
}; | ||
}>; | ||
type HandlersShorthands = { | ||
@@ -32,0 +32,0 @@ [K in HandlerType]: <TArgs = undefined, TReturn = unknown>(gen_or_fun: (args: TArgs, utils: SheepdogUtils) => Promise<TReturn> | AsyncGenerator<unknown, TReturn, unknown>, options?: Parameters<HandlersMap[K]> extends [] ? object : Parameters<HandlersMap[K]>[0]) => ReturnType<typeof task<TArgs, TReturn>>; |
@@ -13,2 +13,12 @@ import { CancelationError, createTask, handlers } from '@sheepdog/core'; | ||
} | ||
function define_properties(on, from) { | ||
for (const key in from) { | ||
Object.defineProperty(on, key, { | ||
enumerable: true, | ||
get() { | ||
return from[key]; | ||
}, | ||
}); | ||
} | ||
} | ||
function _task(gen_or_fun, options) { | ||
@@ -85,2 +95,4 @@ const event_target = new EventTarget(); | ||
}, | ||
error: undefined, | ||
value: undefined, | ||
}, | ||
@@ -124,6 +136,8 @@ is_running: false, | ||
throw new Error('Return modifier has been called before the instance was created'); | ||
return Object.assign(returned_value, instance.instance); | ||
define_properties(returned_value, instance.instance); | ||
return returned_value; | ||
}, | ||
}, gen_or_fun, options); | ||
return Object.assign(actual_task, task_instance); | ||
define_properties(actual_task, task_instance); | ||
return actual_task; | ||
} | ||
@@ -130,0 +144,0 @@ const task = _task; |
{ | ||
"name": "@sheepdog/vanilla", | ||
"version": "0.0.2", | ||
"version": "0.0.3", | ||
"repository": { | ||
@@ -5,0 +5,0 @@ "type": "git", |
11999
205