UNPKG

@modern-kit/utils

Version:
1 lines 2.68 kB
{"version":3,"file":"index.mjs","sources":["../../../src/common/invariant/index.ts"],"sourcesContent":["import { isNil } from '../../validator/isNil';\n\n/**\n * 주어진 조건이 참인지 확인하고, 거짓일 경우 에러를 발생시키는 런타임 타입 체크 함수입니다.\n * 이 함수는 TypeScript의 타입 좁히기(type narrowing)를 지원합니다.\n *\n * @param {boolean} value - 검증할 값 또는 조건\n * @param {string} message - 조건이 거짓일 경우 표시할 에러 메시지\n *\n * @throws {Error} value가 false이거나 null/undefined인 경우\n * @returns {asserts value}\n *\n * @example\n * invariant(user.isAdmin, \"관리자 권한이 필요합니다\");\n * // 이후 코드에서 user.isAdmin는 true가 보장됩니다\n */\nexport function invariant(value: boolean, message: string): asserts value;\n\n/**\n * 주어진 조건이 참인지 확인하고, 거짓일 경우 에러를 발생시키는 런타임 타입 체크 함수입니다.\n * 이 함수는 TypeScript의 타입 좁히기(type narrowing)를 지원합니다.\n *\n * @param value - 검증할 값 또는 조건\n * @param message - 조건이 거짓일 경우 표시할 에러 메시지\n *\n * @throws {Error} value가 false이거나 null/undefined인 경우\n *\n * @example\n * // user: User | null | undefined\n *\n * invariant(user, \"사용자가 존재하지 않습니다\");\n * // 이후 코드에서 user는 User 타입이 보장됩니다\n */\nexport function invariant<T>(\n value: T | null | undefined,\n message: string\n): asserts value is T;\n\n/**\n * 주어진 조건이 참인지 확인하고, 거짓일 경우 에러를 발생시키는 런타임 타입 체크 함수입니다.\n * 이 함수는 TypeScript의 타입 좁히기(type narrowing)를 지원합니다.\n *\n * @param value - 검증할 값 또는 조건\n * @param message - 조건이 거짓일 경우 표시할 에러 메시지\n *\n * @throws {Error} value가 false이거나 null/undefined인 경우\n *\n * @example\n * invariant(user.isAdmin, \"관리자 권한이 필요합니다\");\n * // 이후 코드에서 user.isAdmin는 true가 보장됩니다\n *\n * @example\n * // user: User | null | undefined\n *\n * invariant(user, \"사용자가 존재하지 않습니다\");\n * // 이후 코드에서 user는 User 타입이 보장됩니다\n */\nexport function invariant(value: unknown, message: string) {\n if (value === false || isNil(value)) {\n throw new Error(message);\n }\n}\n"],"names":[],"mappings":";;AAyDO,SAAS,SAAA,CAAU,OAAgB,OAAA,EAAiB;AACzD,EAAA,IAAI,KAAA,KAAU,KAAA,IAAS,KAAA,CAAM,KAAK,CAAA,EAAG;AACnC,IAAA,MAAM,IAAI,MAAM,OAAO,CAAA;AAAA,EACzB;AACF;;;;"}