{"version":3,"file":"index.cjs","sources":["../../../packages/preconditions/src/lib/conditions.ts","../../../packages/preconditions/src/lib/assertions.ts","../../../packages/preconditions/src/lib/checks.ts"],"sourcesContent":["import { Type } from \"./type\";\n\n/**\n * A Predicate is a function that takes a value, with some optional other values,\n * and determines whether the given value satifies a type predicate.\n */\nexport type Predicate<T> = (value: unknown, ...others: unknown[]) => value is T;\n\n/**\n * This condition checks the whether the given value is defined or not.\n * @param value Value to check is defined.\n */\nexport function isDefined<T>(value: T | null | undefined): value is T {\n  return value !== null && value !== undefined;\n}\n\nexport function isTruthy<T>(\n  value: T | \"\" | null | undefined | 0 | 0n | false\n): value is T {\n  return !!value;\n}\n\nexport function isFalsy<T>(\n  value: T | \"\" | null | undefined | 0 | 0n | false\n): value is \"\" | null | undefined | 0 | 0n | false {\n  return !value;\n}\n\nexport function isUndefined(value: unknown): value is undefined {\n  return value === undefined;\n}\n\nexport function isNull(value: unknown): value is null {\n  return value === null;\n}\n\nexport function isBoolean(value: unknown): value is boolean {\n  return typeof value === \"boolean\";\n}\n\nexport function isString(value: unknown): value is string {\n  return typeof value === \"string\";\n}\n\nexport function isNumber(value: unknown): value is number {\n  return typeof value === \"number\";\n}\n\nexport function isBigInt(value: unknown): value is bigint {\n  return typeof value === \"bigint\";\n}\n\nexport function isFunction(value: unknown): value is Function {\n  return typeof value === \"function\";\n}\n\nexport function isObject(value: unknown): value is object {\n  return typeof value === \"object\";\n}\n\nexport function isType<T>(value: unknown, type: Type<T>): value is T {\n  return value instanceof type;\n}\n","import {\n  Predicate,\n  isBigInt,\n  isBoolean,\n  isDefined,\n  isFunction,\n  isNull,\n  isNumber,\n  isObject,\n  isString,\n  isType,\n  isUndefined,\n} from \"./conditions\";\nimport { Type } from \"./type\";\n\n/**\n * PreconditionFailedError is an error to throw when a precondition fails.\n */\nexport class PreconditionFailedError extends Error {\n  constructor(message?: string) {\n    super(message);\n    this.name = \"PreconditionFailedError\";\n  }\n}\n\nexport function assert<T extends boolean>(\n  condition: T,\n  message?: string\n): asserts condition {\n  if (!condition) {\n    throw new PreconditionFailedError(message);\n  }\n}\n\nexport function assertPredicate<T>(\n  condition: Predicate<T>,\n  value: unknown,\n  message?: string\n): asserts value is T {\n  assert(condition(value), message);\n}\n\nexport function assertIsDefined<T>(\n  value: T | null | undefined,\n  message?: string\n): asserts value is T {\n  assertPredicate(isDefined, value, message);\n}\n\nexport function assertIsUndefined(\n  value: unknown,\n  message?: string\n): asserts value is undefined {\n  assertPredicate(isUndefined, value, message);\n}\n\nexport function assertIsNull(\n  value: unknown,\n  message?: string\n): asserts value is null {\n  assertPredicate(isNull, value, message);\n}\n\nexport function assertIsBoolean(\n  value: unknown,\n  message?: string\n): asserts value is boolean {\n  assertPredicate(isBoolean, value, message);\n}\n\nexport function assertIsString(\n  value: unknown,\n  message?: string\n): asserts value is string {\n  assertPredicate(isString, value, message);\n}\n\nexport function assertIsNumber(\n  value: unknown,\n  message?: string\n): asserts value is number {\n  assertPredicate(isNumber, value, message);\n}\n\nexport function assertIsBigInt(\n  value: unknown,\n  message?: string\n): asserts value is bigint {\n  assertPredicate(isBigInt, value, message);\n}\n\nexport function assertIsFunction(\n  value: unknown,\n  message?: string\n): asserts value is Function {\n  assertPredicate(isFunction, value, message);\n}\n\nexport function assertIsObject(\n  value: unknown,\n  message?: string\n): asserts value is object {\n  assertPredicate(isObject, value, message);\n}\n\nexport function assertIsType<T>(\n  value: unknown,\n  type: Type<T>,\n  message?: string\n): asserts value is T {\n  assert(isType(value, type), message);\n}\n","import { assertIsDefined } from \"./assertions\";\n\nexport function checkIsDefined<T>(\n  value: T | null | undefined,\n  message?: string\n): T {\n  assertIsDefined(value, message);\n  return value;\n}\n"],"names":[],"mappings":"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"}