114 lines
12 KiB
JavaScript
114 lines
12 KiB
JavaScript
|
"use strict";
|
||
|
var __create = Object.create;
|
||
|
var __defProp = Object.defineProperty;
|
||
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||
|
var __getProtoOf = Object.getPrototypeOf;
|
||
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||
|
var __export = (target, all) => {
|
||
|
for (var name in all)
|
||
|
__defProp(target, name, { get: all[name], enumerable: true });
|
||
|
};
|
||
|
var __copyProps = (to, from, except, desc) => {
|
||
|
if (from && typeof from === "object" || typeof from === "function") {
|
||
|
for (let key of __getOwnPropNames(from))
|
||
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
||
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||
|
}
|
||
|
return to;
|
||
|
};
|
||
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
||
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
||
|
mod
|
||
|
));
|
||
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||
|
|
||
|
// src/index.ts
|
||
|
var src_exports = {};
|
||
|
__export(src_exports, {
|
||
|
useDisposable: () => useDisposable,
|
||
|
useIsStrictMode: () => useIsStrictMode
|
||
|
});
|
||
|
module.exports = __toCommonJS(src_exports);
|
||
|
|
||
|
// src/useIsStrictMode.ts
|
||
|
var React = __toESM(require("react"), 1);
|
||
|
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
|
||
|
var React4 = __toESM(require("react"), 1);
|
||
|
|
||
|
// src/useStrictEffect.ts
|
||
|
var React2 = __toESM(require("react"), 1);
|
||
|
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
|
||
|
var React3 = __toESM(require("react"), 1);
|
||
|
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;
|
||
|
}
|
||
|
// Annotate the CommonJS export names for ESM import in node:
|
||
|
0 && (module.exports = {
|
||
|
useDisposable,
|
||
|
useIsStrictMode
|
||
|
});
|
||
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy91c2VJc1N0cmljdE1vZGUudHMiLCAiLi4vc3JjL3VzZURpc3Bvc2FibGUudHMiLCAiLi4vc3JjL3VzZVN0cmljdEVmZmVjdC50cyIsICIuLi9zcmMvdXNlU3RyaWN0TWVtby50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiZXhwb3J0IHsgdXNlSXNTdHJpY3RNb2RlIH0gZnJvbSBcIi4vdXNlSXNTdHJpY3RNb2RlXCI7XG5leHBvcnQgeyB1c2VEaXNwb3NhYmxlIH0gZnJvbSBcIi4vdXNlRGlzcG9zYWJsZVwiO1xuZXhwb3J0IHR5cGUgeyBEaXNwb3NhYmxlRmFjdG9yeSB9IGZyb20gXCIuL3R5cGVzXCI7XG4iLCAiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbi8qKlxuICogQHJldHVybnMgQ3VycmVudCByZWFjdCBmaWJlciBiZWluZyByZW5kZXJlZFxuICovXG5leHBvcnQgY29uc3QgZ2V0Q3VycmVudE93bmVyID0gKCkgPT5cbiAgLy8gQHRzLWlnbm9yZSAtIHVzaW5nIHJlYWN0IGludGVybmFsc1xuICBSZWFjdC5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRC5SZWFjdEN1cnJlbnRPd25lclxuICAgIC5jdXJyZW50O1xuXG5jb25zdCBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gLyojX19QVVJFX18qLyBTeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIik7XG5cbi8qKlxuICogVHJhdmVyc2VzIHVwIHRoZSBSZWFjdCBmaWJlciB0cmVlIHRvIGZpbmQgdGhlIFN0cmljdE1vZGUgY29tcG9uZW50LlxuICogTm90ZTogVGhpcyBvbmx5IGRldGVjdHMgc3RyaWN0IG1vZGUgZnJvbSBSZWFjdCA+PSAxOFxuICogaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0d2cvcmVhY3QtMTgvZGlzY3Vzc2lvbnMvMTlcbiAqIEByZXR1cm5zIElmIHN0cmljdCBtb2RlIGlzIGJlaW5nIHVzZWQgaW4gdGhlIFJlYWN0IHRyZWVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUlzU3RyaWN0TW9kZSA9ICgpOiBib29sZWFuID0+IHtcbiAgLy8gVGhpcyBjaGVjayB2aW9sYXRlcyBSdWxlcyBvZiBIb29rcywgYnV0IFwicHJvY2Vzcy5lbnYuTk9ERV9FTlZcIiBkb2VzIG5vdCBjaGFuZ2UgaW4gYnVuZGxlXG4gIC8vIG9yIGR1cmluZyBhcHBsaWNhdGlvbiBsaWZlY3ljbGVcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGlzU3RyaWN0TW9kZSA9IFJlYWN0LnVzZVJlZjxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjb25zdCByZWFjdE1ham9yVmVyc2lvbiA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBOdW1iZXIoUmVhY3QudmVyc2lvbi5zcGxpdChcIi5cIilbMF0pO1xuICB9LCBbUmVhY3QudmVyc2lvbl0pO1xuXG4gIGlmIChpc05hTihyZWFjdE1ham9yVmVyc2lvbikgfHwgcmVhY3RNYWpvclZlcnNpb24gPCAxOCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChpc1N0cmljdE1vZGUuY3VycmVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbGV0IGN1cnJlbnRPd25lciA9IGdldEN1cnJlbnRPd25lcigpO1xuICAgIHdoaWxlIChjdXJyZW50T3duZXIgJiYgY3VycmVudE93bmVyLnJldHVybikge1xuICAgICAgY3VycmVudE93bmVyID0gY3VycmVudE93bmVyLnJldHVybjtcbiAgICAgIGlmIChcbiAgICAgICAgY3VycmVudE93bmVyLnR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHxcbiAgICAgICAgY3VycmVudE93bmVyLmVsZW1lbnRUeXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFXG4gICAgICApIHtcbiAgICAgICAgaXNTdHJpY3RNb2RlLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAhIWlzU3RyaWN0TW9kZS5jdXJyZW50O1xufTtcbiIsICJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgRGlzcG9zYWJsZUZhY3RvcnkgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgdXNlSXNTdHJpY3RNb2RlIH0gZnJvbSBcIi4vdXNlSXNTdHJpY3RNb2RlXCI7XG5pbXBvcnQgeyB1c2VTdHJpY3RFZmZlY3QgfSBmcm9tIFwiLi91c2VTdHJpY3RFZmZlY3RcIjtcbmltcG9ydCB7IHVzZVN0cmljdE1lbW8gfSBmcm9tIFwiLi91c2VTdHJpY3RNZW1vXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRpc3Bvc2FibGUgaW5zdGFuY2UgZHVyaW5nICoqcmVuZGVyIHRpbWUqKiB0aGF0IHdpbGxcbiAqIGJlIGNyZWF0ZWQgb25jZSAoYmFzZWQgb24gZGVwZW5kZW5jeSBhcnJheSkgZXZlbiBkdXJpbmcgc3RyaWN0IG1vZGUuXG4gKiBUaGUgZGlzcG9zYWJsZSB3aWxsIGJlIGRpc3Bvc2VkIGJhc2VkIG9uIHRoZSBkZXBlbmRlbmN5IGFycmF5IHNpbWlsYXIgdG9cbiAqIHVzZUVmZmVjdC5cbiAqXG4gKiBcdTI2QTBcdUZFMEYgVGhpcyBjYW4gb25seSBiZSBjYWxsZWQgKipvbmNlKiogcGVyIGNvbXBvbmVudFxuICogQHBhcmFtIGZhY3RvcnkgLSBmYWN0b3J5IGZvciBkaXNwb3NhYmxlIGFuZCBpdHMgZGlzcG9zZSBmdW5jdGlvblxuICogQHBhcmFtIGRlcHMgLSBTaW1pbGFyIHRvIGEgUmVhY3QgZGVwZW5kZW5jeSBhcnJheVxuICogQHJldHVybnMgLSBUaGUgZGlzcG9zYWJsZSBpbnN0YW5jZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRGlzcG9zYWJsZTxUSW5zdGFuY2U+KFxuICBmYWN0b3J5OiBEaXNwb3NhYmxlRmFjdG9yeTxUSW5zdGFuY2U+LFxuICBkZXBzOiBhbnlbXVxuKSB7XG4gIC8vIEluIHByb2R1Y3Rpb24sIHN0cmljdCBtb2RlIGRvZXMgbm90IHJlcXVpcmUgc3BlY2lhbCBoYW5kbGluZ1xuICBjb25zdCBpc1N0cmljdE1vZGUgPVxuICAgIHVzZUlzU3RyaWN0TW9kZSgpICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIjtcblxuICBjb25zdCB1c2VNZW1vID0gaXNTdHJpY3RNb2RlID8gdXNlU3RyaWN0TWVtbyA6IFJlYWN0LnVzZU1lbW87XG4gIGNvbnN0IHVzZUVmZmVjdCA9IGlzU3RyaWN0TW9kZSA/IHVzZVN0cmljdEVmZmVjd
|