Buckets:
| exports.waitForCb = function (options) { | |
| let count = null | |
| let done = false | |
| let iResolve | |
| let iReject | |
| function stepIn () { | |
| if (done) { | |
| iReject(new Error('Unexpected done call')) | |
| return | |
| } | |
| if (--count) { | |
| return | |
| } | |
| done = true | |
| iResolve() | |
| } | |
| const patience = new Promise((resolve, reject) => { | |
| iResolve = resolve | |
| iReject = reject | |
| }) | |
| count = options.steps || 1 | |
| done = false | |
| return { stepIn, patience } | |
| } | |
| exports.partialDeepStrictEqual = function partialDeepStrictEqual (actual, expected) { | |
| if (typeof expected !== 'object' || expected === null) { | |
| return actual === expected | |
| } | |
| if (typeof actual !== 'object' || actual === null) { | |
| return false | |
| } | |
| if (Array.isArray(expected)) { | |
| if (!Array.isArray(actual)) return false | |
| if (expected.length > actual.length) return false | |
| for (let i = 0; i < expected.length; i++) { | |
| if (!partialDeepStrictEqual(actual[i], expected[i])) { | |
| return false | |
| } | |
| } | |
| return true | |
| } | |
| for (const key of Object.keys(expected)) { | |
| if (!(key in actual)) return false | |
| if (!partialDeepStrictEqual(actual[key], expected[key])) { | |
| return false | |
| } | |
| } | |
| return true | |
| } | |
Xet Storage Details
- Size:
- 1.24 kB
- Xet hash:
- 85c343a4ef7c8ad10c983f2379b6a1a932dfe1673c64d484d505e8cea239b23e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.