콘텐츠로 이동

isWithinIdempotencyReplayWindow — @gj-kit/toss-payments

@gj-kit/toss-payments에서 공개하는 function입니다. package version 0.6.1의 release declaration을 그대로 표시합니다.

import { isWithinIdempotencyReplayWindow } from '@gj-kit/toss-payments';
/**
* Whether a key first used at `issuedAt` may still be **replayed** (same key, same body) at `now`.
*
* Exact semantics: returns `true` when `now - issuedAt < windowMs` — elapsed time strictly less
* than the window. At exactly `windowMs` the window has closed and the result is `false`.
* A negative elapsed time (`issuedAt` after `now`, e.g. clock skew) counts as within the window;
* reject implausible future timestamps separately if your flow needs to. Any non-finite operand
* (invalid `Date`, `NaN`, `±Infinity` — in `issuedAt`, `now`, or `windowMs`) yields `false`, the
* side that never resubmits.
*
* `windowMs` defaults to {@link DEFAULT_IDEMPOTENCY_REPLAY_WINDOW_MS}; pass
* {@link TOSS_IDEMPOTENCY_KEY_TTL_MS} only if you deliberately want the provider's full window
* with no safety margin.
*/
declare function isWithinIdempotencyReplayWindow(issuedAt: Date | number, now: Date | number, windowMs?: number): boolean;

이 선언은 매개변수, optionality, 제네릭, 반환값, 공개 union/type 계약의 정본입니다. 호출 전 필요한 환경·권한·오류 경계는 패키지 Golden path와 이 subpath의 import 조건을 함께 확인하세요.

  • 패키지: @gj-kit/toss-payments
  • 버전: 0.6.1
  • 공개 entry: .
  • 소스: GitHub

Whether a key first used at issuedAt may still be replayed (same key, same body) at now.

Exact semantics: returns true when now - issuedAt < windowMs — elapsed time strictly less than the window. At exactly windowMs the window has closed and the result is false. A negative elapsed time (issuedAt after now, e.g. clock skew) counts as within the window; reject implausible future timestamps separately if your flow needs to. Any non-finite operand (invalid Date, NaN, ±Infinity — in issuedAt, now, or windowMs) yields false, the side that never resubmits.

windowMs defaults to {@link DEFAULT_IDEMPOTENCY_REPLAY_WINDOW_MS}; pass {@link TOSS_IDEMPOTENCY_KEY_TTL_MS} only if you deliberately want the provider’s full window with no safety margin.