@modern-kit/utils
Version:
1 lines • 2.4 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../src/validator/isInRange/index.ts"],"sourcesContent":["interface IsInRangeProps {\n value: number;\n min: number;\n max: number;\n inclusiveMin?: boolean;\n inclusiveMax?: boolean;\n}\n\n/**\n * @description 주어진 value가 `min`과 `max`로 지정된 범위 내에 있는지 여부를 판단합니다.\n *\n * `inclusiveMin`/`inclusiveMax`를 통해 경계 값을 포함할지 여부를 설정할 수 있습니다. 기본적으로 최소값은 포함하며 최대값은 포함하지 않습니다.\n *\n * @param {IsInRangeProps} - isInRange 함수의 옵션 객체입니다.\n * @property {number} value - 확인할 값.\n * @property {number} min - 값이 포함되어야 하는 최소값.\n * @property {number} max - 값이 포함되어야 하는 최대값.\n * @property {boolean} inclusiveMin - `true`일 경우 최소값을 포함합니다. 기본 값은 true 입니다.\n * @property {boolean} inclusiveMax - `true`일 경우 최대값을 포함합니다. 기본 값은 false 입니다.\n * @returns {boolean} - 값이 지정된 범위 내에 있으면 `true`, 그렇지 않으면 `false`를 반환합니다.\n *\n * @throws {Error} - `min` 또는 `max` 값이 유효하지 않거나, `min`이 `max`보다 큰 경우 오류가 발생합니다.\n *\n * @example\n * isInRange({ value: 5, min: 1, max: 10 }); // true\n * isInRange({ value: 10, min: 1, max: 10 }); // false\n *\n * @example\n * isInRange({ value: 10, min: 1, max: 10, inclusiveMax: true }); // true\n */\nexport function isInRange({\n value,\n min,\n max,\n inclusiveMin = true,\n inclusiveMax = false,\n}: IsInRangeProps): boolean {\n if (min >= max) {\n throw new Error('최소값은 최대값보다 크거나 같은 수 없습니다.');\n }\n\n const isInclusiveMin = inclusiveMin ? value >= min : value > min;\n const isInclusiveMax = inclusiveMax ? value <= max : value < max;\n\n return isInclusiveMin && isInclusiveMax;\n}\n"],"names":[],"mappings":"AA8BO,SAAS,SAAA,CAAU;AAAA,EACxB,KAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,YAAA,GAAe,IAAA;AAAA,EACf,YAAA,GAAe;AACjB,CAAA,EAA4B;AAC1B,EAAA,IAAI,OAAO,GAAA,EAAK;AACd,IAAA,MAAM,IAAI,MAAM,0HAA2B,CAAA;AAAA,EAC7C;AAEA,EAAA,MAAM,cAAA,GAAiB,YAAA,GAAe,KAAA,IAAS,GAAA,GAAM,KAAA,GAAQ,GAAA;AAC7D,EAAA,MAAM,cAAA,GAAiB,YAAA,GAAe,KAAA,IAAS,GAAA,GAAM,KAAA,GAAQ,GAAA;AAE7D,EAAA,OAAO,cAAA,IAAkB,cAAA;AAC3B;;;;"}