course-navigation.ts 602 B

123456789101112131415
  1. export type CourseRoute = { module: string; lesson?: string };
  2. export function courseHref(module: string, lesson?: string) {
  3. if (module === 'home' && !lesson) return '?';
  4. const query = new URLSearchParams();
  5. if (module !== 'api' || !lesson) query.set('module', module);
  6. if (lesson) query.set('lesson', lesson);
  7. return `?${query.toString()}`;
  8. }
  9. export function parseCourseQuery(search: string): CourseRoute {
  10. const query = new URLSearchParams(search);
  11. return {
  12. module: query.get('module') || (query.get('lesson') ? 'api' : 'home'),
  13. lesson: query.get('lesson') || undefined,
  14. };
  15. }