Skip to content

Commit

Permalink
feat(router): add utility function to read server side resolver from …
Browse files Browse the repository at this point in the history
…another resolver (#1144)
  • Loading branch information
Tenessy authored Jun 11, 2024
1 parent 2ad919d commit db7aace
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -104,3 +104,22 @@ export default class BlogComponent {
data!: LoadResult<typeof load>;
}
```

## Accessing to the server load data

Accessing to the server load data from `RouteMeta` resolver can be done using the `getLoadResolver` function provided by `@analogjs/router`.

```ts
import { getLoadResolver } from '@analogjs/router';

export const routeMeta: RouteMeta = {
resolve: {
data: async (route) => {
// call server load resolver for this route from another resolver
const data = await getLoadResolver(route);

return { ...data };
},
},
};
```
1 change: 1 addition & 0 deletions packages/router/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ export { provideFileRouter } from './lib/provide-file-router';
export { MetaTag } from './lib/meta-tags';
export { PageServerLoad, LoadResult } from './lib/route-types';
export { injectLoad } from './lib/inject-load';
export { getLoadResolver } from './lib/get-load-resolver';
13 changes: 13 additions & 0 deletions packages/router/src/lib/get-load-resolver.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { ActivatedRouteSnapshot } from '@angular/router';

/**
* Get server load resolver data for the route
*
* @param route Provides the route to get server load resolver
* @returns Returns server load resolver data for the route
*/
export async function getLoadResolver<T>(
route: ActivatedRouteSnapshot
): Promise<T> {
return route.routeConfig?.resolve?.['load']?.(route);
}

0 comments on commit db7aace

Please sign in to comment.