no-op.js 716 Bytes
/**
 * 无副作用端口缺省实现。成本、审计、结算是会计链路,不提供 no-op。
 *
 * 纯函数 / 零副作用 / 零依赖。`llm.js` 在装配时用这些填补缺省端口,
 * 使得包内其余代码无需到处写 `if (billingPort)` 守卫。
 */

/** @typedef {import('../index.js').NotifyPort} NotifyPort */
/** @typedef {import('../index.js').TracePort} TracePort */
/** @typedef {import('../index.js').Span} Span */

/** @type {NotifyPort} */
export const noopNotifyPort = {
  async notify() {},
}

/** @type {Span} */
const noopSpan = {
  setAttr() {},
  addEvent() {},
  end() {},
}

/** @type {TracePort} */
export const noopTracePort = {
  startSpan() {
    return noopSpan
  },
}