| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- let idSeed = 0
- function clampInteger(value, minValue, maxValue, fallback) {
- const numberValue = Number(value)
- if (!Number.isFinite(numberValue)) return fallback
- return Math.min(Math.max(Math.round(numberValue), minValue), maxValue)
- }
- function createId(prefix = 'id') {
- idSeed += 1
- return `${prefix}-${Date.now()}-${idSeed}`
- }
- function delay(ms) {
- return new Promise((resolve) => {
- setTimeout(resolve, ms)
- })
- }
- function parseHexInteger(value, fallback = 0) {
- const text = String(value === undefined || value === null ? '' : value).trim()
- if (!text) return fallback
- const parsed = parseInt(text, 16)
- return Number.isFinite(parsed) ? parsed : fallback
- }
- function normalizeTextValue(value) {
- return String(value === undefined || value === null ? '' : value)
- }
- function padHex(value, length = 4) {
- return Number(value || 0).toString(16).toUpperCase().padStart(length, '0')
- }
- module.exports = {
- clampInteger,
- createId,
- delay,
- normalizeTextValue,
- padHex,
- parseHexInteger
- }
|