{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":427784584,"defaultBranch":"main","name":"router-component-store","ownerLogin":"ngworker","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-11-13T22:18:50.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/68399422?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1725431547.0","currentOid":""},"activityList":{"items":[{"before":"f50086335b152d872983a1094c02525148dd2613","after":null,"ref":"refs/heads/chore/update-nodejs","pushedAt":"2024-09-04T06:32:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"}},{"before":"8228d7ef1b03cd61cdaf5e6c88af81098435a131","after":"53a1a1a7d4492171ef49d36b15f226f7b9fe9d29","ref":"refs/heads/main","pushedAt":"2024-09-04T06:32:26.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"chore: update Node.js to 18.20.4 (#323)\n\n## Build\n\n- Update Node.js to 18.20.4","shortMessageHtmlLink":"chore: update Node.js to 18.20.4 (#323)"}},{"before":"29bc096c7e87bc4503d06c26e36303bbeb74124a","after":"f50086335b152d872983a1094c02525148dd2613","ref":"refs/heads/chore/update-nodejs","pushedAt":"2024-09-03T14:28:31.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"chore: update Node.js to 18.20.4","shortMessageHtmlLink":"chore: update Node.js to 18.20.4"}},{"before":null,"after":"29bc096c7e87bc4503d06c26e36303bbeb74124a","ref":"refs/heads/chore/update-nodejs","pushedAt":"2024-09-03T14:09:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"chore: update Node.js to 18.20.4\n\nFix failing CI jobs:\n```shell\nVolta error: Could not unpack Node v18.19.1\n```","shortMessageHtmlLink":"chore: update Node.js to 18.20.4"}},{"before":"3520133aa23b85327310d127d6aa8c30534236a1","after":null,"ref":"refs/heads/chore/release-15_0_0-rc_0","pushedAt":"2024-09-03T14:05:32.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"}},{"before":"fb72ea9b7ae518ecb615aa11a49590c0ca69ee59","after":"8228d7ef1b03cd61cdaf5e6c88af81098435a131","ref":"refs/heads/main","pushedAt":"2024-09-03T14:05:31.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"chore: prerelease `15.0.0-rc.0` (#322)\n\n## Build\n\n- Update package to prelease version `15.0.0-rc.0`\n\n## Documentation\n\n- Log prerelease `15.0.0-rc.0` changes","shortMessageHtmlLink":"chore: prerelease 15.0.0-rc.0 (#322)"}},{"before":"82cc0a699b253c0e07ee0b23cf799d745748f6e7","after":"3520133aa23b85327310d127d6aa8c30534236a1","ref":"refs/heads/chore/release-15_0_0-rc_0","pushedAt":"2024-09-03T07:28:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"chore: log prerelease `15.0.0-rc.0` changes","shortMessageHtmlLink":"chore: log prerelease 15.0.0-rc.0 changes"}},{"before":"53aec9876225face13a2e57b2f725b7b33e70e0f","after":"82cc0a699b253c0e07ee0b23cf799d745748f6e7","ref":"refs/heads/chore/release-15_0_0-rc_0","pushedAt":"2024-09-03T07:23:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"chore: log prerelease `15.0.0-rc.0` changes","shortMessageHtmlLink":"chore: log prerelease 15.0.0-rc.0 changes"}},{"before":"768e277f16d287670a3959eed8494dcca08c743d","after":"53aec9876225face13a2e57b2f725b7b33e70e0f","ref":"refs/heads/chore/release-15_0_0-rc_0","pushedAt":"2024-09-02T21:20:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"chore: log prerelease `15.0.0-rc.0` changes","shortMessageHtmlLink":"chore: log prerelease 15.0.0-rc.0 changes"}},{"before":null,"after":"768e277f16d287670a3959eed8494dcca08c743d","ref":"refs/heads/chore/release-15_0_0-rc_0","pushedAt":"2024-09-02T21:18:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"chore: log prerelease 15.0.0-rc.0 changes","shortMessageHtmlLink":"chore: log prerelease 15.0.0-rc.0 changes"}},{"before":"2f350a833defd7c8579e2b538d57e6b6e38aaf56","after":null,"ref":"refs/heads/feat/use-immutable-route-data","pushedAt":"2024-09-02T20:56:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"}},{"before":"86a6bbf9df5dfa1623e0c38b40357e15c71a5254","after":"fb72ea9b7ae518ecb615aa11a49590c0ca69ee59","ref":"refs/heads/main","pushedAt":"2024-09-02T20:56:34.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"feat! use immutable route data (#321)\n\n## Features\n\n- Use immutable route data\n\n**BREAKING CHANGES**\n\n`StrictRouteData` members are now read-only.\n\nTypeScript will fail to compile application code that mutates route data\ndata structures.\n\nBEFORE:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.routeData$.pipe(\n map((data) => {\n data[\"limit\"] = Number(data[\"limit\"])\n\n return data;\n }),\n map(data => data[\"limit\"])\n );\n}\n```\n\nAFTER:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.routeData$.pipe(\n map((data) => Number(data[\"limit\"]))\n );\n}\n```","shortMessageHtmlLink":"feat! use immutable route data (#321)"}},{"before":"22b9f3663f9fad762534327b7173e8b74096042d","after":"2f350a833defd7c8579e2b538d57e6b6e38aaf56","ref":"refs/heads/feat/use-immutable-route-data","pushedAt":"2024-09-02T20:54:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"feat!: use immutable route data\n\n**BREAKING CHANGES**\n\n`StrictRouteData`\nmembers are now read-only.\n\nTypeScript will fail to compile application code that mutates route data data structures.\n\nBEFORE:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.routeData$.pipe(\n map((data) => {\n data[\"limit\"] = Number(data[\"limit\"])\n\n return data;\n }),\n map(data => data[\"limit\"])\n );\n}\n```\n\nAFTER:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.routeData$.pipe(\n map((data) => Number(data[\"limit\"]))\n );\n}\n```","shortMessageHtmlLink":"feat!: use immutable route data"}},{"before":null,"after":"22b9f3663f9fad762534327b7173e8b74096042d","ref":"refs/heads/feat/use-immutable-route-data","pushedAt":"2024-09-02T20:53:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"feat!: use immutable route data\n\n**BREAKING CHANGES**\n\n`StrictRouteData`\nmembers are now read-only.\n\nTypeScript will fail to compile application code that mutates route data data structures.\n\nBEFORE:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore. routeData$.pipe(\n map((data) => {\n data[\"limit\"] = Number(data[\"limit\"])\n\n return data;\n }),\n map(data => data[\"limit\"])\n );\n}\n```\n\nAFTER:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.routeData$.pipe(\n map((data) => Number(data[\"limit\"]))\n );\n}\n```","shortMessageHtmlLink":"feat!: use immutable route data"}},{"before":"77a5e667205a0bc3c9a8fbeace845a389b457660","after":null,"ref":"refs/heads/feat/use-strict-query-parameters","pushedAt":"2024-09-02T20:46:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"}},{"before":"90bb74589710244e403e6823920be79a8d7b6478","after":"86a6bbf9df5dfa1623e0c38b40357e15c71a5254","ref":"refs/heads/main","pushedAt":"2024-09-02T20:46:54.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"feat!: use strict query parameters (#320)\n\n## Features\n\n- Use strict query parameters\n\n**BREAKING CHANGES**\n\n`RouterStore#queryParams$` and\n`MinimalActivatedRouteSnapshot#queryParams` use `StrictRouteParams`\ninstead of `Params`. Members are read-only and of type `string |\nundefined` instead of `any`.\n\nTypeScript will fail to compile application code that has assumed a\nquery parameter type other than `string | undefined`.\n\nBEFORE:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.queryParams$.pipe(\n map((params) => params[\"limit\"])\n );\n}\n```\n\nAFTER:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.queryParams$.pipe(\n map((params) => Number(params[\"limit\"] ?? 10))\n );\n}\n```","shortMessageHtmlLink":"feat!: use strict query parameters (#320)"}},{"before":"48fcb573b29e32d7f0bc8434b6f7d20fd54cda9b","after":"77a5e667205a0bc3c9a8fbeace845a389b457660","ref":"refs/heads/feat/use-strict-query-parameters","pushedAt":"2024-09-02T20:36:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"feat!: use strict query parameters\n\n**BREAKING CHANGES**\n\n`RouterStore#queryParams$` and `MinimalActivatedRouteSnapshot#queryParams` use `StrictRouteParams` instead of `Params`. Members are read-only and of type `string | undefined` instead of `any`.\n\nTypeScript will fail to compile application code that has assumed a query parameter type other than `string | undefined`.\n\nBEFORE:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.queryParams$.pipe(\n map((params) => params[\"limit\"])\n );\n}\n```\n\nAFTER:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.queryParams$.pipe(\n map((params) => Number(params[\"limit\"] ?? 10))\n );\n}\n```","shortMessageHtmlLink":"feat!: use strict query parameters"}},{"before":"9a316f85378fc266a44dd61b5117016913e46c2b","after":"48fcb573b29e32d7f0bc8434b6f7d20fd54cda9b","ref":"refs/heads/feat/use-strict-query-parameters","pushedAt":"2024-09-02T20:34:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"feat!: use strict query parameters\n\n**BREAKING CHANGES**\n\n`RouterStore#queryParams$` and `MinimalActivatedRouteSnapshot#queryParams` use `StrictRouteParams` instead of `Params`. Members are read-only and of type `string | undefined` instead of `any`.\n\nTypeScript will fail to compile application code that has assumed a query parameter type other than `string | undefined`.\n\nBEFORE:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.queryParams$.pipe(\n map((params) => params[\"limit\"])\n );\n}\n```\n\nAFTER:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.queryParams$.pipe(\n map((params) => Number(params[\"limit\"] ?? 10))\n );\n}\n```","shortMessageHtmlLink":"feat!: use strict query parameters"}},{"before":null,"after":"9a316f85378fc266a44dd61b5117016913e46c2b","ref":"refs/heads/feat/use-strict-query-parameters","pushedAt":"2024-09-02T20:32:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"feat!: use strict query parameters\n\n**BREAKING CHANGES**\n\n`RouterStore#queryParams$` and `MinimalActivatedRouteSnapshot#queryParams` use `StrictRouteParams` instead of `Params`. Members are read-only and of type `string | undefined` instead of `any`.\n\nTypeScript will fail to compile application code that has assumed a query parameter type other than `string | undefined`.\n\nBEFORE:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.queryParams$.pipe(\n map((params) => params[\"limit\"])\n );\n}\n```\n\nAFTER:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.queryParams$.pipe(\n map((params) => Number(params[\"limit\"] ?? 10))\n );\n}\n```","shortMessageHtmlLink":"feat!: use strict query parameters"}},{"before":"1c657988b7380d9f321b93e001ebdccd728b6dc7","after":null,"ref":"refs/heads/LayZeeDK/feat/strict-route-params","pushedAt":"2024-09-02T20:26:33.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"}},{"before":"3d49dc65c9ee47477d2af67faca832d13f6efafe","after":"90bb74589710244e403e6823920be79a8d7b6478","ref":"refs/heads/main","pushedAt":"2024-09-02T20:26:31.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"feat!: use strict route parameters (#319)\n\n## Features\n\n- Use strict route parameters\n\n**BREAKING CHANGES**\n\n`RouterStore#routeParams$` and `MinimalActivatedRouteSnapshot#params`\nuse `StrictRouteData` instead of `Params`. Members are read-only and of\ntype `string | undefined` instead of `any`.\n\nTypeScript will fail to compile application code that has assumed a\nroute type parameter type other than `string | undefined`.\n\nBEFORE:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.routeParams$.pipe(\n map((params) => params[\"limit\"])\n );\n}\n```\n\nAFTER:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.routeParams$.pipe(\n map((params) => Number(params[\"limit\"] ?? 10))\n );\n}\n```","shortMessageHtmlLink":"feat!: use strict route parameters (#319)"}},{"before":"5caa17430b64e251d16a8e06a02d1bf9eb7d7039","after":"1c657988b7380d9f321b93e001ebdccd728b6dc7","ref":"refs/heads/LayZeeDK/feat/strict-route-params","pushedAt":"2024-09-02T20:21:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"feat!: use strict route parameters\n\n**BREAKING CHANGES**\n\n`RouterStore#routeParams$` and `MinimalActivatedRouteSnapshot#params` use `StrictRouteData` instead of `Params`. Members are read-only and of type `string | undefined` instead of `any`.\n\nTypeScript will fail to compile application code that has assumed a route type parameter type other than `string | undefined`.\n\nBEFORE:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.routeParams$.pipe(\n map((params) => params[\"limit\"])\n );\n}\n```\n\nAFTER:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.routeParams$.pipe(\n map((params) => Number(params[\"limit\"] ?? 10))\n );\n}\n```","shortMessageHtmlLink":"feat!: use strict route parameters"}},{"before":null,"after":"5caa17430b64e251d16a8e06a02d1bf9eb7d7039","ref":"refs/heads/LayZeeDK/feat/strict-route-params","pushedAt":"2024-09-02T20:20:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"feat!: use strict route parameters\n\n**BREAKING CHANGES**\n\n`RouterStore#routeParams$` and `MinimalActivatedRouteSnapshot#params` use `StrictRouteData` instead of `Params`. Members are read-only and of type `string | undefined` instead of `any`.\n\nTypeScript will fail to compile application code that has assumed a route type parameter type other than `string | undefined`.\n\nBEFORE:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.routeParams$.pipe(\n map((params) => params[\"limit\"])\n );\n}\n```\n\nAFTER:\n\n```typescript\n// heroes.component.ts\n// (...)\nimport { RouterStore } from \"@ngworker/router-component-store\";\n\n@Component({\n // (...)\n})\nexport class DashboardComponent {\n #routerStore = inject(RouterStore);\n\n limit$: Observable = this.#routerStore.routeParams$.pipe(\n map((params) => Number(params[\"limit\"] ?? 10))\n );\n}\n```","shortMessageHtmlLink":"feat!: use strict route parameters"}},{"before":"502c3cf4b0573f4cd2e4367ec6e4e51247db6592","after":null,"ref":"refs/heads/ci/add-knip","pushedAt":"2024-08-31T22:57:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"}},{"before":"798c5a7e800ff5e50813449d50e64579d54e1aa6","after":"3d49dc65c9ee47477d2af67faca832d13f6efafe","ref":"refs/heads/main","pushedAt":"2024-08-31T22:57:17.000Z","pushType":"pr_merge","commitsCount":7,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"ci: add dead code analysis (#318)\n\n## CI\n\n- Add Knip for dead code analysis\n- Lint unused code\n- Enable strict Nx lint checks","shortMessageHtmlLink":"ci: add dead code analysis (#318)"}},{"before":"8b59300608be8627083306824626e8bd9628af69","after":"502c3cf4b0573f4cd2e4367ec6e4e51247db6592","ref":"refs/heads/ci/add-knip","pushedAt":"2024-08-31T22:54:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"chore: enable strict Nx lint checks","shortMessageHtmlLink":"chore: enable strict Nx lint checks"}},{"before":"224a4944c417841293706c25e04b76affa72ba59","after":"8b59300608be8627083306824626e8bd9628af69","ref":"refs/heads/ci/add-knip","pushedAt":"2024-08-31T22:46:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"chore: lint unused code","shortMessageHtmlLink":"chore: lint unused code"}},{"before":"ac5735a73acb8408ac5d4a03db173224c6edbe6a","after":"224a4944c417841293706c25e04b76affa72ba59","ref":"refs/heads/ci/add-knip","pushedAt":"2024-08-31T22:38:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"ci: add *Dead code analysis* job","shortMessageHtmlLink":"ci: add *Dead code analysis* job"}},{"before":null,"after":"ac5735a73acb8408ac5d4a03db173224c6edbe6a","ref":"refs/heads/ci/add-knip","pushedAt":"2024-08-31T21:51:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"},"commit":{"message":"ci: add *Dead code analysis* job","shortMessageHtmlLink":"ci: add *Dead code analysis* job"}},{"before":"05538ccdf6fcbc6a940dafc0668fc688c25e7c53","after":null,"ref":"refs/heads/docs/change-tagline","pushedAt":"2024-08-31T21:29:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"LayZeeDK","name":"Lars Gyrup Brink Nielsen","path":"/LayZeeDK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6364586?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAErFbYnQA","startCursor":null,"endCursor":null}},"title":"Activity ยท ngworker/router-component-store"}