80 lines
9.8 KiB
JavaScript
80 lines
9.8 KiB
JavaScript
|
// src/useIsStrictMode.ts
|
||
|
import * as React from "react";
|
||
|
var getCurrentOwner = () => React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner.current;
|
||
|
var REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode");
|
||
|
var useIsStrictMode = () => {
|
||
|
if (process.env.NODE_ENV === "production") {
|
||
|
return false;
|
||
|
}
|
||
|
const isStrictMode = React.useRef(void 0);
|
||
|
const reactMajorVersion = React.useMemo(() => {
|
||
|
return Number(React.version.split(".")[0]);
|
||
|
}, [React.version]);
|
||
|
if (isNaN(reactMajorVersion) || reactMajorVersion < 18) {
|
||
|
return false;
|
||
|
}
|
||
|
if (isStrictMode.current === void 0) {
|
||
|
let currentOwner = getCurrentOwner();
|
||
|
while (currentOwner && currentOwner.return) {
|
||
|
currentOwner = currentOwner.return;
|
||
|
if (currentOwner.type === REACT_STRICT_MODE_TYPE || currentOwner.elementType === REACT_STRICT_MODE_TYPE) {
|
||
|
isStrictMode.current = true;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return !!isStrictMode.current;
|
||
|
};
|
||
|
|
||
|
// src/useDisposable.ts
|
||
|
import * as React4 from "react";
|
||
|
|
||
|
// src/useStrictEffect.ts
|
||
|
import * as React2 from "react";
|
||
|
var effectSet = /* @__PURE__ */ new WeakSet();
|
||
|
function useStrictEffect(effect, deps) {
|
||
|
const currentOwner = getCurrentOwner();
|
||
|
React2.useEffect(() => {
|
||
|
if (!effectSet.has(currentOwner)) {
|
||
|
effectSet.add(currentOwner);
|
||
|
effect();
|
||
|
return;
|
||
|
}
|
||
|
const dispose = effect();
|
||
|
return dispose;
|
||
|
}, deps);
|
||
|
}
|
||
|
|
||
|
// src/useStrictMemo.ts
|
||
|
import * as React3 from "react";
|
||
|
var memoSet = /* @__PURE__ */ new WeakSet();
|
||
|
function useStrictMemo(factory, deps) {
|
||
|
return React3.useMemo(() => {
|
||
|
const currentOwner = getCurrentOwner();
|
||
|
if (!memoSet.has(currentOwner)) {
|
||
|
memoSet.add(currentOwner);
|
||
|
return null;
|
||
|
}
|
||
|
return factory();
|
||
|
}, deps);
|
||
|
}
|
||
|
|
||
|
// src/useDisposable.ts
|
||
|
function useDisposable(factory, deps) {
|
||
|
var _a;
|
||
|
const isStrictMode = useIsStrictMode() && process.env.NODE_ENV !== "production";
|
||
|
const useMemo4 = isStrictMode ? useStrictMemo : React4.useMemo;
|
||
|
const useEffect3 = isStrictMode ? useStrictEffect : React4.useEffect;
|
||
|
const [disposable, dispose] = (_a = useMemo4(() => factory(), deps)) != null ? _a : [
|
||
|
null,
|
||
|
() => null
|
||
|
];
|
||
|
useEffect3(() => {
|
||
|
return dispose;
|
||
|
}, deps);
|
||
|
return disposable;
|
||
|
}
|
||
|
export {
|
||
|
useDisposable,
|
||
|
useIsStrictMode
|
||
|
};
|
||
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3VzZUlzU3RyaWN0TW9kZS50cyIsICIuLi9zcmMvdXNlRGlzcG9zYWJsZS50cyIsICIuLi9zcmMvdXNlU3RyaWN0RWZmZWN0LnRzIiwgIi4uL3NyYy91c2VTdHJpY3RNZW1vLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuLyoqXG4gKiBAcmV0dXJucyBDdXJyZW50IHJlYWN0IGZpYmVyIGJlaW5nIHJlbmRlcmVkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDdXJyZW50T3duZXIgPSAoKSA9PlxuICAvLyBAdHMtaWdub3JlIC0gdXNpbmcgcmVhY3QgaW50ZXJuYWxzXG4gIFJlYWN0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELlJlYWN0Q3VycmVudE93bmVyXG4gICAgLmN1cnJlbnQ7XG5cbmNvbnN0IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSAvKiNfX1BVUkVfXyovIFN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKTtcblxuLyoqXG4gKiBUcmF2ZXJzZXMgdXAgdGhlIFJlYWN0IGZpYmVyIHRyZWUgdG8gZmluZCB0aGUgU3RyaWN0TW9kZSBjb21wb25lbnQuXG4gKiBOb3RlOiBUaGlzIG9ubHkgZGV0ZWN0cyBzdHJpY3QgbW9kZSBmcm9tIFJlYWN0ID49IDE4XG4gKiBodHRwczovL2dpdGh1Yi5jb20vcmVhY3R3Zy9yZWFjdC0xOC9kaXNjdXNzaW9ucy8xOVxuICogQHJldHVybnMgSWYgc3RyaWN0IG1vZGUgaXMgYmVpbmcgdXNlZCBpbiB0aGUgUmVhY3QgdHJlZVxuICovXG5leHBvcnQgY29uc3QgdXNlSXNTdHJpY3RNb2RlID0gKCk6IGJvb2xlYW4gPT4ge1xuICAvLyBUaGlzIGNoZWNrIHZpb2xhdGVzIFJ1bGVzIG9mIEhvb2tzLCBidXQgXCJwcm9jZXNzLmVudi5OT0RFX0VOVlwiIGRvZXMgbm90IGNoYW5nZSBpbiBidW5kbGVcbiAgLy8gb3IgZHVyaW5nIGFwcGxpY2F0aW9uIGxpZmVjeWNsZVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgaXNTdHJpY3RNb2RlID0gUmVhY3QudXNlUmVmPGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IHJlYWN0TWFqb3JWZXJzaW9uID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIE51bWJlcihSZWFjdC52ZXJzaW9uLnNwbGl0KFwiLlwiKVswXSk7XG4gIH0sIFtSZWFjdC52ZXJzaW9uXSk7XG5cbiAgaWYgKGlzTmFOKHJlYWN0TWFqb3JWZXJzaW9uKSB8fCByZWFjdE1ham9yVmVyc2lvbiA8IDE4KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGlzU3RyaWN0TW9kZS5jdXJyZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICBsZXQgY3VycmVudE93bmVyID0gZ2V0Q3VycmVudE93bmVyKCk7XG4gICAgd2hpbGUgKGN1cnJlbnRPd25lciAmJiBjdXJyZW50T3duZXIucmV0dXJuKSB7XG4gICAgICBjdXJyZW50T3duZXIgPSBjdXJyZW50T3duZXIucmV0dXJuO1xuICAgICAgaWYgKFxuICAgICAgICBjdXJyZW50T3duZXIudHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSB8fFxuICAgICAgICBjdXJyZW50T3duZXIuZWxlbWVudFR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEVcbiAgICAgICkge1xuICAgICAgICBpc1N0cmljdE1vZGUuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICEhaXNTdHJpY3RNb2RlLmN1cnJlbnQ7XG59O1xuIiwgImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBEaXNwb3NhYmxlRmFjdG9yeSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyB1c2VJc1N0cmljdE1vZGUgfSBmcm9tIFwiLi91c2VJc1N0cmljdE1vZGVcIjtcbmltcG9ydCB7IHVzZVN0cmljdEVmZmVjdCB9IGZyb20gXCIuL3VzZVN0cmljdEVmZmVjdFwiO1xuaW1wb3J0IHsgdXNlU3RyaWN0TWVtbyB9IGZyb20gXCIuL3VzZVN0cmljdE1lbW9cIjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZGlzcG9zYWJsZSBpbnN0YW5jZSBkdXJpbmcgKipyZW5kZXIgdGltZSoqIHRoYXQgd2lsbFxuICogYmUgY3JlYXRlZCBvbmNlIChiYXNlZCBvbiBkZXBlbmRlbmN5IGFycmF5KSBldmVuIGR1cmluZyBzdHJpY3QgbW9kZS5cbiAqIFRoZSBkaXNwb3NhYmxlIHdpbGwgYmUgZGlzcG9zZWQgYmFzZWQgb24gdGhlIGRlcGVuZGVuY3kgYXJyYXkgc2ltaWxhciB0b1xuICogdXNlRWZmZWN0LlxuICpcbiAqIFx1MjZBMFx1RkUwRiBUaGlzIGNhbiBvbmx5IGJlIGNhbGxlZCAqKm9uY2UqKiBwZXIgY29tcG9uZW50XG4gKiBAcGFyYW0gZmFjdG9yeSAtIGZhY3RvcnkgZm9yIGRpc3Bvc2FibGUgYW5kIGl0cyBkaXNwb3NlIGZ1bmN0aW9uXG4gKiBAcGFyYW0gZGVwcyAtIFNpbWlsYXIgdG8gYSBSZWFjdCBkZXBlbmRlbmN5IGFycmF5XG4gKiBAcmV0dXJucyAtIFRoZSBkaXNwb3NhYmxlIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEaXNwb3NhYmxlPFRJbnN0YW5jZT4oXG4gIGZhY3Rvcnk6IERpc3Bvc2FibGVGYWN0b3J5PFRJbnN0YW5jZT4sXG4gIGRlcHM6IGFueVtdXG4pIHtcbiAgLy8gSW4gcHJvZHVjdGlvbiwgc3RyaWN0IG1vZGUgZG9lcyBub3QgcmVxdWlyZSBzcGVjaWFsIGhhbmRsaW5nXG4gIGNvbnN0IGlzU3RyaWN0TW9kZSA9XG4gICAgdXNlSXNTdHJpY3RNb2RlKCkgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiO1xuXG4gIGNvbnN0IHVzZU1lbW8gPSBpc1N0cmljdE1vZGUgPyB1c2VTdHJpY3RNZW1vIDogUmVhY3QudXNlTWVtbztcbiAgY29uc3QgdXNlRWZmZWN0ID0gaXNTdHJpY3RNb2RlID8gdXNlU3RyaWN0RWZmZWN0IDogUmVhY3QudXNlRWZmZWN0O1xuXG4gIGNvbnN0IFtkaXNwb3NhYmxlLCBkaXNwb3NlXSA9IHVzZU1lbW8oKCkgPT4gZmFjdG9yeSgpLCBkZXBzKSA/PyBbXG4gICAgbnVsbCxcbiAgICAoKSA9PiBudWxsLFxuICBdO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBkaXNwb3NlO1xuICB9LCBkZXBzKTtcblxuI
|