@bemedev/app-reactjs 1.7.0 → 1.8.0

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.
@@ -12,7 +12,9 @@ let react = require("react");
12
12
  function useService(service, selector = (s) => s) {
13
13
  const [state, setState] = (0, react.useState)(() => selector(service.state));
14
14
  const sub = service.subscribe((nextState) => setState(selector(nextState)), { equals: (first, next) => {
15
- return (0, _bemedev_app_utils.deepEqual)(selector(first), selector(next));
15
+ const _first = selector(first);
16
+ const _next = selector(next);
17
+ return (0, _bemedev_app_utils.deepEqual)(_first, _next);
16
18
  } });
17
19
  (0, react.useEffect)(() => sub.unsubscribe, [service, selector]);
18
20
  return state;
@@ -1 +1 @@
1
- {"version":3,"file":"useService.cjs","names":[],"sources":["../src/useService.ts"],"sourcesContent":["import type {\n AddSubscriber_F,\n EventObject,\n PrimitiveObject,\n State,\n} from '@bemedev/app/types';\nimport { deepEqual } from '@bemedev/app/utils';\nimport { useEffect, useState } from 'react';\n\n/**\n * A hook that creates a React state from a service with a subscribe function.\n *\n * @param service - The service containing the state and subscribe method.\n * @param selector - A function to select the desired slice of state.\n * @returns The selected state.\n */\nexport function useService<\n Tc extends PrimitiveObject,\n Ta extends string,\n Eo extends EventObject,\n T = State<Eo, Tc, Ta>,\n>(\n service: {\n subscribe: AddSubscriber_F<Tc, Ta, Eo>;\n state: State<Eo, Tc, Ta>;\n },\n selector: (state: State<Eo, Tc, Ta>) => T = (s: State<Eo, Tc, Ta>) =>\n s as unknown as T,\n): T {\n const [state, setState] = useState<T>(() => selector(service.state));\n\n const sub = service.subscribe(\n nextState => setState(selector(nextState)),\n {\n equals: (first, next) => {\n const _first = selector(first);\n const _next = selector(next);\n return deepEqual(_first, _next);\n },\n },\n );\n\n useEffect(() => sub.unsubscribe, [service, selector]);\n return state;\n}\n"],"mappings":";;;;;;;;;;;AAgBA,SAAgB,WAMd,SAIA,YAA6C,MAC3C,GACC;CACH,MAAM,CAAC,OAAO,aAAA,GAAA,MAAA,SAAA,OAA8B,SAAS,QAAQ,KAAK,CAAC;CAEnE,MAAM,MAAM,QAAQ,WAClB,cAAa,SAAS,SAAS,SAAS,CAAC,GACzC,EACE,SAAS,OAAO,SAAS;EAGvB,QAAA,GAAA,mBAAA,UAAA,CAFe,SAAS,KAEF,GADR,SAAS,IACM,CAAC;CAChC,EACF,CACF;CAEA,CAAA,GAAA,MAAA,UAAA,OAAgB,IAAI,aAAa,CAAC,SAAS,QAAQ,CAAC;CACpD,OAAO;AACT"}
1
+ {"version":3,"file":"useService.cjs","names":["useState","deepEqual"],"sources":["../src/useService.ts"],"sourcesContent":["import type {\n AddSubscriber_F,\n EventObject,\n PrimitiveObject,\n State,\n} from '@bemedev/app/types';\nimport { deepEqual } from '@bemedev/app/utils';\nimport { useEffect, useState } from 'react';\n\n/**\n * A hook that creates a React state from a service with a subscribe function.\n *\n * @param service - The service containing the state and subscribe method.\n * @param selector - A function to select the desired slice of state.\n * @returns The selected state.\n */\nexport function useService<\n Tc extends PrimitiveObject,\n Ta extends string,\n Eo extends EventObject,\n T = State<Eo, Tc, Ta>,\n>(\n service: {\n subscribe: AddSubscriber_F<Tc, Ta, Eo>;\n state: State<Eo, Tc, Ta>;\n },\n selector: (state: State<Eo, Tc, Ta>) => T = (s: State<Eo, Tc, Ta>) =>\n s as unknown as T,\n): T {\n const [state, setState] = useState<T>(() => selector(service.state));\n\n const sub = service.subscribe(\n nextState => setState(selector(nextState)),\n {\n equals: (first, next) => {\n const _first = selector(first);\n const _next = selector(next);\n return deepEqual(_first, _next);\n },\n },\n );\n\n useEffect(() => sub.unsubscribe, [service, selector]);\n return state;\n}\n"],"mappings":";;;;;;;;;;;AAgBA,SAAgB,WAMd,SAIA,YAA6C,MAC3C,GACC;CACH,MAAM,CAAC,OAAO,aAAA,GAAYA,MAAAA,SAAAA,OAAkB,SAAS,QAAQ,KAAK,CAAC;CAEnE,MAAM,MAAM,QAAQ,WAClB,cAAa,SAAS,SAAS,SAAS,CAAC,GACzC,EACE,SAAS,OAAO,SAAS;EACvB,MAAM,SAAS,SAAS,KAAK;EAC7B,MAAM,QAAQ,SAAS,IAAI;EAC3B,QAAA,GAAOC,mBAAAA,UAAAA,CAAU,QAAQ,KAAK;CAChC,EACF,CACF;CAEA,CAAA,GAAA,MAAA,UAAA,OAAgB,IAAI,aAAa,CAAC,SAAS,QAAQ,CAAC;CACpD,OAAO;AACT"}
package/lib/useService.js CHANGED
@@ -11,7 +11,9 @@ import { useEffect, useState } from "react";
11
11
  function useService(service, selector = (s) => s) {
12
12
  const [state, setState] = useState(() => selector(service.state));
13
13
  const sub = service.subscribe((nextState) => setState(selector(nextState)), { equals: (first, next) => {
14
- return deepEqual(selector(first), selector(next));
14
+ const _first = selector(first);
15
+ const _next = selector(next);
16
+ return deepEqual(_first, _next);
15
17
  } });
16
18
  useEffect(() => sub.unsubscribe, [service, selector]);
17
19
  return state;
@@ -1 +1 @@
1
- {"version":3,"file":"useService.js","names":[],"sources":["../src/useService.ts"],"sourcesContent":["import type {\n AddSubscriber_F,\n EventObject,\n PrimitiveObject,\n State,\n} from '@bemedev/app/types';\nimport { deepEqual } from '@bemedev/app/utils';\nimport { useEffect, useState } from 'react';\n\n/**\n * A hook that creates a React state from a service with a subscribe function.\n *\n * @param service - The service containing the state and subscribe method.\n * @param selector - A function to select the desired slice of state.\n * @returns The selected state.\n */\nexport function useService<\n Tc extends PrimitiveObject,\n Ta extends string,\n Eo extends EventObject,\n T = State<Eo, Tc, Ta>,\n>(\n service: {\n subscribe: AddSubscriber_F<Tc, Ta, Eo>;\n state: State<Eo, Tc, Ta>;\n },\n selector: (state: State<Eo, Tc, Ta>) => T = (s: State<Eo, Tc, Ta>) =>\n s as unknown as T,\n): T {\n const [state, setState] = useState<T>(() => selector(service.state));\n\n const sub = service.subscribe(\n nextState => setState(selector(nextState)),\n {\n equals: (first, next) => {\n const _first = selector(first);\n const _next = selector(next);\n return deepEqual(_first, _next);\n },\n },\n );\n\n useEffect(() => sub.unsubscribe, [service, selector]);\n return state;\n}\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,WAMd,SAIA,YAA6C,MAC3C,GACC;CACH,MAAM,CAAC,OAAO,YAAY,eAAkB,SAAS,QAAQ,KAAK,CAAC;CAEnE,MAAM,MAAM,QAAQ,WAClB,cAAa,SAAS,SAAS,SAAS,CAAC,GACzC,EACE,SAAS,OAAO,SAAS;EAGvB,OAAO,UAFQ,SAAS,KAEF,GADR,SAAS,IACM,CAAC;CAChC,EACF,CACF;CAEA,gBAAgB,IAAI,aAAa,CAAC,SAAS,QAAQ,CAAC;CACpD,OAAO;AACT"}
1
+ {"version":3,"file":"useService.js","names":[],"sources":["../src/useService.ts"],"sourcesContent":["import type {\n AddSubscriber_F,\n EventObject,\n PrimitiveObject,\n State,\n} from '@bemedev/app/types';\nimport { deepEqual } from '@bemedev/app/utils';\nimport { useEffect, useState } from 'react';\n\n/**\n * A hook that creates a React state from a service with a subscribe function.\n *\n * @param service - The service containing the state and subscribe method.\n * @param selector - A function to select the desired slice of state.\n * @returns The selected state.\n */\nexport function useService<\n Tc extends PrimitiveObject,\n Ta extends string,\n Eo extends EventObject,\n T = State<Eo, Tc, Ta>,\n>(\n service: {\n subscribe: AddSubscriber_F<Tc, Ta, Eo>;\n state: State<Eo, Tc, Ta>;\n },\n selector: (state: State<Eo, Tc, Ta>) => T = (s: State<Eo, Tc, Ta>) =>\n s as unknown as T,\n): T {\n const [state, setState] = useState<T>(() => selector(service.state));\n\n const sub = service.subscribe(\n nextState => setState(selector(nextState)),\n {\n equals: (first, next) => {\n const _first = selector(first);\n const _next = selector(next);\n return deepEqual(_first, _next);\n },\n },\n );\n\n useEffect(() => sub.unsubscribe, [service, selector]);\n return state;\n}\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,WAMd,SAIA,YAA6C,MAC3C,GACC;CACH,MAAM,CAAC,OAAO,YAAY,eAAkB,SAAS,QAAQ,KAAK,CAAC;CAEnE,MAAM,MAAM,QAAQ,WAClB,cAAa,SAAS,SAAS,SAAS,CAAC,GACzC,EACE,SAAS,OAAO,SAAS;EACvB,MAAM,SAAS,SAAS,KAAK;EAC7B,MAAM,QAAQ,SAAS,IAAI;EAC3B,OAAO,UAAU,QAAQ,KAAK;CAChC,EACF,CACF;CAEA,gBAAgB,IAAI,aAAa,CAAC,SAAS,QAAQ,CAAC;CACpD,OAAO;AACT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bemedev/app-reactjs",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "Middleware between @bemedev/app and reactjs",
5
5
  "keywords": [
6
6
  "app",
@@ -44,43 +44,42 @@
44
44
  "module": "lib/index.js",
45
45
  "types": "lib/index.d.ts",
46
46
  "devDependencies": {
47
- "@bemedev/decompose": "2.2.0",
48
- "@bemedev/dev-utils": "^0.8.3",
47
+ "@bemedev/decompose": "2.3.0",
48
+ "@bemedev/dev-utils": "^1.1.1",
49
49
  "@bemedev/sleep": "^0.2.2",
50
- "@size-limit/file": "^12.1.0",
51
- "@testing-library/jest-dom": "^6.9.1",
52
- "@testing-library/react": "^16.2.0",
50
+ "@size-limit/file": "^13.0.2",
51
+ "@testing-library/jest-dom": "^7.0.0",
52
+ "@testing-library/react": "^16.3.2",
53
53
  "@testing-library/user-event": "^14.6.1",
54
- "@types/node": "^26.1.0",
55
- "@types/react": "^19.0.0",
56
- "@types/react-dom": "^19.0.0",
57
- "@vitest/coverage-v8": "^4.1.9",
58
- "@vitest/ui": "4.1.9",
54
+ "@types/node": "^26.1.2",
55
+ "@types/react": "^19.2.17",
56
+ "@types/react-dom": "^19.2.3",
57
+ "@vitest/coverage-v8": "^4.1.10",
58
+ "@vitest/ui": "4.1.10",
59
59
  "glob": "^13.0.6",
60
- "globals": "^17.7.0",
60
+ "globals": "^17.8.0",
61
61
  "husky": "^9.1.7",
62
- "jsdom": "^29.1.1",
62
+ "jsdom": "^30.0.1",
63
63
  "onchange": "^7.1.0",
64
- "oxfmt": "^0.57.0",
65
- "oxlint": "^1.72.0",
66
- "prettier": "^3.9.4",
64
+ "oxfmt": "^0.61.0",
65
+ "oxlint": "^1.76.0",
66
+ "prettier": "^3.9.6",
67
67
  "pretty-quick": "^4.2.2",
68
- "react": "^19.0.0",
69
- "react-dom": "^19.0.0",
70
- "rolldown": "1.1.4",
71
- "rolldown-plugin-dts": "^0.26.0",
72
- "size-limit": "^12.1.0",
68
+ "react": "^19.2.8",
69
+ "react-dom": "^19.2.8",
70
+ "rolldown": "1.2.1",
71
+ "rolldown-plugin-dts": "^0.27.14",
72
+ "size-limit": "^13.0.2",
73
73
  "tslib": "^2.8.1",
74
- "tsx": "^4.22.4",
74
+ "tsx": "^4.23.1",
75
75
  "typescript": "^6.0.3",
76
- "vitest": "^4.1.9",
77
- "@bemedev/app-vitest": "^1.7.0",
78
- "@bemedev/app": "^1.7.0"
76
+ "vitest": "^4.1.10",
77
+ "@bemedev/app": "^1.8.0",
78
+ "@bemedev/app-vitest": "^1.8.0"
79
79
  },
80
80
  "peerDependencies": {
81
- "@bemedev/decompose": "2.2.0",
82
- "react": "^18.0.0 || ^19.0.0",
83
- "@bemedev/app": "^1.7.0"
81
+ "react": "^19.2.8",
82
+ "@bemedev/app": "^1.8.0"
84
83
  },
85
84
  "size-limit": [
86
85
  {