========== @e-mc/task ========== - **npm** i *@e-mc/task* Interface ========= .. highlight:: typescript .. code-block:: :caption: `View Source `_ import type { IFileManager, IHost, ModuleConstructor } from "./index"; import type { ExternalAsset, IFileThread } from "./asset"; import type { IClient } from "./core"; import type { TaskModule } from "./settings"; import type { Command, SpawnResult } from "./task"; interface ITask extends IClient { using?(data: IFileThread): Promise; collect?(items: unknown[], preceding?: boolean): Promise[]; map?(tasks: Command[]): Promise[]; series?(tasks: Command[]): Promise; parallel?(tasks: Command[]): Promise; spawn?(task: PlainObject, callback: (result?: SpawnResult) => void): void; execute?(manager: IFileManager, task: PlainObject, callback: (value?: unknown) => void): void; } interface TaskConstructor extends ModuleConstructor { finalize(this: IHost, instance: ITask, assets: ExternalAsset[]): Promise; readonly prototype: ITask; new(module?: TaskModule, ...args: unknown[]): ITask; } .. versionadded:: 0.10.0 - *TaskConstructor* method **finalize** return value was modified to :target:`Promise`: Settings ======== .. code-block:: :caption: `View JSON `_ import type { PermittedDirectories } from "./core"; interface TaskModule { // handler: "@pi-r/gulp"; settings?: { broadcast_id?: string | string[]; users?: Record>; exec?: { uid?: number; gid?: number; }; }; permission?: PermittedDirectories; } Example usage ------------- - :doc:`@pi-r/gulp ` .. note:: Usage without a **Host** is conducted through static methods. The **using** class method is called by the **Host** to perform the transformation. References ========== - https://www.unpkg.com/@e-mc/types/lib/asset.d.ts - https://www.unpkg.com/@e-mc/types/lib/core.d.ts - https://www.unpkg.com/@e-mc/types/lib/settings.d.ts - https://www.unpkg.com/@e-mc/types/lib/task.d.ts