You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.7 KiB
54 lines
1.7 KiB
"use strict"; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
exports.limitCloseReason = exports.areGraphQLErrors = exports.isAsyncGenerator = exports.isAsyncIterable = exports.isObject = exports.extendedTypeof = void 0; |
|
/** @private */ |
|
function extendedTypeof(val) { |
|
if (val === null) { |
|
return 'null'; |
|
} |
|
if (Array.isArray(val)) { |
|
return 'array'; |
|
} |
|
return typeof val; |
|
} |
|
exports.extendedTypeof = extendedTypeof; |
|
/** @private */ |
|
function isObject(val) { |
|
return extendedTypeof(val) === 'object'; |
|
} |
|
exports.isObject = isObject; |
|
/** @private */ |
|
function isAsyncIterable(val) { |
|
return typeof Object(val)[Symbol.asyncIterator] === 'function'; |
|
} |
|
exports.isAsyncIterable = isAsyncIterable; |
|
/** @private */ |
|
function isAsyncGenerator(val) { |
|
return (isObject(val) && |
|
typeof Object(val)[Symbol.asyncIterator] === 'function' && |
|
typeof val.return === 'function' |
|
// for lazy ones, we only need the return anyway |
|
// typeof val.throw === 'function' && |
|
// typeof val.next === 'function' |
|
); |
|
} |
|
exports.isAsyncGenerator = isAsyncGenerator; |
|
/** @private */ |
|
function areGraphQLErrors(obj) { |
|
return (Array.isArray(obj) && |
|
// must be at least one error |
|
obj.length > 0 && |
|
// error has at least a message |
|
obj.every((ob) => 'message' in ob)); |
|
} |
|
exports.areGraphQLErrors = areGraphQLErrors; |
|
/** |
|
* Limits the WebSocket close event reason to not exceed a length of one frame. |
|
* Reference: https://datatracker.ietf.org/doc/html/rfc6455#section-5.2. |
|
* |
|
* @private |
|
*/ |
|
function limitCloseReason(reason, whenTooLong) { |
|
return reason.length < 124 ? reason : whenTooLong; |
|
} |
|
exports.limitCloseReason = limitCloseReason;
|
|
|