@kaguyajs/trss-yunzai-types
    Preparing search index...

    Class Utils

    Utils

    Index

    Constructors

    Properties

    debounceTime: symbol

    用于 debounce 的 symbol

    sleepTimeout: symbol

    用于 sleep 的 symbol

    Methods

    • 将传入 data 解析为 Buffer(支持 base64://、http(s) URL、file://、Buffer) 若 opts.http 为真返回 URL 字符串,若 opts.file 为真返回 file:// 路径

      Parameters

      Returns Promise<string | Buffer<ArrayBufferLike>>

      解析后的 Buffer、URL 字符串或 file:// 路径

    • 查找命令路径(where/command -v),失败返回 false

      Parameters

      • cmd: string

        要查找的命令名

      • Optionalopts: ExecOptions

        选项(可选)

      Returns Promise<string | false>

      命令的绝对路径或 false

    • 以独立进程启动命令(windows 会用 cmd /c start)

      Parameters

      • cmd: string

        要启动的命令

      • Optionalargs: string[]

        命令参数数组(可选)

      • Optionalopts: CmdStartOptions

        Node.js child_process.spawn 的选项(可选)

      Returns ChildProcess

      启动的子进程对象

    • 防抖:返回包装后的函数(返回值为 Promise) func: 被包装的函数

      Type Parameters

      • T extends (...args: any[]) => any

      Parameters

      • func: T

        要进行防抖处理的函数

      • Optionaltime: number

        防抖的等待时间(毫秒,默认为 300ms)

      Returns (...args: Parameters<T>) => Promise<ReturnType<T>>

      返回一个包装后的函数,调用该函数会返回一个 Promise

    • 从 map 中删除并同时删除 db 中的键

      Parameters

      • map: Map<any, any> & { db?: any }

        要操作的 Map(必须包含 db 属性)

      • del: (k: any) => boolean

        Map 默认的 delete 方法(传入 del 是为了支持 makeMap 包装的 Map)

      • key: any

        要删除的键

      Returns Promise<boolean>

      删除是否成功

    • 下载(或把 buffer 写入文件) 返回 { url, file, buffer }

      Parameters

      • url: string | Buffer<ArrayBufferLike>

        要下载的 URL 或要写入文件的 Buffer

      • Optionalfile: string

        写入文件的路径(可选,如果提供了 url 是 Buffer,则必须提供)

      • Optionalopts: BufferOptions

        选项(可选)

      Returns Promise<DownloadResult>

    • 执行外部命令(支持字符串或数组) 返回 { error, stdout, stderr, raw }

      Parameters

      • cmd: string | string[]

        要执行的命令(字符串或包含命令及参数的数组)

      • Optionalopts: ExecOptions

        选项(可选)

      Returns Promise<ExecResult>

      命令执行结果对象

    • 检测文件类型并返回对象 { name, url?, buffer?, type?, md5? } 参数 data 形如 { file: Buffer|string, name?: string }

      Parameters

      • data: { file: string | Buffer<ArrayBufferLike>; name?: string }

        包含文件内容(Buffer 或路径/URL 字符串)和可选名称的对象

      • Optionalopts: BufferOptions

        选项(可选)

      Returns Promise<FileTypeResult>

      文件类型检测结果对象

    • 获取文件/目录状态,出错返回 false

      Parameters

      • path: string

        文件路径

      • Optionalopts: StatOptions

        可选参数

      Returns Promise<false | Stats>

    • 用于 JSON.stringify 的循环引用替换器

      Returns (this: any, key: string, value: any) => any

      循环引用替换函数

    • 打开或创建 leveldb 并返回 Map(Map 上会附加 db 属性) 返回值类型为 Map 并附带 db: Level

      Parameters

      • dir: string

        leveldb 存储的目录路径

      Returns Promise<Map<any, any> & { db: Level }>

      包含 db 属性的 Map

    • 按时间差格式化时间差(返回中文格式如 '1天2时3分')

      Parameters

      • Optionaltime1: number

        第一个时间戳(可选,默认为当前时间)

      • Optionaltime2: number

        第二个时间戳(可选,如果只传入 time1,则计算 time1 与当前时间的差)

      Returns string

      格式化后的时间差字符串

    • glob 匹配(如果 node:fs/promises 中无 glob 则返回 [])

      Parameters

      • path: string

        路径

      • Optionalopts: GlobOptions

        可选参数

      Returns Promise<string[]>

    • 从目录导入数据到 Map(用于初始化),并删除源文件

      Parameters

      • dir: string

        包含要导入数据的目录路径

      • map: Map<any, any>

        导入数据的目标 Map

      Returns Promise<Map<any, any>>

      导入数据后的 Map

    • 格式化并截断日志对象(util.inspect)

      Parameters

      • data: any

        要格式化和检查的对象

      • Optionalopts: InspectOptions

        util.inspect 的选项

      Returns string

      格式化后的字符串

    • 构造 Error

      Parameters

      • msg: string

        错误信息

      • ...obj: any[]

        其他信息

      Returns Error

    • 打印日志

      Parameters

      • level: string

        日志等级(如 "error","mark","debug","trace" 等)

      • msg: any

        字符串或任意对象/数组(将被格式化)

      • Optionalid: string | number | false

        若为 false 则不打印 id;否则可传 id 或使用默认对齐

      • Optionalforce: any

        强制使用传入的 id(不格式化)

      Returns void

    • 格式化日志 ID

      Parameters

      • Optionalid: any

        日志标识符 不填则使用配置内ID

      Returns string

      格式化之后的字符串

    • 将 Map 包装成带自动持久化的 Map(会把 set/delete 覆写为异步) parent_map: 一般为从 getMap 返回的 map

      Parameters

      • parent_map: Map<any, any> & { db?: any }

        一般为从 getMap 返回的 map,Map 上会附加 db 属性

      • parent_key: string

        在 parent_map 中用于存储当前 map 的键

      • map: Map<any, any>

        要包装的 Map

      Returns Map<any, any>

    • 创建目录(递归),返回是否成功

      Parameters

      • dir: string

        路径

      • Optionalopts: MakeDirectoryOptions

        可选参数

      Returns Promise<boolean>

    • 将一次性事件包装为 Promise(使用 event.once) event: 任意 EventEmitter-like 对象,resolve/reject 为事件名

      Parameters

      • event: any

        任意 EventEmitter-like 对象

      • resolve: string | symbol

        触发 resolve 的事件名(字符串或 Symbol)

      • Optionalreject: string | symbol

        触发 reject 的事件名(字符串或 Symbol,可选)

      • Optionaltimeout: number

        超时时间(毫秒,可选)

      Returns Promise<any>

      事件触发时 resolve 的 Promise

    • 删除文件/目录

      Parameters

      • file: string

        文件或目录路径

      • Optionalopts: RmOptions

        可选参数

      Returns Promise<boolean>

    • 将值写入 map(支持 value 为 Map),并持久化到 map.db

      Parameters

      • map: Map<any, any> & { db?: any }

        要操作的 Map(必须包含 db 属性)

      • set: (k: any, v: any) => any

        Map 默认的 set 方法(传入 set 是为了支持 makeMap 包装的 Map)

      • key: any

        要设置的键

      • value: any

        要设置的值

      Returns Promise<Map<any, any>>

    • 睡眠指定时间。

      如果传入一个 Promise,则两个 Promise 会使用 Promise.race() 竞争, 先完成的结果将作为返回值(包括 resolve 或 reject)。

      Parameters

      • time: number

        睡眠时间(毫秒)。

      Returns Promise<void>

      // 只睡眠
      await sleep(1000)
      console.log('1 秒后执行')

      // 与其它 Promise 竞争
      const p = new Promise(resolve => setTimeout(() => resolve(42), 500))
      const result = await sleep(1000, p)
      console.log(result) // 42

      // 竞争中 promise 失败
      const p = new Promise((_, reject) => setTimeout(() => reject(new Error('出错')), 300))
      try {
      await sleep(1000, p)
      } catch (err) {
      console.error('捕获到错误:', err.message)
      }
    • 睡眠指定时间。

      如果传入一个 Promise,则两个 Promise 会使用 Promise.race() 竞争, 先完成的结果将作为返回值(包括 resolve 或 reject)。

      Type Parameters

      • T

      Parameters

      • time: number

        睡眠时间(毫秒)。

      • promise: Promise<T>

        可选,与睡眠竞争的 Promise。

      Returns Promise<T>

      // 只睡眠
      await sleep(1000)
      console.log('1 秒后执行')

      // 与其它 Promise 竞争
      const p = new Promise(resolve => setTimeout(() => resolve(42), 500))
      const result = await sleep(1000, p)
      console.log(result) // 42

      // 竞争中 promise 失败
      const p = new Promise((_, reject) => setTimeout(() => reject(new Error('出错')), 300))
      try {
      await sleep(1000, p)
      } catch (err) {
      console.error('捕获到错误:', err.message)
      }
    • 睡眠指定时间。

      如果传入一个 Promise,则两个 Promise 会使用 Promise.race() 竞争, 先完成的结果将作为返回值(包括 resolve 或 reject)。

      Type Parameters

      • T

      Parameters

      • time: number

        睡眠时间(毫秒)。

      • Optionalpromise: Promise<T>

        可选,与睡眠竞争的 Promise。

      Returns Promise<void | T>

      // 只睡眠
      await sleep(1000)
      console.log('1 秒后执行')

      // 与其它 Promise 竞争
      const p = new Promise(resolve => setTimeout(() => resolve(42), 500))
      const result = await sleep(1000, p)
      console.log(result) // 42

      // 竞争中 promise 失败
      const p = new Promise((_, reject) => setTimeout(() => reject(new Error('出错')), 300))
      try {
      await sleep(1000, p)
      } catch (err) {
      console.error('捕获到错误:', err.message)
      }
    • 将数据转为字符串(可选传入 JSON.stringify 选项)

      Parameters

      • data: any

        任意类型的值

      • Optionalopts: string | number

        在返回值的 JSON 文本中添加缩进、空格和换行符,使其更易于阅读。

      Returns string

      转换后的字符串

    • 将 buffer 转为安全显示的字符串或返回原 buffer(根据是否包含不可显示字符)

      Parameters

      • data: any

        任意类型的值

      • Optionalbase64: boolean

        如果 buffer 包含不可显示字符,是否转为 base64 字符串(默认为 false)

      Returns string | Buffer<ArrayBufferLike>

      转换后的字符串或原 Buffer

    • 把任意值转换为字符串,特殊处理 Buffer/Error 等

      Parameters

      • data: any

        任意类型的值

      Returns string

      转换后的字符串