UNPKG

worker-tls

Version:

worker-tls 提供了 动态Worker 功能 和 其它一些 Worker 场景下有用的工具集;让开发者可以像调用对象方法一样动态地调用Worker中的方法,也可以随时地往 Worker 中动态地添加函数 等等。

97 lines 3.24 kB
import type { Optional, AnyFunction } from "type-tls"; /** * 定义函数的代码 * * @remarks * 可从 `fun.toString()` 得到 */ export type FunctionCode = string; /** * 函数 或 函数代码 */ export type Fun = AnyFunction | FunctionCode; /** * js 的标识符 * * @remarks * * 比如变量名 */ export type JSIdentifier = string; /** * 生成定义函数变量的字符串 * @param fun - 函数对象 * @param name - 保存函数的变量名字,如果没有定义,则取 fun.name 作为变量名字 * @returns */ export declare function generateFunctionVariableString(fun: AnyFunction, name?: Optional<JSIdentifier>): string; /** * 生成立即执行函数的定义字符串 * @param fun * @param args - 立即调用函数时传递的参数 * @returns */ export declare function generateIIFEFunctionString(fun: Fun, args?: Optional<any[]>): string; /** * 生成函数的字符串定义 * * @remarks * 如果 `fun.name` 是有效的函数名字(即函数有名字),则会生成命名函数的字符串定义,否则会生成 立即调用函数的字符串定义 * * @param fun - 函数对象 * @param args - 在需要生成立即调用函数时,给立即调用函数传的参数; * @returns */ export declare function generateFunctionString(fun: AnyFunction, args?: Optional<any[]>): string; /** * 本文件是监听 message 消息的依赖代码 * @remarks * 如果要使用动态监听 message,需要先运行该依赖 */ import listenMessages_Dep from "/temp/listenMessages_Dep.iife.js?raw"; export { listenMessages_Dep }; /** * 生成监听 message 事件的代码字符串 * @param listener - 监听函数 或 函数字符串 或 函数的名字 * @returns */ export declare function listenMessagesCodeStringByListener(listener: Fun): string; /** * 生成监听 message 事件的代码字符串 * @param listenerNames - 监听者的变量名字的列表 * @returns */ export declare function listenMessagesCodeStringByNames(listenerNames: string[]): string; /** * 生成监听 message 事件的代码字符串 * @param funs - 监听函数数组 * @returns */ export declare function listenMessagesCodeStringByFunctions(funs: AnyFunction[]): string; /** * 动态 Worker 的代码内容 * * @remarks * 动态 Worker 是即使创建之后,也可以往里添加函数的 Worker * * 该 woker 会根据 {@link ./dynamicWorkerAPI.ts#Call} 消息格式来调用对应的函数 * * 该 Woker 已经内置了如下命令(函数): * * setCMD : {@link ./dynamicWorkerAPI.ts#setCMD} ,往全局环境设置命令 * * execCMD : {@link ./dynamicWorkerAPI.ts#execCMD} ,执行命令 * * removeCMD : {@link ./dynamicWorkerAPI.ts#removeCMD} ,从全局环境中移除函数 * * sendMessage : {@link ./dynamicWorkerAPI.ts#sendMessage} ,用于给其它线程发送信息 * * messageListener : {@link ./dynamicWorkerAPI.ts#messageListener} ,用于函数调用的 message 监听器 * * @param codeOptions - 往 Worker 中注入代码的配置选项 * @param workerOptions - Worker 中的选项 * */ import dynamicWorkerCodeString from "/temp/dynamicWorkerMain.iife.js?raw"; export { dynamicWorkerCodeString }; //# sourceMappingURL=index.d.ts.map