moltres-utils
Version:
Utils for Moltres apps
59 lines (46 loc) • 1.78 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _baseGetTag = _interopRequireDefault(require("./baseGetTag"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/** `Object#toString` result references. */
const dataViewTag = '[object DataView]';
const mapTag = '[object Map]';
const objectTag = '[object Object]';
const promiseTag = '[object Promise]';
const setTag = '[object Set]';
const weakMapTag = '[object WeakMap]';
/** Used to detect maps, sets, and weakmaps. */
const dataViewCtorString = `${DataView}`;
const mapCtorString = `${Map}`;
const promiseCtorString = `${Promise}`;
const setCtorString = `${Set}`;
const weakMapCtorString = `${WeakMap}`;
let getTag = _baseGetTag.default; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || getTag(new Map()) != mapTag || getTag(Promise.resolve()) != promiseTag || getTag(new Set()) != setTag || getTag(new WeakMap()) != weakMapTag) {
getTag = value => {
const result = (0, _baseGetTag.default)(value);
const Ctor = result == objectTag ? value.constructor : undefined;
const ctorString = Ctor ? `${Ctor}` : '';
if (ctorString) {
switch (ctorString) {
case dataViewCtorString:
return dataViewTag;
case mapCtorString:
return mapTag;
case promiseCtorString:
return promiseTag;
case setCtorString:
return setTag;
case weakMapCtorString:
return weakMapTag;
}
}
return result;
};
}
var _default = getTag;
exports.default = _default;
//# sourceMappingURL=getTag.js.map
;