You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.5 KiB
41 lines
1.5 KiB
function number(n) { |
|
if (!Number.isSafeInteger(n) || n < 0) |
|
throw new Error(`positive integer expected, not ${n}`); |
|
} |
|
function bool(b) { |
|
if (typeof b !== 'boolean') |
|
throw new Error(`boolean expected, not ${b}`); |
|
} |
|
export function isBytes(a) { |
|
return (a instanceof Uint8Array || |
|
(a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')); |
|
} |
|
function bytes(b, ...lengths) { |
|
if (!isBytes(b)) |
|
throw new Error('Uint8Array expected'); |
|
if (lengths.length > 0 && !lengths.includes(b.length)) |
|
throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`); |
|
} |
|
function hash(hash) { |
|
if (typeof hash !== 'function' || typeof hash.create !== 'function') |
|
throw new Error('hash must be wrapped by utils.wrapConstructor'); |
|
number(hash.outputLen); |
|
number(hash.blockLen); |
|
} |
|
function exists(instance, checkFinished = true) { |
|
if (instance.destroyed) |
|
throw new Error('Hash instance has been destroyed'); |
|
if (checkFinished && instance.finished) |
|
throw new Error('Hash#digest() has already been called'); |
|
} |
|
function output(out, instance) { |
|
bytes(out); |
|
const min = instance.outputLen; |
|
if (out.length < min) { |
|
throw new Error(`digestInto() expects output buffer of length at least ${min}`); |
|
} |
|
} |
|
export { number, bool, bytes, hash, exists, output }; |
|
const assert = { number, bool, bytes, hash, exists, output }; |
|
export default assert; |
|
//# sourceMappingURL=_assert.js.map
|