UNPKG

@govuk-pay/run-amock

Version:

A drop-in replacement for Mountebank in our govuk-pay codebases.

44 lines (39 loc) 1.03 kB
export function getCurrentTime () { return process.hrtime.bigint() } export function objectsDeepEqual (l, r, config = {}) { const allowArraysInAnyOrder = config?.allowArraysInAnyOrder !== false if ( l === null || l === undefined || r === null || r === undefined ){ return l === r } if (Object.keys(l).length !== Object.keys(r).length) { return false } function itemsMatch (l, r) { if (typeof l === 'object') { return objectsDeepEqual(l, r, config) } return r.includes(l) } if (allowArraysInAnyOrder && Array.isArray(l)) { if (!Array.isArray(r) || l.length !== r.length) { return false } for (const key in l) { if (!r.find(x => itemsMatch(l[key], x))) { return false } } return true } for (const key in l) { if (typeof l[key] === 'object' && l[key] !== null) { if (!objectsDeepEqual(l[key], r[key], config)) { return false } } else if (r[key] !== l[key]) { return false } } return true }