UNPKG

@danielkalen/simplybind

Version:

Magically simple, framework-less one-way/two-way data binding for frontend/backend in ~5kb.

73 lines (57 loc) 1.78 kB
export function AggregateError(message, innerError, skipIfAlreadyAggregate) { if (innerError) { if (innerError.innerError && skipIfAlreadyAggregate) { return innerError; } const separator = '\n------------------------------------------------\n'; message += `${ separator }Inner Error:\n`; if (typeof innerError === 'string') { message += `Message: ${ innerError }`; } else { if (innerError.message) { message += `Message: ${ innerError.message }`; } else { message += `Unknown Inner Error Type. Displaying Inner Error as JSON:\n ${ JSON.stringify(innerError, null, ' ') }`; } if (innerError.stack) { message += `\nInner Error Stack:\n${ innerError.stack }`; message += '\nEnd Inner Error Stack'; } } message += separator; } let e = new Error(message); if (innerError) { e.innerError = innerError; } return e; } export const FEATURE = {}; export const PLATFORM = { noop: function () {}, eachModule() {} }; PLATFORM.global = function () { if (typeof self !== 'undefined') { return self; } if (typeof global !== 'undefined') { return global; } return new Function('return this')(); }(); export const DOM = {}; export function initializePAL(callback) { if (typeof Object.getPropertyDescriptor !== 'function') { Object.getPropertyDescriptor = function (subject, name) { let pd = Object.getOwnPropertyDescriptor(subject, name); let proto = Object.getPrototypeOf(subject); while (typeof pd === 'undefined' && proto !== null) { pd = Object.getOwnPropertyDescriptor(proto, name); proto = Object.getPrototypeOf(proto); } return pd; }; } callback(PLATFORM, FEATURE, DOM); }