콘텐츠로 이동

createQuietHoursPolicy — @gj-kit/nest-notifications

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

import { createQuietHoursPolicy } from '@gj-kit/nest-notifications/core';
/**
* Single-zone quiet-hours policy.
*
* Every decision is wall-clock arithmetic over an IANA zone, so a DST boundary
* or a non-hourly offset such as +05:45 stays correct. Three interpretation
* rules are part of the contract (design 3.2.3):
*
* 1. A release instant that does not exist (spring-forward gap) releases at the
* first instant after the gap.
* 2. A release instant that exists twice (autumn fall-back) releases at the
* earlier one.
* 3. A computed release at or before `now` advances a day and recomputes; with
* no valid solution inside 48 hours it delivers immediately, because an
* unbounded hold is indistinguishable from a lost notification.
*
* Assembly-time validation throws `ERR_NOTIFICATION_TIMEZONE_INVALID` or
* `ERR_NOTIFICATION_POLICY_INVALID`, so a misconfigured deployment fails to boot
* rather than mis-delivering quietly.
*/
declare function createQuietHoursPolicy(options: QuietHoursPolicyOptions): NotificationSchedulingPolicy;

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

  • 패키지: @gj-kit/nest-notifications
  • 버전: 0.1.1
  • 공개 entry: ./core
  • 소스: GitHub

Single-zone quiet-hours policy.

Every decision is wall-clock arithmetic over an IANA zone, so a DST boundary or a non-hourly offset such as +05:45 stays correct. Three interpretation rules are part of the contract (design 3.2.3):

  1. A release instant that does not exist (spring-forward gap) releases at the first instant after the gap.
  2. A release instant that exists twice (autumn fall-back) releases at the earlier one.
  3. A computed release at or before now advances a day and recomputes; with no valid solution inside 48 hours it delivers immediately, because an unbounded hold is indistinguishable from a lost notification.

Assembly-time validation throws ERR_NOTIFICATION_TIMEZONE_INVALID or ERR_NOTIFICATION_POLICY_INVALID, so a misconfigured deployment fails to boot rather than mis-delivering quietly.