{"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:1727544873.0","currentOid":""},"activityList":{"items":[{"before":"10377386da97486d20228f437b7be1d735f56b8d","after":"35a853cac033d49e69751c5d28d57c2741e085f3","ref":"refs/heads/renovate/all","pushedAt":"2024-09-28T17:35: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":"ee8d66ba5efa7b39390f07b00aa7086deea77c7f","after":"1ccb7991b1c4fabfbf25faa240493ac1ac101838","ref":"refs/heads/renovate/typescript-5.x","pushedAt":"2024-09-28T17:35: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 dependency typescript to v5.6.2","shortMessageHtmlLink":"chore(deps): update dependency typescript to v5.6.2"}},{"before":"28600d22ad032cfa2c045a9f15d3a36adfe06275","after":"363f4510f48697eecadaf33a9e5d965e95abbe63","ref":"refs/heads/renovate/npm-rollup-vulnerability","pushedAt":"2024-09-28T17:35:01.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 rollup to v4.22.4 [security]","shortMessageHtmlLink":"chore(deps): update dependency rollup to v4.22.4 [security]"}},{"before":"532f27f3835b2d537e1cd8c4753c958cf19f88a9","after":"4e7fe1dc0281e9a2142069b12ca5225ed66acd74","ref":"refs/heads/renovate/npm-express-vulnerability","pushedAt":"2024-09-28T17:34:54.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 express to v4.20.0 [security]","shortMessageHtmlLink":"chore(deps): update dependency express to v4.20.0 [security]"}},{"before":"2bf876bd8eada5d0a7f4c9fbc69dd164b4aa60fe","after":null,"ref":"refs/heads/perf/states-map","pushedAt":"2024-09-28T17:34:33.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"arturovt","name":"Artur","path":"/arturovt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7337691?s=80&v=4"}},{"before":"2833d17eb4e31cc81867533778a1cb3fd6fc79cd","after":"e935e575c3edceea8359ae4ae48c458ca3f6ec46","ref":"refs/heads/master","pushedAt":"2024-09-28T17:34:32.000Z","pushType":"pr_merge","commitsCount":1,"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 (#2219)\n\nIn this commit, I'm working on optimizing how we handle action dispatches by avoiding\r\nrepeated traversal of the `states` list. Instead, we prepare a map each time a new state\r\nis added, allowing us to perform O(1) lookups by action type in the future. This approach\r\nreduces complexity and improves performance.\r\n\r\nI've tested it with benchmark.js, and here are the results:\r\n\r\n```\r\nclass Increment {\r\n static readonly type = 'Increment';\r\n}\r\n\r\nconst states = Array.from({ length: 50 }).map((_, index) => {\r\n @State({\r\n name: `counter_${index + 1}`,\r\n defaults: 0,\r\n })\r\n @Injectable()\r\n class CounterState {\r\n @Action(Increment)\r\n increment(ctx: StateContext) {\r\n ctx.setState((counter) => counter + 1);\r\n }\r\n }\r\n\r\n return CounterState;\r\n});\r\n\r\nstore.dispatch() before changes x 3,435 ops/sec ±0.45% (65 runs sampled)\r\nstore.dispatch() after changes x 3,942 ops/sec ±1.21% (25 runs sampled)\r\n```","shortMessageHtmlLink":"perf(store): avoid going over states list every time action is dispat…"}},{"before":"c1c84374062b5eff7ab44f4cd14c8459ead95aef","after":"2bf876bd8eada5d0a7f4c9fbc69dd164b4aa60fe","ref":"refs/heads/perf/states-map","pushedAt":"2024-09-28T17:34:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arturovt","name":"Artur","path":"/arturovt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7337691?s=80&v=4"},"commit":{"message":"chore: update bundlemon","shortMessageHtmlLink":"chore: update bundlemon"}},{"before":"2f512a7ccfc706226542d9689fdcc77e342f77b5","after":"10377386da97486d20228f437b7be1d735f56b8d","ref":"refs/heads/renovate/all","pushedAt":"2024-09-27T08:52:54.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":"ae1eab0a7d6197efa19165a8643dcba514022a1b","after":"ee8d66ba5efa7b39390f07b00aa7086deea77c7f","ref":"refs/heads/renovate/typescript-5.x","pushedAt":"2024-09-27T08:52: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 dependency typescript to v5.6.2","shortMessageHtmlLink":"chore(deps): update dependency typescript to v5.6.2"}},{"before":"d7c68eb6db71b886019273d9a56ff6401d45b967","after":"28600d22ad032cfa2c045a9f15d3a36adfe06275","ref":"refs/heads/renovate/npm-rollup-vulnerability","pushedAt":"2024-09-27T08:52:13.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 rollup to v4.22.4 [security]","shortMessageHtmlLink":"chore(deps): update dependency rollup to v4.22.4 [security]"}},{"before":"2f577d64fc6bc6a5856fe9dc9d91423c5a4ce192","after":"532f27f3835b2d537e1cd8c4753c958cf19f88a9","ref":"refs/heads/renovate/npm-express-vulnerability","pushedAt":"2024-09-27T08:51: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 express to v4.20.0 [security]","shortMessageHtmlLink":"chore(deps): update dependency express to v4.20.0 [security]"}},{"before":"947ae52d37f9f19939fdb63dfff6a74ed74804dd","after":null,"ref":"refs/heads/fp/install_tutorial_kit_packages_ci","pushedAt":"2024-09-27T08:50:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"arturovt","name":"Artur","path":"/arturovt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7337691?s=80&v=4"}},{"before":"76347efb2c9a2238d4b6272f58110b13fb8346aa","after":"2833d17eb4e31cc81867533778a1cb3fd6fc79cd","ref":"refs/heads/master","pushedAt":"2024-09-27T08:50:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"arturovt","name":"Artur","path":"/arturovt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7337691?s=80&v=4"},"commit":{"message":"chore: install tutorial packages (#2223)\n\n* chore: install tutorial kit packages\r\n\r\n* chore: approach to install tutorial packages\r\n\r\n* chore: exclude tutorials linting","shortMessageHtmlLink":"chore: install tutorial packages (#2223)"}},{"before":"8e958b0ea969b73066509cfd0696bbe7a8f2b123","after":"947ae52d37f9f19939fdb63dfff6a74ed74804dd","ref":"refs/heads/fp/install_tutorial_kit_packages_ci","pushedAt":"2024-09-27T07:54:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"profanis","name":"profanis","path":"/profanis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7045092?s=80&v=4"},"commit":{"message":"chore: exclude tutorials linting","shortMessageHtmlLink":"chore: exclude tutorials linting"}},{"before":"aecc327256cfbda051d9db2328ffe89a5a312f96","after":"8e958b0ea969b73066509cfd0696bbe7a8f2b123","ref":"refs/heads/fp/install_tutorial_kit_packages_ci","pushedAt":"2024-09-27T07:36:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"profanis","name":"profanis","path":"/profanis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7045092?s=80&v=4"},"commit":{"message":"chore: approach to install tutorial packages","shortMessageHtmlLink":"chore: approach to install tutorial packages"}},{"before":"623a363f69f4aba927afcc9a88e160eeab5f6a25","after":"2f512a7ccfc706226542d9689fdcc77e342f77b5","ref":"refs/heads/renovate/all","pushedAt":"2024-09-26T02:08:57.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":"e0dddf75909e4ab988910a14a4d97c7a1651a920","after":"623a363f69f4aba927afcc9a88e160eeab5f6a25","ref":"refs/heads/renovate/all","pushedAt":"2024-09-25T22:20: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":"a520f1346ff73ac431de7a2c06a642a815c7a0fd","after":"e0dddf75909e4ab988910a14a4d97c7a1651a920","ref":"refs/heads/renovate/all","pushedAt":"2024-09-25T18:20:46.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":"f805b295a822d504b1cf4d7975474e8eda3d28c9","after":"a520f1346ff73ac431de7a2c06a642a815c7a0fd","ref":"refs/heads/renovate/all","pushedAt":"2024-09-25T16:27:49.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":"d7c68eb6db71b886019273d9a56ff6401d45b967","ref":"refs/heads/renovate/npm-rollup-vulnerability","pushedAt":"2024-09-24T00:32:25.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 rollup to v4.22.4 [security]","shortMessageHtmlLink":"chore(deps): update dependency rollup to v4.22.4 [security]"}},{"before":null,"after":"aecc327256cfbda051d9db2328ffe89a5a312f96","ref":"refs/heads/fp/install_tutorial_kit_packages_ci","pushedAt":"2024-09-23T13:43:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"profanis","name":"profanis","path":"/profanis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7045092?s=80&v=4"},"commit":{"message":"chore: install tutorial kit packages","shortMessageHtmlLink":"chore: install tutorial kit packages"}},{"before":"927ea8c76a4d0b10d9993897ed65cf40de200800","after":"c1c84374062b5eff7ab44f4cd14c8459ead95aef","ref":"refs/heads/perf/states-map","pushedAt":"2024-09-22T17:52:44.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":"8a7cca6e7a7d1df5378dab888f9bfe89e39b5549","after":"927ea8c76a4d0b10d9993897ed65cf40de200800","ref":"refs/heads/perf/states-map","pushedAt":"2024-09-21T21:59:55.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":"8dbba4098f9fe7d2302f6dc232f4d70b2d668fe4","after":"f805b295a822d504b1cf4d7975474e8eda3d28c9","ref":"refs/heads/renovate/all","pushedAt":"2024-09-21T10:08: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":"c7a938c3d15b0caaa1b11f2858ee15c788db13b3","after":"8dbba4098f9fe7d2302f6dc232f4d70b2d668fe4","ref":"refs/heads/renovate/all","pushedAt":"2024-09-21T06:05:03.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":"f95439836fae3a86d77498473350f17d2f5ee451","after":"c7a938c3d15b0caaa1b11f2858ee15c788db13b3","ref":"refs/heads/renovate/all","pushedAt":"2024-09-20T14:19:04.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":"646c244607996814668ee7e8e4e8f5f9095ac5a8","after":"ae1eab0a7d6197efa19165a8643dcba514022a1b","ref":"refs/heads/renovate/typescript-5.x","pushedAt":"2024-09-20T14:18:46.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":null,"after":"2f577d64fc6bc6a5856fe9dc9d91423c5a4ce192","ref":"refs/heads/renovate/npm-express-vulnerability","pushedAt":"2024-09-20T14:18:37.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 express to v4.20.0 [security]","shortMessageHtmlLink":"chore(deps): update dependency express to v4.20.0 [security]"}},{"before":"c0e25d3a321f255f5add0d753c843c0863c1e3fd","after":null,"ref":"refs/heads/fp/tutorial-kit","pushedAt":"2024-09-20T11:42:35.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":"bd43d3316c20a7ccde6fa409a7467a5d5ceb3587","after":"76347efb2c9a2238d4b6272f58110b13fb8346aa","ref":"refs/heads/master","pushedAt":"2024-09-20T11:42:34.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":"docs(tutorial): create todo app tutorial based on tutorial kit (#2213)\n\n* docs(tutorial): create todo app tutorial based on tutorial kit\r\n\r\n* chore: action to install tutorial deps\r\n\r\n* chore: codeclimate and eslintignore settings\r\n\r\n---------\r\n\r\nCo-authored-by: Mark Whitfeld ","shortMessageHtmlLink":"docs(tutorial): create todo app tutorial based on tutorial kit (#2213)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yOFQxNzozNToyNS4wMDAwMDBazwAAAATDeHFe","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yMFQxMTo0MjozNC4wMDAwMDBazwAAAAS75N-3"}},"title":"Activity · ngxs/store"}