react-reactive-val 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.LICENSE.txt +9 -0
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.LICENSE.txt +9 -0
- package/dist/index.umd.js +2 -0
- package/dist/index.umd.js.LICENSE.txt +9 -0
- package/package.json +28 -6
- package/src/index.ts +0 -50
- package/tsconfig.json +0 -28
@@ -0,0 +1,2 @@
|
|
1
|
+
/*! For license information please see index.cjs.js.LICENSE.txt */
|
2
|
+
(()=>{"use strict";var e={698:(e,r)=>{var t=Symbol.for("react.transitional.element");function n(e,r,n){var o=null;if(void 0!==n&&(o=""+n),void 0!==r.key&&(o=""+r.key),"key"in r)for(var u in n={},r)"key"!==u&&(n[u]=r[u]);else n=r;return r=n.ref,{$$typeof:t,type:e,key:o,ref:void 0!==r?r:null,props:n}}Symbol.for("react.fragment"),r.jsx=n},848:(e,r,t)=>{e.exports=t(698)}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var u=r[n]={exports:{}};return e[n](u,u.exports,t),u.exports}t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};t.r(n),t.d(n,{default:()=>i,reallyReactiveVal:()=>a});const o=require("react");var u=t(848);function i(e){return(0,o.useMemo)((function(){return a(e)}),[e])}var a=function(e){var r=e,t=new Set,n=(0,o.memo)((function(){return(0,o.useSyncExternalStore)((function(e){return t.add(e),function(){return t.delete(e)}}),(function(){return r}))}));return function(e){if(void 0===e)return(0,u.jsx)(n,{});r="function"==typeof e?e(r):e,t.forEach((function(e){e()}))}};module.exports=n})();
|
@@ -0,0 +1,2 @@
|
|
1
|
+
/*! For license information please see index.esm.js.LICENSE.txt */
|
2
|
+
import*as e from"react";var r={698:(e,r)=>{var t=Symbol.for("react.transitional.element");function n(e,r,n){var o=null;if(void 0!==n&&(o=""+n),void 0!==r.key&&(o=""+r.key),"key"in r)for(var u in n={},r)"key"!==u&&(n[u]=r[u]);else n=r;return r=n.ref,{$$typeof:t,type:e,key:o,ref:void 0!==r?r:null,props:n}}Symbol.for("react.fragment"),r.jsx=n},848:(e,r,t)=>{e.exports=t(698)}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var u=t[e]={exports:{}};return r[e](u,u.exports,n),u.exports}n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);const o=(e=>{var r={};return n.d(r,e),r})({memo:()=>e.memo,useMemo:()=>e.useMemo,useSyncExternalStore:()=>e.useSyncExternalStore});var u=n(848);function a(e){return(0,o.useMemo)((function(){return f(e)}),[e])}var f=function(e){var r=e,t=new Set,n=(0,o.memo)((function(){return(0,o.useSyncExternalStore)((function(e){return t.add(e),function(){return t.delete(e)}}),(function(){return r}))}));return function(e){if(void 0===e)return(0,u.jsx)(n,{});r="function"==typeof e?e(r):e,t.forEach((function(e){e()}))}};export{a as default,f as reallyReactiveVal};
|
@@ -0,0 +1,2 @@
|
|
1
|
+
/*! For license information please see index.umd.js.LICENSE.txt */
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define("ReactReactiveVal",["react"],t):"object"==typeof exports?exports.ReactReactiveVal=t(require("react")):e.ReactReactiveVal=t(e.React)}(this,(e=>(()=>{"use strict";var t={442:t=>{t.exports=e},698:(e,t)=>{var r=Symbol.for("react.transitional.element");function o(e,t,o){var n=null;if(void 0!==o&&(n=""+o),void 0!==t.key&&(n=""+t.key),"key"in t)for(var a in o={},t)"key"!==a&&(o[a]=t[a]);else o=t;return t=o.ref,{$$typeof:r,type:e,key:n,ref:void 0!==t?t:null,props:o}}Symbol.for("react.fragment"),t.jsx=o},848:(e,t,r)=>{e.exports=r(698)}},r={};function o(e){var n=r[e];if(void 0!==n)return n.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};o.r(n),o.d(n,{default:()=>i,reallyReactiveVal:()=>f});var a=o(442),u=o(848);function i(e){return(0,a.useMemo)((function(){return f(e)}),[e])}var f=function(e){var t=e,r=new Set,o=(0,a.memo)((function(){return(0,a.useSyncExternalStore)((function(e){return r.add(e),function(){return r.delete(e)}}),(function(){return t}))}));return function(e){if(void 0===e)return(0,u.jsx)(o,{});t="function"==typeof e?e(t):e,r.forEach((function(e){e()}))}};return n})()));
|
package/package.json
CHANGED
@@ -1,10 +1,25 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-reactive-val",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.2",
|
4
4
|
"description": "",
|
5
|
-
"main": "dist/index.js",
|
5
|
+
"main": "dist/index.cjs.js",
|
6
|
+
"module": "dist/index.esm.js",
|
7
|
+
"types": "dist/index.d.ts",
|
8
|
+
"exports": {
|
9
|
+
".": {
|
10
|
+
"import": "./dist/index.esm.js",
|
11
|
+
"require": "./dist/index.cjs.js",
|
12
|
+
"umd": "./dist/index.umd.js"
|
13
|
+
}
|
14
|
+
},
|
15
|
+
"files": [
|
16
|
+
"dist"
|
17
|
+
],
|
6
18
|
"scripts": {
|
7
|
-
"build": "tsc",
|
19
|
+
"build:types": "tsc --emitDeclarationOnly",
|
20
|
+
"build:webpack": "webpack --config webpack.config.js",
|
21
|
+
"build": "npm run build:types && npm run build:webpack",
|
22
|
+
"prepublishOnly": "npm run build",
|
8
23
|
"test": "echo \"Error: no test specified\" && exit 1"
|
9
24
|
},
|
10
25
|
"peerDependencies": {
|
@@ -13,10 +28,17 @@
|
|
13
28
|
"keywords": [],
|
14
29
|
"author": "Jatin Parate <jatin4228@gmail.com>",
|
15
30
|
"license": "ISC",
|
16
|
-
"type": "commonjs",
|
17
31
|
"devDependencies": {
|
18
|
-
"
|
32
|
+
"@babel/core": "^7.24.0",
|
33
|
+
"@babel/preset-env": "^7.24.0",
|
34
|
+
"@babel/preset-react": "^7.23.3",
|
35
|
+
"@babel/preset-typescript": "^7.23.3",
|
19
36
|
"@types/react": "^19.1.0",
|
20
|
-
"
|
37
|
+
"babel-loader": "^9.1.3",
|
38
|
+
"react": "^19.1.0",
|
39
|
+
"terser-webpack-plugin": "^5.3.10",
|
40
|
+
"typescript": "^5.8.3",
|
41
|
+
"webpack": "^5.90.3",
|
42
|
+
"webpack-cli": "^5.1.4"
|
21
43
|
}
|
22
44
|
}
|
package/src/index.ts
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
type ReactNode,
|
3
|
-
type ReactElement,
|
4
|
-
useSyncExternalStore,
|
5
|
-
memo,
|
6
|
-
useMemo,
|
7
|
-
} from "react";
|
8
|
-
import { jsx } from "react/jsx-runtime";
|
9
|
-
|
10
|
-
export default function useReactiveValue<T extends ReactNode>(initialValue: T) {
|
11
|
-
return useMemo(() => reallyReactiveVal(initialValue), [initialValue]);
|
12
|
-
}
|
13
|
-
|
14
|
-
export const reallyReactiveVal = <T extends ReactNode>(initialValue: T) => {
|
15
|
-
let value: T = initialValue;
|
16
|
-
const onUpdates = new Set<() => void>();
|
17
|
-
|
18
|
-
const Component = memo(function Component() {
|
19
|
-
const currVal = useSyncExternalStore(
|
20
|
-
(listener) => {
|
21
|
-
onUpdates.add(listener);
|
22
|
-
return () => onUpdates.delete(listener);
|
23
|
-
},
|
24
|
-
() => value
|
25
|
-
);
|
26
|
-
|
27
|
-
return currVal;
|
28
|
-
});
|
29
|
-
|
30
|
-
type Updater = T | ((currVal: T) => T);
|
31
|
-
|
32
|
-
function fn<U extends Updater | unknown | undefined>(updater?: U) {
|
33
|
-
if (typeof updater === "undefined") {
|
34
|
-
return jsx(Component, {});
|
35
|
-
}
|
36
|
-
|
37
|
-
// Type narrowing correctly applies here: updater is not undefined
|
38
|
-
value = typeof updater === "function" ? updater(value) : updater;
|
39
|
-
|
40
|
-
onUpdates.forEach((item) => {
|
41
|
-
item();
|
42
|
-
});
|
43
|
-
|
44
|
-
return undefined;
|
45
|
-
}
|
46
|
-
|
47
|
-
return fn as <U extends Updater | unknown | undefined>(
|
48
|
-
updater?: U
|
49
|
-
) => U extends Updater ? undefined : ReactElement;
|
50
|
-
};
|
package/tsconfig.json
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"compilerOptions": {
|
3
|
-
"outDir": "./dist",
|
4
|
-
"target": "ES2015",
|
5
|
-
"lib": ["dom", "dom.iterable", "esnext"],
|
6
|
-
"allowJs": true,
|
7
|
-
"skipLibCheck": true,
|
8
|
-
"strict": true,
|
9
|
-
"noEmit": false,
|
10
|
-
"esModuleInterop": true,
|
11
|
-
"module": "CommonJS",
|
12
|
-
"moduleResolution": "node",
|
13
|
-
"resolveJsonModule": true,
|
14
|
-
"isolatedModules": true,
|
15
|
-
"jsx": "preserve",
|
16
|
-
"incremental": true,
|
17
|
-
"plugins": [
|
18
|
-
{
|
19
|
-
"name": "next"
|
20
|
-
}
|
21
|
-
],
|
22
|
-
"paths": {
|
23
|
-
"@/*": ["./src/*"]
|
24
|
-
}
|
25
|
-
},
|
26
|
-
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
27
|
-
"exclude": ["node_modules"]
|
28
|
-
}
|