{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":121422793,"defaultBranch":"master","name":"store","ownerLogin":"ngxs","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-02-13T18:55:44.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/37132593?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726561885.0","currentOid":""},"activityList":{"items":[{"before":"436ddc81fc2394745c1867c46ac7ad740437e479","after":"7da34c09f7745fae1d2f0594bd75136ab598af3f","ref":"refs/heads/renovate/all","pushedAt":"2024-09-19T08:25:59.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"99a231dd011a4e130694de52245af306fc37bab6","after":"436ddc81fc2394745c1867c46ac7ad740437e479","ref":"refs/heads/renovate/all","pushedAt":"2024-09-19T01:59:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"c262fe1239868978929221f78573aecd3234ff6d","after":"99a231dd011a4e130694de52245af306fc37bab6","ref":"refs/heads/renovate/all","pushedAt":"2024-09-18T15:57:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"48afa410b1a7ce8a08d1ee82213619f5065b3e2c","after":"8a7cca6e7a7d1df5378dab888f9bfe89e39b5549","ref":"refs/heads/perf/states-map","pushedAt":"2024-09-17T11:12:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arturovt","name":"Artur","path":"/arturovt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7337691?s=80&v=4"},"commit":{"message":"perf(store): avoid going over states list every time action is dispatched\n\nIn this commit, I'm working on optimizing how we handle action dispatches by avoiding\nrepeated traversal of the `states` list. Instead, we prepare a map each time a new state\nis added, allowing us to perform O(1) lookups by action type in the future. This approach\nreduces complexity and improves performance.\n\nI've tested it with benchmark.js, and here are the results:\n\n```\nclass Increment {\n static readonly type = 'Increment';\n}\n\nconst states = Array.from({ length: 50 }).map((_, index) => {\n @State({\n name: `counter_${index + 1}`,\n defaults: 0,\n })\n @Injectable()\n class CounterState {\n @Action(Increment)\n increment(ctx: StateContext) {\n ctx.setState((counter) => counter + 1);\n }\n }\n\n return CounterState;\n});\n\nstore.dispatch() before changes x 3,435 ops/sec ±0.45% (65 runs sampled)\nstore.dispatch() after changes x 3,942 ops/sec ±1.21% (25 runs sampled)\n```","shortMessageHtmlLink":"perf(store): avoid going over states list every time action is dispat…"}},{"before":"dc59934150740539ef1a65f4b5b8b3099a2466c1","after":"48afa410b1a7ce8a08d1ee82213619f5065b3e2c","ref":"refs/heads/perf/states-map","pushedAt":"2024-09-17T08:48:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arturovt","name":"Artur","path":"/arturovt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7337691?s=80&v=4"},"commit":{"message":"perf(store): avoid going over states list every time action is dispatched\n\nIn this commit, I'm working on optimizing how we handle action dispatches by avoiding\nrepeated traversal of the `states` list. Instead, we prepare a map each time a new state\nis added, allowing us to perform O(1) lookups by action type in the future. This approach\nreduces complexity and improves performance.","shortMessageHtmlLink":"perf(store): avoid going over states list every time action is dispat…"}},{"before":"6c5f804e26bbb595a5fe686fcd1a78769ca0eef6","after":"dc59934150740539ef1a65f4b5b8b3099a2466c1","ref":"refs/heads/perf/states-map","pushedAt":"2024-09-17T08:32:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arturovt","name":"Artur","path":"/arturovt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7337691?s=80&v=4"},"commit":{"message":"perf(store): avoid going over states list every time action is dispatched\n\nIn this commit, I'm working on optimizing how we handle action dispatches by avoiding\nrepeated traversal of the `states` list. Instead, we prepare a map each time a new state\nis added, allowing us to perform O(1) lookups by action type in the future. This approach\nreduces complexity and improves performance.","shortMessageHtmlLink":"perf(store): avoid going over states list every time action is dispat…"}},{"before":null,"after":"6c5f804e26bbb595a5fe686fcd1a78769ca0eef6","ref":"refs/heads/perf/states-map","pushedAt":"2024-09-17T08:31:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"arturovt","name":"Artur","path":"/arturovt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7337691?s=80&v=4"},"commit":{"message":"perf(store): avoid going over states list every time action is dispatched\n\nIn this commit, I'm working on optimizing how we handle action dispatches by avoiding\nrepeated traversal of the `states` list. Instead, we prepare a map each time a new state\nis added, allowing us to perform O(1) lookups by action type in the future. This approach\nreduces complexity and improves performance.","shortMessageHtmlLink":"perf(store): avoid going over states list every time action is dispat…"}},{"before":"7c795b8529f736b8ec0cf4850a18d9959918c354","after":"412f160c438bec040051ea8043a226d53f8eb7a0","ref":"refs/heads/feat/state-as-extends","pushedAt":"2024-09-14T06:13:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arturovt","name":"Artur","path":"/arturovt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7337691?s=80&v=4"},"commit":{"message":"feat(store): allow extending `State({...})` instead of decorating","shortMessageHtmlLink":"feat(store): allow extending State({...}) instead of decorating"}},{"before":"fae1b4ea1869e5b4c6ef49a033928248f35bfb45","after":"7c795b8529f736b8ec0cf4850a18d9959918c354","ref":"refs/heads/feat/state-as-extends","pushedAt":"2024-09-14T06:13:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arturovt","name":"Artur","path":"/arturovt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7337691?s=80&v=4"},"commit":{"message":"feat(store): allow extending `State({...})` instead of decorating","shortMessageHtmlLink":"feat(store): allow extending State({...}) instead of decorating"}},{"before":"2ca67e3eb7b2007577ed5e8e3aa94e1d32360e76","after":"fae1b4ea1869e5b4c6ef49a033928248f35bfb45","ref":"refs/heads/feat/state-as-extends","pushedAt":"2024-09-14T06:12:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arturovt","name":"Artur","path":"/arturovt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7337691?s=80&v=4"},"commit":{"message":"feat(store): allow extending `State({...})` instead of decorating","shortMessageHtmlLink":"feat(store): allow extending State({...}) instead of decorating"}},{"before":null,"after":"2ca67e3eb7b2007577ed5e8e3aa94e1d32360e76","ref":"refs/heads/feat/state-as-extends","pushedAt":"2024-09-13T14:30:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"arturovt","name":"Artur","path":"/arturovt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7337691?s=80&v=4"},"commit":{"message":"feat(store): allow extending `State({...})` instead of decorating","shortMessageHtmlLink":"feat(store): allow extending State({...}) instead of decorating"}},{"before":"958023c4ff18dc6098b92a472a7e3ca901365496","after":"c262fe1239868978929221f78573aecd3234ff6d","ref":"refs/heads/renovate/all","pushedAt":"2024-09-13T00:49:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"b052ecf9514fbde4f664ed1676c6dc2e03cf4ce1","after":"958023c4ff18dc6098b92a472a7e3ca901365496","ref":"refs/heads/renovate/all","pushedAt":"2024-09-12T17:40:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"c4c1bcd6c6104c956bded6ce3620725f5d1e3158","after":"b052ecf9514fbde4f664ed1676c6dc2e03cf4ce1","ref":"refs/heads/renovate/all","pushedAt":"2024-09-12T14:38:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"662f549beb774570d8fb80c331cae8f097a7492c","after":"c4c1bcd6c6104c956bded6ce3620725f5d1e3158","ref":"refs/heads/renovate/all","pushedAt":"2024-09-12T10:16:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"1bacb58b5702d42034f7d0f463e9ce56aca7d342","after":"662f549beb774570d8fb80c331cae8f097a7492c","ref":"refs/heads/renovate/all","pushedAt":"2024-09-12T00:58:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"be311c97e301da20e4090daff8019a50a70967d2","after":"1bacb58b5702d42034f7d0f463e9ce56aca7d342","ref":"refs/heads/renovate/all","pushedAt":"2024-09-11T21:36:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"afa43c5685235d5d7f1b219cee267846cee28915","after":"be311c97e301da20e4090daff8019a50a70967d2","ref":"refs/heads/renovate/all","pushedAt":"2024-09-11T16:06:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"af4ba52213f1986eede46897ce9602a36cfd4b47","after":"afa43c5685235d5d7f1b219cee267846cee28915","ref":"refs/heads/renovate/all","pushedAt":"2024-09-10T16:50:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"449ecf1dae3b57789061ee2223a29ea67b631e5b","after":"af4ba52213f1986eede46897ce9602a36cfd4b47","ref":"refs/heads/renovate/all","pushedAt":"2024-09-10T14:20:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"0b50952ffd8f78df9559ae7c216eac9758b051a1","after":"449ecf1dae3b57789061ee2223a29ea67b631e5b","ref":"refs/heads/renovate/all","pushedAt":"2024-09-10T04:59:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"8dbe7ca6577555b29b8db178ab04927dc62827de","after":"0b50952ffd8f78df9559ae7c216eac9758b051a1","ref":"refs/heads/renovate/all","pushedAt":"2024-09-10T01:49:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"7a9146d4a2f76457d46755f8bd77a0be91b829f1","after":"8dbe7ca6577555b29b8db178ab04927dc62827de","ref":"refs/heads/renovate/all","pushedAt":"2024-09-09T21:34:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"13146b529779a63147e4c51fb884932975a11dbe","after":"7a9146d4a2f76457d46755f8bd77a0be91b829f1","ref":"refs/heads/renovate/all","pushedAt":"2024-09-09T20:14:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":"9b7d48d052e7add2c934127acddf5aa42c7ddd4d","after":"646c244607996814668ee7e8e4e8f5f9095ac5a8","ref":"refs/heads/renovate/typescript-5.x","pushedAt":"2024-09-09T20:13:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update dependency typescript to v5.6.2","shortMessageHtmlLink":"chore(deps): update dependency typescript to v5.6.2"}},{"before":"4e0e0f3ab2fb3b2fd16390a52315580cb75a0ac3","after":null,"ref":"refs/heads/ds/pkg.pr.new","pushedAt":"2024-09-09T20:13:22.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"markwhitfeld","name":"Mark Whitfeld","path":"/markwhitfeld","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1948265?s=80&v=4"}},{"before":"1059bf5dd3db091169bdc044bb8269d0bc46c4eb","after":"bd43d3316c20a7ccde6fa409a7467a5d5ceb3587","ref":"refs/heads/master","pushedAt":"2024-09-09T20:13:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"markwhitfeld","name":"Mark Whitfeld","path":"/markwhitfeld","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1948265?s=80&v=4"},"commit":{"message":"ci: add preview releases with pkg.pr.new (#2216)","shortMessageHtmlLink":"ci: add preview releases with pkg.pr.new (#2216)"}},{"before":"b5f841aeba86d92b3a6f5a7663ff0686be84f1b4","after":"4e0e0f3ab2fb3b2fd16390a52315580cb75a0ac3","ref":"refs/heads/ds/pkg.pr.new","pushedAt":"2024-09-09T17:01:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dmitry-stepanenko","name":"Dmitriy Stepanenko","path":"/dmitry-stepanenko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33101123?s=80&v=4"},"commit":{"message":"chore: add preview releases with pkg.pr.new","shortMessageHtmlLink":"chore: add preview releases with pkg.pr.new"}},{"before":"6f4217574793ba30146af45034eb263c1cb210bb","after":"13146b529779a63147e4c51fb884932975a11dbe","ref":"refs/heads/renovate/all","pushedAt":"2024-09-09T16:59:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies","shortMessageHtmlLink":"chore(deps): update all dependencies"}},{"before":null,"after":"9b7d48d052e7add2c934127acddf5aa42c7ddd4d","ref":"refs/heads/renovate/typescript-5.x","pushedAt":"2024-09-09T16:59:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update dependency typescript to v5.6.2","shortMessageHtmlLink":"chore(deps): update dependency typescript to v5.6.2"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEupYiBQA","startCursor":null,"endCursor":null}},"title":"Activity · ngxs/store"}