| | "use strict"; |
| | Object.defineProperty(exports, "__esModule", { value: true }); |
| | exports.safeToString = exports.objectToString = void 0; |
| | exports.createPromiseCallback = createPromiseCallback; |
| | exports.inOperator = inOperator; |
| | |
| | const objectToString = (obj) => Object.prototype.toString.call(obj); |
| | exports.objectToString = objectToString; |
| | |
| | |
| | |
| | const safeArrayToString = (arr, seenArrays) => { |
| | |
| | if (typeof arr.join !== 'function') |
| | return (0, exports.objectToString)(arr); |
| | seenArrays.add(arr); |
| | const mapped = arr.map((val) => val === null || val === undefined || seenArrays.has(val) |
| | ? '' |
| | : safeToStringImpl(val, seenArrays)); |
| | return mapped.join(); |
| | }; |
| | const safeToStringImpl = (val, seenArrays = new WeakSet()) => { |
| | |
| | |
| | if (typeof val !== 'object' || val === null) { |
| | return String(val); |
| | } |
| | else if (typeof val.toString === 'function') { |
| | return Array.isArray(val) |
| | ? |
| | safeArrayToString(val, seenArrays) |
| | : String(val); |
| | } |
| | else { |
| | |
| | return (0, exports.objectToString)(val); |
| | } |
| | }; |
| | |
| | const safeToString = (val) => safeToStringImpl(val); |
| | exports.safeToString = safeToString; |
| | |
| | function createPromiseCallback(cb) { |
| | let callback; |
| | let resolve; |
| | let reject; |
| | const promise = new Promise((_resolve, _reject) => { |
| | resolve = _resolve; |
| | reject = _reject; |
| | }); |
| | if (typeof cb === 'function') { |
| | callback = (err, result) => { |
| | try { |
| | if (err) |
| | cb(err); |
| | |
| | |
| | |
| | else |
| | cb(null, result); |
| | } |
| | catch (e) { |
| | reject(e instanceof Error ? e : new Error()); |
| | } |
| | }; |
| | } |
| | else { |
| | callback = (err, result) => { |
| | try { |
| | |
| | |
| | if (err) |
| | reject(err); |
| | |
| | else |
| | resolve(result); |
| | } |
| | catch (e) { |
| | reject(e instanceof Error ? e : new Error()); |
| | } |
| | }; |
| | } |
| | return { |
| | promise, |
| | callback, |
| | resolve: (value) => { |
| | callback(null, value); |
| | return promise; |
| | }, |
| | reject: (error) => { |
| | callback(error); |
| | return promise; |
| | }, |
| | }; |
| | } |
| | function inOperator(k, o) { |
| | return k in o; |
| | } |
| |
|