Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

use-ssr

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

use-ssr - npm Package Compare versions

Comparing version
1.0.19
to
1.0.21
+7
-5
dist/useSSR.d.ts

@@ -5,2 +5,3 @@ interface UseSSRReturn {

isNative: boolean;
device: Device;
canUseWorkers: boolean;

@@ -11,7 +12,8 @@ canUseEventListeners: boolean;

export declare enum Device {
BROWSER = "BROWSER",
SERVER = "SERVER",
NATIVE = "NATIVE"
Browser = "browser",
Server = "server",
Native = "native"
}
export default function useSSR(): UseSSRReturn;
export {};
export declare const weAreServer: () => void;
export declare const useSSR: () => UseSSRReturn;
export default useSSR;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
var Device;
(function (Device) {
Device["BROWSER"] = "BROWSER";
Device["SERVER"] = "SERVER";
Device["NATIVE"] = "NATIVE";
Device["Browser"] = "browser";
Device["Server"] = "server";
Device["Native"] = "native";
})(Device = exports.Device || (exports.Device = {}));
const { BROWSER, SERVER, NATIVE } = Device;
const { Browser, Server, Native } = Device;
const canUseDOM = !!(typeof window !== 'undefined' &&

@@ -15,23 +14,20 @@ window.document &&

const canUseNative = typeof navigator != 'undefined' && navigator.product == 'ReactNative';
const location = canUseNative ? NATIVE : canUseDOM ? BROWSER : SERVER;
function useSSR() {
const [whereAmI, setWhereAmI] = react_1.useState(location);
const mounted = react_1.useRef(false);
react_1.useEffect(() => {
if (mounted.current)
return;
mounted.current = true;
setWhereAmI(location);
});
const useSSRObject = react_1.useMemo(() => ({
isBrowser: whereAmI === BROWSER,
isServer: whereAmI === SERVER,
isNative: whereAmI === NATIVE,
canUseWorkers: typeof Worker !== 'undefined',
canUseEventListeners: whereAmI === BROWSER && !!window.addEventListener,
canUseViewport: whereAmI === BROWSER && !!window.screen
}), [whereAmI]);
return react_1.useMemo(() => Object.assign(Object.values(useSSRObject), useSSRObject), [whereAmI]);
}
exports.default = useSSR;
const device = canUseNative ? Native : canUseDOM ? Browser : Server;
const SSRObject = {
isBrowser: device === Browser,
isServer: device === Server,
isNative: device === Native,
device,
canUseWorkers: typeof Worker !== 'undefined',
canUseEventListeners: device === Browser && !!window.addEventListener,
canUseViewport: device === Browser && !!window.screen,
};
const toArrayObject = () => Object.assign(Object.values(SSRObject), SSRObject);
let useSSRObject = toArrayObject();
exports.weAreServer = () => {
SSRObject.isServer = true;
useSSRObject = toArrayObject();
};
exports.useSSR = () => useSSRObject;
exports.default = exports.useSSR;
//# sourceMappingURL=useSSR.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"useSSR.js","sourceRoot":"","sources":["../useSSR.ts"],"names":[],"mappings":";;AAAA,iCAA4D;AAW5D,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,6BAAmB,CAAA;IACnB,2BAAiB,CAAA;IACjB,2BAAiB,CAAA;AACnB,CAAC,EAJW,MAAM,GAAN,cAAM,KAAN,cAAM,QAIjB;AAGD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;AAE1C,MAAM,SAAS,GAAY,CAAC,CAAC,CAC3B,OAAO,MAAM,KAAK,WAAW;IAC7B,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,QAAQ,CAAC,aAAa,CAC9B,CAAA;AAED,MAAM,YAAY,GAAY,OAAO,SAAS,IAAI,WAAW,IAAI,SAAS,CAAC,OAAO,IAAI,aAAa,CAAA;AAEnG,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;AAGrE,SAAwB,MAAM;IAC5B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,gBAAQ,CAAC,QAAQ,CAAC,CAAA;IAElD,MAAM,OAAO,GAAG,cAAM,CAAC,KAAK,CAAC,CAAA;IAC7B,iBAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,OAAO;YAAE,OAAM;QAC3B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;QACtB,WAAW,CAAC,QAAQ,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,eAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAClC,SAAS,EAAE,QAAQ,KAAK,OAAO;QAC/B,QAAQ,EAAE,QAAQ,KAAK,MAAM;QAC7B,QAAQ,EAAE,QAAQ,KAAK,MAAM;QAC7B,aAAa,EAAE,OAAO,MAAM,KAAK,WAAW;QAC5C,oBAAoB,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,gBAAgB;QACvE,cAAc,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM;KACxD,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEf,OAAO,eAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC5F,CAAC;AApBD,yBAoBC"}
{"version":3,"file":"useSSR.js","sourceRoot":"","sources":["../useSSR.ts"],"names":[],"mappings":";;AAUA,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,6BAAmB,CAAA;IACnB,2BAAiB,CAAA;IACjB,2BAAiB,CAAA;AACnB,CAAC,EAJW,MAAM,GAAN,cAAM,KAAN,cAAM,QAIjB;AAED,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;AAE1C,MAAM,SAAS,GAAY,CAAC,CAAC,CAC3B,OAAO,MAAM,KAAK,WAAW;IAC7B,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,QAAQ,CAAC,aAAa,CAC9B,CAAA;AAED,MAAM,YAAY,GAAY,OAAO,SAAS,IAAI,WAAW,IAAI,SAAS,CAAC,OAAO,IAAI,aAAa,CAAA;AAEnG,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;AAEnE,MAAM,SAAS,GAAG;IAChB,SAAS,EAAE,MAAM,KAAK,OAAO;IAC7B,QAAQ,EAAE,MAAM,KAAK,MAAM;IAC3B,QAAQ,EAAE,MAAM,KAAK,MAAM;IAC3B,MAAM;IACN,aAAa,EAAE,OAAO,MAAM,KAAK,WAAW;IAC5C,oBAAoB,EAAE,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,gBAAgB;IACrE,cAAc,EAAE,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM;CACtD,CAAA;AAED,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;AAE9E,IAAI,YAAY,GAAG,aAAa,EAAE,CAAA;AAErB,QAAA,WAAW,GAAG,GAAG,EAAE;IAC9B,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAA;IACzB,YAAY,GAAG,aAAa,EAAE,CAAA;AAChC,CAAC,CAAA;AAEY,QAAA,MAAM,GAAG,GAAiB,EAAE,CAAC,YAAY,CAAA;AACtD,kBAAe,cAAM,CAAA"}
{
"name": "use-ssr",
"version": "1.0.19",
"version": "1.0.21",
"description": "☯️ React hook to determine if you're on the server or browser",

@@ -5,0 +5,0 @@ "main": "dist/useSSR.js",

<h1 align="center">useSSR</h1>
<p align="center">☯️ React hook to determine if you are on the server, in the browser, or in react native</p>
<p align="center">☯️ React hook to determine if you are on the server, browser, or react native</p>
<p align="center">

@@ -101,2 +101,3 @@ <a href="https://github.com/alex-cory/use-ssr/pulls">

isNative,
device, // 'server', 'browser', or 'native'
canUseWorkers,

@@ -111,2 +112,3 @@ canUseEventListeners,

isNative,
device, // 'server', 'browser', or 'native'
canUseWorkers,

@@ -113,0 +115,0 @@ canUseEventListeners,