@shopify/react-network
Advanced tools
Comparing version 3.2.2 to 3.3.0-beta.1
@@ -10,2 +10,7 @@ # Changelog | ||
## [3.3.0] | ||
- Add `useNetworkManager` hook [#1018](https://github.com/Shopify/quilt/pull/1018) | ||
- Add server state management to `NetworkManager` and update `applyToContext` to support server state [#1018](https://github.com/Shopify/quilt/pull/1018) | ||
## [3.2.0] | ||
@@ -12,0 +17,0 @@ |
import { Language } from 'accept-language-parser'; | ||
import { CspDirective, StatusCode } from '@shopify/network'; | ||
import { NetworkManager } from './manager'; | ||
export declare function useNetworkManager(): NetworkManager | null; | ||
export declare function useNetworkEffect(perform: (network: NetworkManager) => void): void; | ||
@@ -5,0 +6,0 @@ export declare function useCspDirective(directive: CspDirective, source: string | string[] | boolean): void; |
@@ -8,2 +8,6 @@ "use strict"; | ||
var context_1 = require("./context"); | ||
function useNetworkManager() { | ||
return react_1.useContext(context_1.NetworkContext); | ||
} | ||
exports.useNetworkManager = useNetworkManager; | ||
function useNetworkEffect(perform) { | ||
@@ -10,0 +14,0 @@ var network = react_1.useContext(context_1.NetworkContext); |
export * from '@shopify/network'; | ||
export * from './components'; | ||
export { NetworkManager } from './manager'; | ||
export { NetworkManager, STATE_ID } from './manager'; | ||
export { NetworkContext } from './context'; | ||
export { useNetworkEffect, useStatus, useCspDirective, useHeader, useRequestHeader, useRedirect, useAcceptLanguage, } from './hooks'; | ||
export { useNetworkManager, useNetworkEffect, useStatus, useCspDirective, useHeader, useRequestHeader, useRedirect, useAcceptLanguage, } from './hooks'; |
@@ -8,5 +8,7 @@ "use strict"; | ||
exports.NetworkManager = manager_1.NetworkManager; | ||
exports.STATE_ID = manager_1.STATE_ID; | ||
var context_1 = require("./context"); | ||
exports.NetworkContext = context_1.NetworkContext; | ||
var hooks_1 = require("./hooks"); | ||
exports.useNetworkManager = hooks_1.useNetworkManager; | ||
exports.useNetworkEffect = hooks_1.useNetworkEffect; | ||
@@ -13,0 +15,0 @@ exports.useStatus = hooks_1.useStatus; |
@@ -0,1 +1,2 @@ | ||
import { Context } from 'koa'; | ||
import { StatusCode, CspDirective } from '@shopify/network'; | ||
@@ -5,2 +6,3 @@ import { EffectKind } from '@shopify/react-effect'; | ||
export declare const EFFECT_ID: unique symbol; | ||
export declare const STATE_ID: unique symbol; | ||
interface Options { | ||
@@ -13,2 +15,3 @@ headers?: Record<string, string>; | ||
private redirectUrl?; | ||
private serverState; | ||
private readonly csp; | ||
@@ -20,2 +23,4 @@ private readonly headers; | ||
getHeader(header: string): string; | ||
getServerState(): Context['state']; | ||
setServerState(newState: Context['state']): void; | ||
setHeader(header: string, value: string): void; | ||
@@ -29,3 +34,4 @@ redirectTo(url: string, status?: StatusCode): void; | ||
redirectUrl: string | undefined; | ||
serverState: any; | ||
}; | ||
} |
@@ -8,2 +8,3 @@ "use strict"; | ||
exports.EFFECT_ID = Symbol('network'); | ||
exports.STATE_ID = Symbol('network-state'); | ||
var NetworkManager = /** @class */ (function () { | ||
@@ -32,2 +33,3 @@ function NetworkManager(_a) { | ||
this.redirectUrl = undefined; | ||
this.serverState = {}; | ||
}; | ||
@@ -37,2 +39,8 @@ NetworkManager.prototype.getHeader = function (header) { | ||
}; | ||
NetworkManager.prototype.getServerState = function () { | ||
return this.serverState || {}; | ||
}; | ||
NetworkManager.prototype.setServerState = function (newState) { | ||
this.serverState = newState; | ||
}; | ||
NetworkManager.prototype.setHeader = function (header, value) { | ||
@@ -87,2 +95,3 @@ this.headers.set(header, value); | ||
redirectUrl: this.redirectUrl, | ||
serverState: this.serverState, | ||
}; | ||
@@ -89,0 +98,0 @@ }; |
@@ -6,1 +6,2 @@ import { Context } from 'koa'; | ||
export declare function applyToContext<T extends Context>(ctx: T, manager: NetworkManager): T; | ||
export declare function getServerState<T extends Context>(ctx: T): any; |
@@ -11,3 +11,3 @@ "use strict"; | ||
var e_1, _a; | ||
var _b = manager.extract(), status = _b.status, redirectUrl = _b.redirectUrl, headers = _b.headers; | ||
var _b = manager.extract(), status = _b.status, redirectUrl = _b.redirectUrl, headers = _b.headers, serverState = _b.serverState; | ||
if (redirectUrl) { | ||
@@ -32,4 +32,9 @@ ctx.redirect(redirectUrl); | ||
} | ||
ctx.state[manager_1.STATE_ID] = serverState; | ||
return ctx; | ||
} | ||
exports.applyToContext = applyToContext; | ||
function getServerState(ctx) { | ||
return ctx.state[manager_1.STATE_ID]; | ||
} | ||
exports.getServerState = getServerState; |
{ | ||
"name": "@shopify/react-network", | ||
"version": "3.2.2", | ||
"version": "3.3.0-beta.1", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "description": "A collection of components that allow you to set common HTTP headers from within your React application.", |
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
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
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
36486
739
1
1