102 lines
16 KiB
Plaintext
102 lines
16 KiB
Plaintext
import { newInvariantError, invariant } from "/_nuxt/node_modules/@apollo/client/utilities/globals/index.js?v=e4f18c29";
|
|
import { Observable } from "/_nuxt/node_modules/@apollo/client/utilities/index.js?v=e4f18c29";
|
|
import { validateOperation, createOperation, transformOperation, } from "/_nuxt/node_modules/@apollo/client/link/utils/index.js?v=e4f18c29";
|
|
function passthrough(op, forward) {
|
|
return (forward ? forward(op) : Observable.of());
|
|
}
|
|
function toLink(handler) {
|
|
return typeof handler === "function" ? new ApolloLink(handler) : handler;
|
|
}
|
|
function isTerminating(link) {
|
|
return link.request.length <= 1;
|
|
}
|
|
var ApolloLink = /** @class */ (function () {
|
|
function ApolloLink(request) {
|
|
if (request)
|
|
this.request = request;
|
|
}
|
|
ApolloLink.empty = function () {
|
|
return new ApolloLink(function () { return Observable.of(); });
|
|
};
|
|
ApolloLink.from = function (links) {
|
|
if (links.length === 0)
|
|
return ApolloLink.empty();
|
|
return links.map(toLink).reduce(function (x, y) { return x.concat(y); });
|
|
};
|
|
ApolloLink.split = function (test, left, right) {
|
|
var leftLink = toLink(left);
|
|
var rightLink = toLink(right || new ApolloLink(passthrough));
|
|
var ret;
|
|
if (isTerminating(leftLink) && isTerminating(rightLink)) {
|
|
ret = new ApolloLink(function (operation) {
|
|
return test(operation) ?
|
|
leftLink.request(operation) || Observable.of()
|
|
: rightLink.request(operation) || Observable.of();
|
|
});
|
|
}
|
|
else {
|
|
ret = new ApolloLink(function (operation, forward) {
|
|
return test(operation) ?
|
|
leftLink.request(operation, forward) || Observable.of()
|
|
: rightLink.request(operation, forward) || Observable.of();
|
|
});
|
|
}
|
|
return Object.assign(ret, { left: leftLink, right: rightLink });
|
|
};
|
|
ApolloLink.execute = function (link, operation) {
|
|
return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of());
|
|
};
|
|
ApolloLink.concat = function (first, second) {
|
|
var firstLink = toLink(first);
|
|
if (isTerminating(firstLink)) {
|
|
globalThis.__DEV__ !== false && invariant.warn(38, firstLink);
|
|
return firstLink;
|
|
}
|
|
var nextLink = toLink(second);
|
|
var ret;
|
|
if (isTerminating(nextLink)) {
|
|
ret = new ApolloLink(function (operation) {
|
|
return firstLink.request(operation, function (op) { return nextLink.request(op) || Observable.of(); }) || Observable.of();
|
|
});
|
|
}
|
|
else {
|
|
ret = new ApolloLink(function (operation, forward) {
|
|
return (firstLink.request(operation, function (op) {
|
|
return nextLink.request(op, forward) || Observable.of();
|
|
}) || Observable.of());
|
|
});
|
|
}
|
|
return Object.assign(ret, { left: firstLink, right: nextLink });
|
|
};
|
|
ApolloLink.prototype.split = function (test, left, right) {
|
|
return this.concat(ApolloLink.split(test, left, right || new ApolloLink(passthrough)));
|
|
};
|
|
ApolloLink.prototype.concat = function (next) {
|
|
return ApolloLink.concat(this, next);
|
|
};
|
|
ApolloLink.prototype.request = function (operation, forward) {
|
|
throw newInvariantError(39);
|
|
};
|
|
ApolloLink.prototype.onError = function (error, observer) {
|
|
if (observer && observer.error) {
|
|
observer.error(error);
|
|
// Returning false indicates that observer.error does not need to be
|
|
// called again, since it was already called (on the previous line).
|
|
// Calling observer.error again would not cause any real problems,
|
|
// since only the first call matters, but custom onError functions
|
|
// might have other reasons for wanting to prevent the default
|
|
// behavior by returning false.
|
|
return false;
|
|
}
|
|
// Throw errors will be passed to observer.error.
|
|
throw error;
|
|
};
|
|
ApolloLink.prototype.setOnError = function (fn) {
|
|
this.onError = fn;
|
|
return this;
|
|
};
|
|
return ApolloLink;
|
|
}());
|
|
export { ApolloLink };
|
|
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBvbGxvTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saW5rL2NvcmUvQXBvbGxvTGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBUXRELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGtCQUFrQixHQUNuQixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLFNBQVMsV0FBVyxDQUFDLEVBQWEsRUFBRSxPQUFpQjtJQUNuRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBNEIsQ0FBQztBQUM5RSxDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsT0FBb0M7SUFDbEQsT0FBTyxPQUFPLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFDM0UsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLElBQWdCO0lBQ3JDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRDtJQW9GRSxvQkFBWSxPQUF3QjtRQUNsQyxJQUFJLE9BQU87WUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN0QyxDQUFDO0lBckZhLGdCQUFLLEdBQW5CO1FBQ0UsT0FBTyxJQUFJLFVBQVUsQ0FBQyxjQUFNLE9BQUEsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFmLENBQWUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFYSxlQUFJLEdBQWxCLFVBQW1CLEtBQXNDO1FBQ3ZELElBQUksS0FBSyxDQUFD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LENBQUM7WUFDL0IsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QixvRUFBb0U7WUFDcEUsb0VBQW9FO1lBQ3BFLGtFQUFrRTtZQUNsRSxrRUFBa0U7WUFDbEUsOERBQThEO1lBQzlELCtCQUErQjtZQUMvQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxpREFBaUQ7UUFDakQsTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0lBRU0sK0JBQVUsR0FBakIsVUFBa0IsRUFBeUI7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBa0JILGlCQUFDO0FBQUQsQ0FBQyxBQXBKRCxJQW9KQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5ld0ludmFyaWFudEVycm9yLCBpbnZhcmlhbnQgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2dsb2JhbHMvaW5kZXguanNcIjtcblxuaW1wb3J0IHR5cGUgeyBPYnNlcnZlciB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvaW5kZXguanNcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2luZGV4LmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIE5leHRMaW5rLFxuICBPcGVyYXRpb24sXG4gIFJlcXVlc3RIYW5kbGVyLFxuICBGZXRjaFJlc3VsdCxcbiAgR3JhcGhRTFJlcXVlc3QsXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5pbXBvcnQge1xuICB2YWxpZGF0ZU9wZXJhdGlvbixcbiAgY3JlYXRlT3BlcmF0aW9uLFxuICB0cmFuc2Zvcm1PcGVyYXRpb24sXG59IGZyb20gXCIuLi91dGlscy9pbmRleC5qc1wiO1xuXG5mdW5jdGlvbiBwYXNzdGhyb3VnaChvcDogT3BlcmF0aW9uLCBmb3J3YXJkOiBOZXh0TGluaykge1xuICByZXR1cm4gKGZvcndhcmQgPyBmb3J3YXJkKG9wKSA6IE9ic2VydmFibGUub2YoKSkgYXMgT2JzZXJ2YWJsZTxGZXRjaFJlc3VsdD47XG59XG5cbmZ1bmN0aW9uIHRvTGluayhoYW5kbGVyOiBSZXF1ZXN0SGFuZGxlciB8IEFwb2xsb0xpbmspIHtcbiAgcmV0dXJuIHR5cGVvZiBoYW5kbGVyID09PSBcImZ1bmN0aW9uXCIgPyBuZXcgQXBvbGxvTGluayhoYW5kbGVyKSA6IGhhbmRsZXI7XG59XG5cbmZ1bmN0aW9uIGlzVGVybWluYXRpbmcobGluazogQXBvbGxvTGluayk6IGJvb2xlYW4ge1xuICByZXR1cm4gbGluay5yZXF1ZXN0Lmxlbmd0aCA8PSAxO1xufVxuXG5leHBvcnQgY2xhc3MgQXBvbGxvTGluayB7XG4gIHB1YmxpYyBzdGF0aWMgZW1wdHkoKTogQXBvbGxvTGluayB7XG4gICAgcmV0dXJuIG5ldyBBcG9sbG9MaW5rKCgpID0+IE9ic2VydmFibGUub2YoKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZyb20obGlua3M6IChBcG9sbG9MaW5rIHwgUmVxdWVzdEhhbmRsZXIpW10pOiBBcG9sbG9MaW5rIHtcbiAgICBpZiAobGlua3MubGVuZ3RoID09PSAwKSByZXR1cm4gQXBvbGxvTGluay5lbXB0eSgpO1xuICAgIHJldHVybiBsaW5rcy5tYXAodG9MaW5rKS5yZWR1Y2UoKHgsIHkpID0+IHguY29uY2F0KHkpKSBhcyBBcG9sbG9MaW5rO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzcGxpdChcbiAgICB0ZXN0OiAob3A6IE9wZXJhdGlvbikgPT4gYm9vbGVhbixcbiAgICBsZWZ0OiBBcG9sbG9MaW5rIHwgUmVxdWVzdEhhbmRsZXIsXG4gICAgcmlnaHQ/OiBBcG9sbG9MaW5rIHwgUmVxdWVzdEhhbmRsZXJcbiAgKTogQXBvbGxvTGluayB7XG4gICAgY29uc3QgbGVmdExpbmsgPSB0b0xpbmsobGVmdCk7XG4gICAgY29uc3QgcmlnaHRMaW5rID0gdG9MaW5rKHJpZ2h0IHx8IG5ldyBBcG9sbG9MaW5rKHBhc3N0aHJvdWdoKSk7XG5cbiAgICBsZXQgcmV0OiBBcG9sbG9MaW5rO1xuICAgIGlmIChpc1Rlcm1pbmF0aW5nKGxlZnRMaW5rKSAmJiBpc1Rlcm1pbmF0aW5nKHJpZ2h0TGluaykpIHtcbiAgICAgIHJldCA9IG5ldyBBcG9sbG9MaW5rKChvcGVyYXRpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIHRlc3Qob3BlcmF0aW9uKSA/XG4gICAgICAgICAgICBsZWZ0TGluay5yZXF1ZXN0KG9wZXJhdGlvbikgfHwgT2JzZXJ2YWJsZS5vZigpXG4gICAgICAgICAgOiByaWdodExpbmsucmVxdWVzdChvcGVyYXRpb24pIHx8IE9ic2VydmFibGUub2YoKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXQgPSBuZXcgQXBvbGxvTGluaygob3BlcmF0aW9uLCBmb3J3YXJkKSA9PiB7XG4gICAgICAgIHJldHVybiB0ZXN0KG9wZXJhdGlvbikgP1xuICAgICAgICAgICAgbGVmdExpbmsucmVxdWVzdChvcGVyYXRpb24sIGZvcndhcmQpIHx8IE9ic2VydmFibGUub2YoKVxuICAgICAgICAgIDogcmlnaHRMaW5rLnJlcXVlc3Qob3BlcmF0aW9uLCBmb3J3YXJkKSB8fCBPYnNlcnZhYmxlLm9mKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocmV0LCB7IGxlZnQ6IGxlZnRMaW5rLCByaWdodDogcmlnaHRMaW5rIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBleGVjdXRlKFxuICAgIGxpbms6IEFwb2xsb0xpbmssXG4gICAgb3BlcmF0aW9uOiBHcmFwaFFMUmVxdWVzdFxuICApOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGxpbmsucmVxdWVzdChcbiAgICAgICAgY3JlYXRlT3BlcmF0aW9uKFxuICAgICAgICAgIG9wZXJhdGlvbi5jb250ZXh0LFxuICAgICAgICAgIHRyYW5zZm9ybU9wZXJhdGlvbih2YWxpZGF0ZU9wZXJhdGlvbihvcGVyYXRpb24pKVxuICAgICAgICApXG4gICAgICApIHx8IE9ic2VydmFibGUub2YoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbmNhdChcbiAgICBmaXJzdDogQXBvbGxvTGluayB8IFJlcXVlc3RIYW5kbGVyLFxuICAgIHNlY29uZDogQXBvbGxvTGluayB8IFJlcXVlc3RIYW5kbGVyXG4gICkge1xuICAgIGNvbnN0IGZpcnN0TGluayA9IHRvTGluayhmaXJzdCk7XG4gICAgaWYgKGlzVGVybWluYXRpbmcoZmlyc3RMaW5rKSkge1xuICAgICAgaW52YXJpYW50Lndhcm4oXG4gICAgICAgIGBZb3UgYXJlIGNhbGxpbmcgY29uY2F0IG9uIGEgdGVybWluYXRpbmcgbGluaywgd2hpY2ggd2lsbCBoYXZlIG5vIGVmZmVjdCAlb2AsXG4gICAgICAgIGZpcnN0TGlua1xuICAgICAgKTtcbiAgICAgIHJldHVybiBmaXJzdExpbms7XG4gICAgfVxuICAgIGNvbnN0IG5leHRMaW5rID0gdG9MaW5rKHNlY29uZCk7XG5cbiAgICBsZXQgcmV0OiBBcG9sbG9MaW5rO1xuICAgIGlmIChpc1Rlcm1pbmF0aW5nKG5leHRMaW5rKSkge1xuICAgICAgcmV0ID0gbmV3IEFwb2xsb0xpbmsoXG4gICAgICAgIChvcGVyYXRpb24pID0+XG4gICAgICAgICAgZmlyc3RMaW5rLnJlcXVlc3QoXG4gICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAob3ApID0+IG5leHRMaW5rLnJlcXVlc3Qob3ApIHx8IE9ic2VydmFibGUub2YoKVxuICAgICAgICAgICkgfHwgT2JzZXJ2YWJsZS5vZigpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXQgPSBuZXcgQXBvbGxvTGluaygob3BlcmF0aW9uLCBmb3J3YXJkKSA9PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgZmlyc3RMaW5rLnJlcXVlc3Qob3BlcmF0aW9uLCAob3ApID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0TGluay5yZXF1ZXN0KG9wLCBmb3J3YXJkKSB8fCBPYnNlcnZhYmxlLm9mKCk7XG4gICAgICAgICAgfSkgfHwgT2JzZXJ2YWJsZS5vZigpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocmV0LCB7IGxlZnQ6IGZpcnN0TGluaywgcmlnaHQ6IG5leHRMaW5rIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IocmVxdWVzdD86IFJlcXVlc3RIYW5kbGVyKSB7XG4gICAgaWYgKHJlcXVlc3QpIHRoaXMucmVxdWVzdCA9IHJlcXVlc3Q7XG4gIH1cblxuICBwdWJsaWMgc3BsaXQoXG4gICAgdGVzdDogKG9wOiBPcGVyYXRpb24pID0+IGJvb2xlYW4sXG4gICAgbGVmdDogQXBvbGxvTGluayB8IFJlcXVlc3RIYW5kbGVyLFxuICAgIHJpZ2h0PzogQXBvbGxvTGluayB8IFJlcXVlc3RIYW5kbGVyXG4gICk6IEFwb2xsb0xpbmsge1xuICAgIHJldHVybiB0aGlzLmNvbmNhdChcbiAgICAgIEFwb2xsb0xpbmsuc3BsaXQodGVzdCwgbGVmdCwgcmlnaHQgfHwgbmV3IEFwb2xsb0xpbmsocGFzc3Rocm91Z2gpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY29uY2F0KG5leHQ6IEFwb2xsb0xpbmsgfCBSZXF1ZXN0SGFuZGxlcik6IEFwb2xsb0xpbmsge1xuICAgIHJldHVybiBBcG9sbG9MaW5rLmNvbmNhdCh0aGlzLCBuZXh0KTtcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0KFxuICAgIG9wZXJhdGlvbjogT3BlcmF0aW9uLFxuICAgIGZvcndhcmQ/OiBOZXh0TGlua1xuICApOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PiB8IG51bGwge1xuICAgIHRocm93IG5ld0ludmFyaWFudEVycm9yKFwicmVxdWVzdCBpcyBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25FcnJvcihcbiAgICBlcnJvcjogYW55LFxuICAgIG9ic2VydmVyPzogT2JzZXJ2ZXI8RmV0Y2hSZXN1bHQ+XG4gICk6IGZhbHNlIHwgdm9pZCB7XG4gICAgaWYgKG9ic2VydmVyICYmIG9ic2VydmVyLmVycm9yKSB7XG4gICAgICBvYnNlcnZlci5lcnJvcihlcnJvcik7XG4gICAgICAvLyBSZXR1cm5pbmcgZmFsc2UgaW5kaWNhdGVzIHRoYXQgb2JzZXJ2ZXIuZXJyb3IgZG9lcyBub3QgbmVlZCB0byBiZVxuICAgICAgLy8gY2FsbGVkIGFnYWluLCBzaW5jZSBpdCB3YXMgYWxyZWFkeSBjYWxsZWQgKG9uIHRoZSBwcmV2aW91cyBsaW5lKS5cbiAgICAgIC8vIENhbGxpbmcgb2JzZXJ2ZXIuZXJyb3IgYWdhaW4gd291bGQgbm90IGNhdXNlIGFueSByZWFsIHByb2JsZW1zLFxuICAgICAgLy8gc2luY2Ugb25seSB0aGUgZmlyc3QgY2FsbCBtYXR0ZXJzLCBidXQgY3VzdG9tIG9uRXJyb3IgZnVuY3Rpb25zXG4gICAgICAvLyBtaWdodCBoYXZlIG90aGVyIHJlYXNvbnMgZm9yIHdhbnRpbmcgdG8gcHJldmVudCB0aGUgZGVmYXVsdFxuICAgICAgLy8gYmVoYXZpb3IgYnkgcmV0dXJuaW5nIGZhbHNlLlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBUaHJvdyBlcnJvcnMgd2lsbCBiZSBwYXNzZWQgdG8gb2JzZXJ2ZXIuZXJyb3IuXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBwdWJsaWMgc2V0T25FcnJvcihmbjogQXBvbGxvTGlua1tcIm9uRXJyb3JcIl0pOiB0aGlzIHtcbiAgICB0aGlzLm9uRXJyb3IgPSBmbjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogVXNlZCB0byBpdGVyYXRlIHRocm91Z2ggYWxsIGxpbmtzIHRoYXQgYXJlIGNvbmNhdGVuYXRpb25zIG9yIGBzcGxpdGAgbGlua3MuXG4gICAqL1xuICByZWFkb25seSBsZWZ0PzogQXBvbGxvTGluaztcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBVc2VkIHRvIGl0ZXJhdGUgdGhyb3VnaCBhbGwgbGlua3MgdGhhdCBhcmUgY29uY2F0ZW5hdGlvbnMgb3IgYHNwbGl0YCBsaW5rcy5cbiAgICovXG4gIHJlYWRvbmx5IHJpZ2h0PzogQXBvbGxvTGluaztcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIENhbiBiZSBwcm92aWRlZCBieSBhIGxpbmsgdGhhdCBoYXMgYW4gaW50ZXJuYWwgY2FjaGUgdG8gcmVwb3J0IGl0J3MgbWVtb3J5IGRldGFpbHMuXG4gICAqL1xuICBnZXRNZW1vcnlJbnRlcm5hbHM/OiAoKSA9PiB1bmtub3duO1xufVxuIl0sInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswXX0= |