createQuietHoursPolicy — @gj-kit/nest-notifications
@gj-kit/nest-notifications/core에서 공개하는 function입니다. package version 0.1.1의 release declaration을 그대로 표시합니다.
검증된 import 예제
섹션 제목: “검증된 import 예제”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 조건을 함께 확인하세요.
Release context
섹션 제목: “Release context”- 패키지:
@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):
- A release instant that does not exist (spring-forward gap) releases at the first instant after the gap.
- A release instant that exists twice (autumn fall-back) releases at the earlier one.
- A computed release at or before
nowadvances 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.