piral-ext
Advanced tools
Comparing version 0.3.1 to 0.4.0-pre.417
@@ -1,3 +0,5 @@ | ||
import { Client } from 'urql'; | ||
import { Client, OperationResult } from 'urql'; | ||
import { Source } from 'wonka'; | ||
import { PiralGqlApi, GqlConfig } from './types'; | ||
export declare function pipeToPromise<T>(source: Source<OperationResult<T>>): Promise<T>; | ||
/** | ||
@@ -4,0 +6,0 @@ * Sets up an urql client by using the given config. |
@@ -18,2 +18,3 @@ "use strict"; | ||
} | ||
exports.pipeToPromise = pipeToPromise; | ||
/** | ||
@@ -26,27 +27,29 @@ * Sets up an urql client by using the given config. | ||
const subscriptionUrl = (config.subscriptionUrl || url).replace(/^http/i, 'ws'); | ||
const subscriptionClient = new subscriptions_transport_ws_1.SubscriptionClient(subscriptionUrl, { | ||
reconnect: true, | ||
lazy: config.lazy || false, | ||
inactivityTimeout: 0, | ||
connectionCallback(err) { | ||
const { onConnected, onDisconnected } = config; | ||
const errors = err && (Array.isArray(err) ? err : [err]); | ||
if (errors && errors.length > 0) { | ||
typeof onDisconnected === 'function' && onDisconnected(errors); | ||
} | ||
else { | ||
typeof onConnected === 'function' && onConnected(); | ||
} | ||
}, | ||
}); | ||
const forwardSubscription = operation => subscriptionClient.request(operation); | ||
const subscriptionClient = config.subscriptionUrl !== false && | ||
new subscriptions_transport_ws_1.SubscriptionClient(subscriptionUrl, { | ||
reconnect: true, | ||
lazy: config.lazy || false, | ||
inactivityTimeout: 0, | ||
connectionCallback(err) { | ||
const { onConnected, onDisconnected } = config; | ||
const errors = err && (Array.isArray(err) ? err : [err]); | ||
if (errors && errors.length > 0) { | ||
typeof onDisconnected === 'function' && onDisconnected(errors); | ||
} | ||
else { | ||
typeof onConnected === 'function' && onConnected(); | ||
} | ||
}, | ||
}); | ||
const forwardSubscription = (operation) => subscriptionClient.request(operation); | ||
const exchanges = [...urql_1.defaultExchanges]; | ||
if (subscriptionClient) { | ||
exchanges.push(urql_1.subscriptionExchange({ | ||
forwardSubscription, | ||
})); | ||
} | ||
return new urql_1.Client({ | ||
url, | ||
fetchOptions: config.default || {}, | ||
exchanges: [ | ||
...urql_1.defaultExchanges, | ||
urql_1.subscriptionExchange({ | ||
forwardSubscription, | ||
}), | ||
], | ||
exchanges, | ||
}); | ||
@@ -53,0 +56,0 @@ } |
@@ -54,3 +54,3 @@ export interface GqlUnsubscriber { | ||
*/ | ||
subscriptionUrl?: string; | ||
subscriptionUrl?: false | string; | ||
/** | ||
@@ -57,0 +57,0 @@ * Sets if the subscription should be lazy initialized. |
{ | ||
"name": "piral-ext", | ||
"version": "0.3.1", | ||
"version": "0.4.0-pre.417", | ||
"description": "Useful API extensions and component definitions for extending piral-core.", | ||
@@ -39,3 +39,3 @@ "keywords": [ | ||
}, | ||
"gitHead": "f6a79e18f7cf5ec03dbb43df83a0244efed20374" | ||
"gitHead": "1f32708b106a5930455c774221134ee6786ef155" | ||
} |
import { Client, defaultExchanges, subscriptionExchange, createRequest, OperationResult } from 'urql'; | ||
import { SubscriptionClient } from 'subscriptions-transport-ws'; | ||
import { SubscriptionClient, OperationOptions } from 'subscriptions-transport-ws'; | ||
import { pipe, subscribe, Source } from 'wonka'; | ||
import { PiralGqlApi, GqlConfig } from './types'; | ||
function pipeToPromise<T>(source: Source<OperationResult<T>>) { | ||
export function pipeToPromise<T>(source: Source<OperationResult<T>>) { | ||
return new Promise<T>((resolve, reject) => { | ||
@@ -28,27 +28,34 @@ pipe( | ||
const subscriptionUrl = (config.subscriptionUrl || url).replace(/^http/i, 'ws'); | ||
const subscriptionClient = new SubscriptionClient(subscriptionUrl, { | ||
reconnect: true, | ||
lazy: config.lazy || false, | ||
inactivityTimeout: 0, | ||
connectionCallback(err) { | ||
const { onConnected, onDisconnected } = config; | ||
const errors = err && (Array.isArray(err) ? err : [err]); | ||
const subscriptionClient = | ||
config.subscriptionUrl !== false && | ||
new SubscriptionClient(subscriptionUrl, { | ||
reconnect: true, | ||
lazy: config.lazy || false, | ||
inactivityTimeout: 0, | ||
connectionCallback(err) { | ||
const { onConnected, onDisconnected } = config; | ||
const errors = err && (Array.isArray(err) ? err : [err]); | ||
if (errors && errors.length > 0) { | ||
typeof onDisconnected === 'function' && onDisconnected(errors); | ||
} else { | ||
typeof onConnected === 'function' && onConnected(); | ||
} | ||
}, | ||
}); | ||
const forwardSubscription = operation => subscriptionClient.request(operation); | ||
if (errors && errors.length > 0) { | ||
typeof onDisconnected === 'function' && onDisconnected(errors); | ||
} else { | ||
typeof onConnected === 'function' && onConnected(); | ||
} | ||
}, | ||
}); | ||
const forwardSubscription = (operation: OperationOptions) => subscriptionClient.request(operation); | ||
const exchanges = [...defaultExchanges]; | ||
if (subscriptionClient) { | ||
exchanges.push( | ||
subscriptionExchange({ | ||
forwardSubscription, | ||
}), | ||
); | ||
} | ||
return new Client({ | ||
url, | ||
fetchOptions: config.default || {}, | ||
exchanges: [ | ||
...defaultExchanges, | ||
subscriptionExchange({ | ||
forwardSubscription, | ||
}), | ||
], | ||
exchanges, | ||
}); | ||
@@ -55,0 +62,0 @@ } |
@@ -60,3 +60,3 @@ export interface GqlUnsubscriber { | ||
*/ | ||
subscriptionUrl?: string; | ||
subscriptionUrl?: false | string; | ||
/** | ||
@@ -63,0 +63,0 @@ * Sets if the subscription should be lazy initialized. |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
25036
593