@furystack/shades 10.0.5 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/esm/compile-route.d.ts +2 -0
  2. package/esm/compile-route.d.ts.map +1 -0
  3. package/esm/compile-route.js +4 -0
  4. package/esm/compile-route.js.map +1 -0
  5. package/esm/components/lazy-load.d.ts +2 -2
  6. package/esm/components/lazy-load.d.ts.map +1 -1
  7. package/esm/components/lazy-load.spec.js +2 -2
  8. package/esm/components/lazy-load.spec.js.map +1 -1
  9. package/esm/components/link-to-route.d.ts +1 -1
  10. package/esm/components/link-to-route.d.ts.map +1 -1
  11. package/esm/components/link-to-route.js +3 -3
  12. package/esm/components/link-to-route.js.map +1 -1
  13. package/esm/components/route-link.d.ts +2 -2
  14. package/esm/components/route-link.d.ts.map +1 -1
  15. package/esm/components/router.d.ts +4 -4
  16. package/esm/components/router.d.ts.map +1 -1
  17. package/esm/components/router.js +4 -4
  18. package/esm/components/router.js.map +1 -1
  19. package/esm/components/router.spec.js +1 -1
  20. package/esm/components/router.spec.js.map +1 -1
  21. package/esm/index.d.ts +5 -4
  22. package/esm/index.d.ts.map +1 -1
  23. package/esm/index.js +5 -4
  24. package/esm/index.js.map +1 -1
  25. package/esm/models/render-options.d.ts +2 -2
  26. package/esm/models/render-options.d.ts.map +1 -1
  27. package/esm/models/shade-component.d.ts.map +1 -1
  28. package/esm/services/location-service.d.ts +9 -10
  29. package/esm/services/location-service.d.ts.map +1 -1
  30. package/esm/services/location-service.js +41 -38
  31. package/esm/services/location-service.js.map +1 -1
  32. package/esm/services/location-service.spec.js +28 -20
  33. package/esm/services/location-service.spec.js.map +1 -1
  34. package/esm/services/resource-manager.d.ts +4 -5
  35. package/esm/services/resource-manager.d.ts.map +1 -1
  36. package/esm/services/resource-manager.js +18 -5
  37. package/esm/services/resource-manager.js.map +1 -1
  38. package/esm/services/resource-manager.spec.js +55 -7
  39. package/esm/services/resource-manager.spec.js.map +1 -1
  40. package/esm/services/screen-service.d.ts +1 -2
  41. package/esm/services/screen-service.d.ts.map +1 -1
  42. package/esm/services/screen-service.js +1 -1
  43. package/esm/services/screen-service.js.map +1 -1
  44. package/esm/shade-component.d.ts +5 -5
  45. package/esm/shade-component.d.ts.map +1 -1
  46. package/esm/shade-component.js +8 -5
  47. package/esm/shade-component.js.map +1 -1
  48. package/esm/shade-resources.integration.spec.js +6 -5
  49. package/esm/shade-resources.integration.spec.js.map +1 -1
  50. package/esm/shade.d.ts +1 -1
  51. package/esm/shade.d.ts.map +1 -1
  52. package/esm/shade.js +5 -5
  53. package/esm/shade.js.map +1 -1
  54. package/esm/shades.integration.spec.js +79 -4
  55. package/esm/shades.integration.spec.js.map +1 -1
  56. package/esm/styled-element.d.ts.map +1 -1
  57. package/esm/styled-shade.d.ts.map +1 -1
  58. package/esm/styled-shade.js +13 -7
  59. package/esm/styled-shade.js.map +1 -1
  60. package/package.json +8 -8
  61. package/src/compile-route.ts +6 -0
  62. package/src/components/lazy-load.spec.tsx +3 -3
  63. package/src/components/link-to-route.tsx +4 -4
  64. package/src/components/router.spec.tsx +1 -1
  65. package/src/components/router.tsx +7 -7
  66. package/src/index.ts +5 -4
  67. package/src/models/render-options.ts +2 -2
  68. package/src/services/location-service.spec.ts +34 -22
  69. package/src/services/location-service.tsx +51 -45
  70. package/src/services/resource-manager.spec.ts +74 -7
  71. package/src/services/resource-manager.ts +29 -10
  72. package/src/services/screen-service.ts +1 -2
  73. package/src/shade-component.ts +16 -12
  74. package/src/shade-resources.integration.spec.tsx +7 -5
  75. package/src/shade.ts +6 -6
  76. package/src/shades.integration.spec.tsx +107 -4
  77. package/src/styled-shade.ts +13 -7
@@ -0,0 +1,2 @@
1
+ export declare const compileRoute: <T extends Object>(url: string, params: T) => string;
2
+ //# sourceMappingURL=compile-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-route.d.ts","sourceRoot":"","sources":["../src/compile-route.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,OAAO,MAAM,UAAU,CAAC,WAAgD,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { compile } from 'path-to-regexp';
2
+ const stringifyObjectValues = (params) => Object.fromEntries(Object.entries(params).map(([key, value]) => [key, value?.toString()]));
3
+ export const compileRoute = (url, params) => compile(url)(stringifyObjectValues(params));
4
+ //# sourceMappingURL=compile-route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-route.js","sourceRoot":"","sources":["../src/compile-route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,MAAM,qBAAqB,GAAG,CAAC,MAA2B,EAAE,EAAE,CAC5D,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;AAE5F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAmB,GAAW,EAAE,MAAS,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAA"}
@@ -8,6 +8,6 @@ export interface LazyLoadState {
8
8
  error?: unknown;
9
9
  }
10
10
  export declare const LazyLoad: (props: LazyLoadProps & Omit<Partial<HTMLElement>, "style"> & {
11
- style?: Partial<CSSStyleDeclaration> | undefined;
12
- }, children?: import("../index.js").ChildrenList | undefined) => JSX.Element<any>;
11
+ style?: Partial<CSSStyleDeclaration>;
12
+ }, children?: import("../index.js").ChildrenList) => JSX.Element;
13
13
  //# sourceMappingURL=lazy-load.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lazy-load.d.ts","sourceRoot":"","sources":["../../src/components/lazy-load.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,GAAG,CAAC,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,GAAG,CAAC,OAAO,CAAA;IAC1D,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,eAAO,MAAM,QAAQ;;iFAqCnB,CAAA"}
1
+ {"version":3,"file":"lazy-load.d.ts","sourceRoot":"","sources":["../../src/components/lazy-load.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,GAAG,CAAC,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,GAAG,CAAC,OAAO,CAAA;IAC1D,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,eAAO,MAAM,QAAQ;;qDAsCk4Q,IAAK,OAAO,AADj6Q,CAAA"}
@@ -1,10 +1,10 @@
1
- import { TextEncoder, TextDecoder } from 'util';
1
+ import { TextDecoder, TextEncoder } from 'util';
2
2
  global.TextEncoder = TextEncoder;
3
3
  global.TextDecoder = TextDecoder;
4
4
  import { Injector } from '@furystack/inject';
5
5
  import { sleepAsync } from '@furystack/utils';
6
6
  import { LazyLoad } from './lazy-load.js';
7
- import { describe, it, expect, vi, afterEach, beforeEach } from 'vitest';
7
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
8
8
  import { initializeShadeRoot } from '../initialize.js';
9
9
  import { createComponent } from '../shade-component.js';
10
10
  describe('Lazy Load', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"lazy-load.spec.js","sourceRoot":"","sources":["../../src/components/lazy-load.spec.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lazy-load.spec.js","sourceRoot":"","sources":["../../src/components/lazy-load.spec.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { Route } from './router.js';
2
1
  import type { ChildrenList } from '../models/children-list.js';
2
+ import type { Route } from './router.js';
3
3
  export type LinkToRouteProps<T extends {}> = {
4
4
  route: Route<T>;
5
5
  params: T;
@@ -1 +1 @@
1
- {"version":3,"file":"link-to-route.d.ts","sourceRoot":"","sources":["../../src/components/link-to-route.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAG9D,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,EAAE,IAAI;IAC3C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IACf,MAAM,EAAE,CAAC,CAAA;CACV,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;AAE5C,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,KAAK,GAAG,CAAC,OAWnG,CAAA"}
1
+ {"version":3,"file":"link-to-route.d.ts","sourceRoot":"","sources":["../../src/components/link-to-route.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAG9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,EAAE,IAAI;IAC3C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IACf,MAAM,EAAE,CAAC,CAAA;CACV,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;AAE5C,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,KAAK,GAAG,CAAC,OAWnG,CAAA"}
@@ -1,13 +1,13 @@
1
- import { compile } from 'path-to-regexp';
2
- import { Shade } from '../shade.js';
1
+ import { compileRoute } from '../compile-route.js';
3
2
  import { createComponent } from '../shade-component.js';
3
+ import { Shade } from '../shade.js';
4
4
  export const LinkToRoute = Shade({
5
5
  shadowDomName: 'link-to-route',
6
6
  elementBase: HTMLAnchorElement,
7
7
  elementBaseName: 'a',
8
8
  render: ({ props, element, children }) => {
9
9
  const { route, params } = props;
10
- const url = compile(route.url)(params);
10
+ const url = compileRoute(route.url, params);
11
11
  element.setAttribute('href', url);
12
12
  return createComponent(createComponent, null, children);
13
13
  },
@@ -1 +1 @@
1
- {"version":3,"file":"link-to-route.js","sourceRoot":"","sources":["../../src/components/link-to-route.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAOvD,MAAM,CAAC,MAAM,WAAW,GAAuF,KAAK,CAAC;IACnH,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,iBAAiB;IAC9B,eAAe,EAAE,GAAG;IACpB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QACvC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;QAE/B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;QACtC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACjC,OAAO,uCAAG,QAAQ,CAAI,CAAA;IACxB,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"link-to-route.js","sourceRoot":"","sources":["../../src/components/link-to-route.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAQnC,MAAM,CAAC,MAAM,WAAW,GAAuF,KAAK,CAAC;IACnH,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,iBAAiB;IAC9B,eAAe,EAAE,GAAG;IACpB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QACvC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;QAE/B,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAC3C,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACjC,OAAO,uCAAG,QAAQ,CAAI,CAAA;IACxB,CAAC;CACF,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import type { PartialElement } from '../models/partial-element.js';
2
2
  export type RouteLinkProps = PartialElement<Omit<HTMLAnchorElement, 'onclick'>>;
3
3
  export declare const RouteLink: (props: Omit<Partial<Omit<HTMLAnchorElement, "onclick">>, "style"> & {
4
- style?: Partial<CSSStyleDeclaration> | undefined;
5
- } & Omit<Partial<HTMLElement>, "style">, children?: import("../index.js").ChildrenList | undefined) => JSX.Element<any>;
4
+ style?: Partial<CSSStyleDeclaration>;
5
+ } & Omit<Partial<HTMLElement>, "style">, children?: import("../index.js").ChildrenList) => JSX.Element;
6
6
  //# sourceMappingURL=route-link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route-link.d.ts","sourceRoot":"","sources":["../../src/components/route-link.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAIlE,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAA;AAE/E,eAAO,MAAM,SAAS;;uHAoBpB,CAAA"}
1
+ {"version":3,"file":"route-link.d.ts","sourceRoot":"","sources":["../../src/components/route-link.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAIlE,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAA;AAE/E,eAAO,MAAM,SAAS;;2FAqB26R,IAAK,OAAO,AAD38R,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { MatchResult, TokensToRegexpOptions } from 'path-to-regexp';
1
+ import type { MatchOptions, MatchResult } from 'path-to-regexp';
2
2
  import type { RenderOptions } from '../models/render-options.js';
3
3
  export interface Route<TMatchResult extends object> {
4
4
  url: string;
@@ -6,7 +6,7 @@ export interface Route<TMatchResult extends object> {
6
6
  currentUrl: string;
7
7
  match: MatchResult<TMatchResult>;
8
8
  }) => JSX.Element;
9
- routingOptions?: TokensToRegexpOptions;
9
+ routingOptions?: MatchOptions;
10
10
  onVisit?: (options: RenderOptions<unknown>) => Promise<void>;
11
11
  onLeave?: (options: RenderOptions<unknown>) => Promise<void>;
12
12
  }
@@ -21,6 +21,6 @@ export interface RouterState {
21
21
  jsx: JSX.Element;
22
22
  }
23
23
  export declare const Router: (props: RouterProps & Omit<Partial<HTMLElement>, "style"> & {
24
- style?: Partial<CSSStyleDeclaration> | undefined;
25
- }, children?: import("../index.js").ChildrenList | undefined) => JSX.Element<any>;
24
+ style?: Partial<CSSStyleDeclaration>;
25
+ }, children?: import("../index.js").ChildrenList) => JSX.Element;
26
26
  //# sourceMappingURL=router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/components/router.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAExE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAIhE,MAAM,WAAW,KAAK,CAAC,YAAY,SAAS,MAAM;IAChD,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAA;IAC7F,cAAc,CAAC,EAAE,qBAAqB,CAAA;IACtC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7D;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IACzB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAC/B,iBAAiB,CAAC,EAAE,GAAG,CAAA;IACvB,GAAG,EAAE,GAAG,CAAC,OAAO,CAAA;CACjB;AACD,eAAO,MAAM,MAAM;;iFAsDjB,CAAA"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/components/router.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAG/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAKhE,MAAM,WAAW,KAAK,CAAC,YAAY,SAAS,MAAM;IAChD,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAA;IAC7F,cAAc,CAAC,EAAE,YAAY,CAAA;IAC7B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7D;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IACzB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAC/B,iBAAiB,CAAC,EAAE,GAAG,CAAA;IACvB,GAAG,EAAE,GAAG,CAAC,OAAO,CAAA;CACjB;AACD,eAAO,MAAM,MAAM;;qDAuD84N,IAAK,OAAO,AAD36N,CAAA"}
@@ -1,9 +1,9 @@
1
- import { Shade } from '../shade.js';
2
- import { createComponent } from '../shade-component.js';
3
- import { LocationService } from '../services/location-service.js';
1
+ import { ObservableAlreadyDisposedError } from '@furystack/utils';
4
2
  import { match } from 'path-to-regexp';
5
3
  import { Lock } from 'semaphore-async-await';
6
- import { ObservableAlreadyDisposedError } from '@furystack/utils';
4
+ import { LocationService } from '../services/location-service.js';
5
+ import { createComponent } from '../shade-component.js';
6
+ import { Shade } from '../shade.js';
7
7
  export const Router = Shade({
8
8
  shadowDomName: 'shade-router',
9
9
  render: (options) => {
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/components/router.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/components/router.tsx"],"names":[],"mappings":"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"}
@@ -37,7 +37,7 @@ describe('Router', () => {
37
37
  createComponent(RouteLink, { id: "x", href: "/route-x" }, "x"),
38
38
  createComponent(Router, { routes: [
39
39
  { url: '/route-a', component: () => createComponent("div", { id: "content" }, "route-a"), onVisit, onLeave },
40
- { url: '/route-b/:id?', component: ({ match }) => createComponent("div", { id: "content" },
40
+ { url: '/route-b{/:id}?', component: ({ match }) => createComponent("div", { id: "content" },
41
41
  "route-b",
42
42
  match.params.id) },
43
43
  {
@@ -1 +1 @@
1
- {"version":3,"file":"router.spec.js","sourceRoot":"","sources":["../../src/components/router.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAE/C,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;AAChC,MAAM,CAAC,WAAW,GAAG,WAAkB,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,uBAAuB,CAAA;IACnD,CAAC,CAAC,CAAA;IACF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QAEhC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QACvB,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QACvB,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QAE3B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;QAC/B,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAmB,CAAA;QAErE,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QAE7B,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QAEpF,mBAAmB,CAAC;YAClB,QAAQ;YACR,WAAW;YACX,UAAU,EAAE,CACV;gBACE,gBAAC,SAAS,IAAC,EAAE,EAAC,MAAM,EAAC,IAAI,EAAC,GAAG,WAEjB;gBACZ,gBAAC,SAAS,IAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,UAAU,QAErB;gBACZ,gBAAC,SAAS,IAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,UAAU,QAErB;gBACZ,gBAAC,SAAS,IAAC,EAAE,EAAC,WAAW,EAAC,IAAI,EAAC,cAAc,gBAEjC;gBACZ,gBAAC,SAAS,IAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,UAAU,QAErB;gBACZ,gBAAC,SAAS,IAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,UAAU,QAErB;gBACZ,gBAAC,MAAM,IACL,MAAM,EAAE;wBACN,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,yBAAK,EAAE,EAAC,SAAS,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE;wBACvF,EAAE,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,yBAAK,EAAE,EAAC,SAAS;;gCAAS,KAAK,CAAC,MAAM,CAAC,EAAE,CAAO,EAAE;wBACpG;4BACE,GAAG,EAAE,UAAU;4BACf,SAAS,EAAE,GAAG,EAAE,CAAC,yBAAK,EAAE,EAAC,SAAS,cAAc;4BAChD,OAAO,EAAE,WAAW;yBACrB;wBACD,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,yBAAK,EAAE,EAAC,SAAS,WAAW,EAAE;qBAC5D,EACD,QAAQ,EAAE,yBAAK,EAAE,EAAC,SAAS,gBAAgB,GAC3C,CACE,CACP;SACF,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;QACtE,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAA;QAE3C,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAA;QAExE,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;QAErB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;QAEhC,OAAO,CAAC,GAAG,CAAC,CAAA;QACZ,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;QACrB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACpC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACtC,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAElC,OAAO,CAAC,GAAG,CAAC,CAAA;QACZ,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;QACrB,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAClC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;QAEhC,OAAO,CAAC,GAAG,CAAC,CAAA;QACZ,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;QACrB,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAElC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACpC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAEtC,OAAO,CAAC,WAAW,CAAC,CAAA;QACpB,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;QACrB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACvC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAE1C,OAAO,CAAC,GAAG,CAAC,CAAA;QACZ,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;QACrB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACpC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAEtC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;QACpC,OAAO,CAAC,GAAG,CAAC,CAAA;QACZ,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;QACrB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACtC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACtC,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"router.spec.js","sourceRoot":"","sources":["../../src/components/router.spec.tsx"],"names":[],"mappings":"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"}
package/esm/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
+ export * from './compile-route.js';
2
+ export * from './components/index.js';
3
+ export * from './initialize.js';
4
+ export * from './models/index.js';
1
5
  export * from './services/index.js';
2
- import './jsx.js';
3
6
  export * from './shade-component.js';
4
7
  export * from './shade.js';
5
- export * from './models/index.js';
6
- export * from './components/index.js';
7
- export * from './initialize.js';
8
8
  export * from './styled-element.js';
9
9
  export * from './styled-shade.js';
10
+ import './jsx.js';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,OAAO,UAAU,CAAA;AACjB,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,OAAO,UAAU,CAAA"}
package/esm/index.js CHANGED
@@ -1,10 +1,11 @@
1
+ export * from './compile-route.js';
2
+ export * from './components/index.js';
3
+ export * from './initialize.js';
4
+ export * from './models/index.js';
1
5
  export * from './services/index.js';
2
- import './jsx.js';
3
6
  export * from './shade-component.js';
4
7
  export * from './shade.js';
5
- export * from './models/index.js';
6
- export * from './components/index.js';
7
- export * from './initialize.js';
8
8
  export * from './styled-element.js';
9
9
  export * from './styled-shade.js';
10
+ import './jsx.js';
10
11
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,OAAO,UAAU,CAAA;AACjB,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,OAAO,UAAU,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import type { Injector } from '@furystack/inject';
2
+ import type { ObservableValue, ValueObserverOptions } from '@furystack/utils';
2
3
  import type { ChildrenList } from './children-list.js';
3
- import type { Disposable, ObservableValue, ValueObserverOptions } from '@furystack/utils';
4
4
  import type { PartialElement } from './partial-element.js';
5
5
  export type RenderOptions<TProps, TElementBase extends HTMLElement = HTMLElement> = {
6
6
  readonly props: TProps & PartialElement<TElementBase>;
@@ -14,7 +14,7 @@ export type RenderOptions<TProps, TElementBase extends HTMLElement = HTMLElement
14
14
  * @param factory A factory method for creating the disposable resource
15
15
  * @returns The Disposable instance
16
16
  */
17
- useDisposable: <T extends Disposable>(key: string, factory: () => T) => T;
17
+ useDisposable: <T extends Disposable | AsyncDisposable>(key: string, factory: () => T) => T;
18
18
  /**
19
19
  *
20
20
  * @param key The key for caching the observable value
@@ -1 +1 @@
1
- {"version":3,"file":"render-options.d.ts","sourceRoot":"","sources":["../../src/models/render-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,MAAM,aAAa,CAAC,MAAM,EAAE,YAAY,SAAS,WAAW,GAAG,WAAW,IAAI;IAClF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;IACrD,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B;;;;;OAKG;IACH,aAAa,EAAE,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAEzE;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,CAAC,EACf,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAA;KAAE,KACrE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAEhD;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAE1F;;;;;OAKG;IACH,cAAc,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAEhG;;;;;;OAMG;IACH,cAAc,EAAE,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,CAAC,EACf,WAAW,CAAC,EAAE,OAAO,KAClB,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;CACjD,CAAA"}
1
+ {"version":3,"file":"render-options.d.ts","sourceRoot":"","sources":["../../src/models/render-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,MAAM,aAAa,CAAC,MAAM,EAAE,YAAY,SAAS,WAAW,GAAG,WAAW,IAAI;IAClF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;IACrD,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B;;;;;OAKG;IACH,aAAa,EAAE,CAAC,CAAC,SAAS,UAAU,GAAG,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAE3F;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,CAAC,EACf,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAA;KAAE,KACrE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAEhD;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAE1F;;;;;OAKG;IACH,cAAc,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAEhG;;;;;;OAMG;IACH,cAAc,EAAE,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,CAAC,EACf,WAAW,CAAC,EAAE,OAAO,KAClB,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;CACjD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"shade-component.d.ts","sourceRoot":"","sources":["../../src/models/shade-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,KAAK,GAAG,CAAC,OAAO,CAAA;AAE/F;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAS,GAAG,+BAExC,CAAA"}
1
+ {"version":3,"file":"shade-component.d.ts","sourceRoot":"","sources":["../../src/models/shade-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,KAAK,GAAG,CAAC,OAAO,CAAA;AAE/F;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAS,GAAG,KAAG,GAAG,IAAI,cAAc,CAAC,GAAG,CAEpE,CAAA"}
@@ -1,11 +1,13 @@
1
- import type { Disposable } from '@furystack/utils';
2
- import { ObservableValue } from '@furystack/utils';
3
1
  import { type Injector } from '@furystack/inject';
4
- import { deserializeQueryString, serializeToQueryString } from '@furystack/rest';
2
+ import { deserializeQueryString as defaultDeserializeQueryString, serializeToQueryString as defaultSerializeToQueryString } from '@furystack/rest';
3
+ import { ObservableValue } from '@furystack/utils';
5
4
  export declare class LocationService implements Disposable {
6
- serializeToQueryString: <T extends object>(queryObject: T) => string;
7
- deserializeQueryString: (fullQueryString: string) => any;
8
- dispose(): void;
5
+ private readonly serializeToQueryString;
6
+ readonly deserializeQueryString: (fullQueryString: string) => Record<string, unknown>;
7
+ constructor(serializeToQueryString?: <T extends object>(queryObject: T) => string, deserializeQueryString?: (fullQueryString: string) => Record<string, unknown>);
8
+ private originalPushState;
9
+ private originalReplaceState;
10
+ [Symbol.dispose](): void;
9
11
  /**
10
12
  * Observable value that will be updated when the location pathname (e.g. /page/1) changes
11
13
  */
@@ -29,11 +31,8 @@ export declare class LocationService implements Disposable {
29
31
  * @returns An observable with the current value (or default value) of the search param
30
32
  */
31
33
  useSearchParam<T>(key: string, defaultValue: T): ObservableValue<T>;
32
- private pushStateTracer;
33
- private replaceStateTracer;
34
34
  private popStateListener;
35
35
  private hashChangeListener;
36
- constructor();
37
36
  }
38
- export declare const useCustomSearchStateSerializer: (injector: Injector, serialize: typeof serializeToQueryString, deserialize: typeof deserializeQueryString) => void;
37
+ export declare const useCustomSearchStateSerializer: (injector: Injector, serialize: typeof defaultSerializeToQueryString, deserialize: typeof defaultDeserializeQueryString) => void;
39
38
  //# sourceMappingURL=location-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"location-service.d.ts","sourceRoot":"","sources":["../../src/services/location-service.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAS,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAChF,qBACa,eAAgB,YAAW,UAAU;IACzC,sBAAsB,+CAAyB;IAE/C,sBAAsB,mCAAyB;IAE/C,OAAO;IAWd;;OAEG;IACI,qBAAqB,0BAAuD;IAEnF;;OAEG;IACI,qBAAqB,0BAAqC;IAEjE;;OAEG;IACI,uBAAuB,0BAA+C;IAEtE,mCAAmC,uBAAoE;IAEvG,4BAA4B,mDAEjC;IAEK,WAAW,aAIL;IAEb,SAAgB,sBAAsB,oCAA0C;IAEhF;;;;;OAKG;IACI,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IA+BrD,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,kBAAkB,CAAY;IAEtC,OAAO,CAAC,gBAAgB,CAEvB;IAED,OAAO,CAAC,kBAAkB,CAEzB;;CAoBF;AAED,eAAO,MAAM,8BAA8B,aAC/B,QAAQ,aACP,6BAA6B,eAC3B,6BAA6B,SAK3C,CAAA"}
1
+ {"version":3,"file":"location-service.d.ts","sourceRoot":"","sources":["../../src/services/location-service.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EACL,sBAAsB,IAAI,6BAA6B,EACvD,sBAAsB,IAAI,6BAA6B,EACxD,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,qBACa,eAAgB,YAAW,UAAU;IAE9C,OAAO,CAAC,QAAQ,CAAC,sBAAsB;aAEvB,sBAAsB;gBAFrB,sBAAsB,+CAAgC,EAEvD,sBAAsB,uDAAgC;IAoBxE,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,oBAAoB,CAAoC;IAEzD,CAAC,MAAM,CAAC,OAAO,CAAC;IAYvB;;OAEG;IACI,qBAAqB,0BAAuD;IAEnF;;OAEG;IACI,qBAAqB,0BAAsD;IAElF;;OAEG;IACI,uBAAuB,0BAA+C;IAEtE,mCAAmC,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;IAEzD,4BAA4B,mDAEjC;IAEK,WAAW,aAIL;IAEb,SAAgB,sBAAsB,oCAA0C;IAEhF;;;;;OAKG;IACI,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IA+BrD,OAAO,CAAC,gBAAgB,CAEvB;IAED,OAAO,CAAC,kBAAkB,CAEb;CACd;AAED,eAAO,MAAM,8BAA8B,aAC/B,QAAQ,aACP,OAAO,6BAA6B,eAClC,OAAO,6BAA6B,SAQlD,CAAA"}
@@ -7,21 +7,40 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { ObservableValue, Trace } from '@furystack/utils';
11
10
  import { Injectable } from '@furystack/inject';
12
- import { deserializeQueryString, serializeToQueryString } from '@furystack/rest';
11
+ import { deserializeQueryString as defaultDeserializeQueryString, serializeToQueryString as defaultSerializeToQueryString, } from '@furystack/rest';
12
+ import { ObservableValue } from '@furystack/utils';
13
13
  let LocationService = class LocationService {
14
- serializeToQueryString = serializeToQueryString;
15
- deserializeQueryString = deserializeQueryString;
16
- dispose() {
14
+ serializeToQueryString;
15
+ deserializeQueryString;
16
+ constructor(serializeToQueryString = defaultSerializeToQueryString, deserializeQueryString = defaultDeserializeQueryString) {
17
+ this.serializeToQueryString = serializeToQueryString;
18
+ this.deserializeQueryString = deserializeQueryString;
19
+ window.addEventListener('popstate', this.popStateListener);
20
+ window.addEventListener('hashchange', this.hashChangeListener);
21
+ this.onDeserializedLocationSearchChanged = new ObservableValue(this.deserializeQueryString(location.search));
22
+ this.originalPushState = window.history.pushState.bind(window.history);
23
+ window.history.pushState = ((...args) => {
24
+ this.originalPushState(...args);
25
+ this.updateState();
26
+ }).bind(this);
27
+ this.originalReplaceState = window.history.replaceState.bind(window.history);
28
+ window.history.replaceState = ((...args) => {
29
+ this.originalReplaceState(...args);
30
+ this.updateState();
31
+ }).bind(this);
32
+ }
33
+ originalPushState;
34
+ originalReplaceState;
35
+ [Symbol.dispose]() {
17
36
  window.removeEventListener('popstate', this.popStateListener);
18
37
  window.removeEventListener('hashchange', this.hashChangeListener);
19
- this.pushStateTracer.dispose();
20
- this.replaceStateTracer.dispose();
21
- this.onLocationPathChanged.dispose();
22
- this.onLocationSearchChanged.dispose();
23
- this.onDeserializedLocationSearchChanged.dispose();
24
- this.locationDeserializerObserver.dispose();
38
+ this.onLocationPathChanged[Symbol.dispose]();
39
+ this.onLocationSearchChanged[Symbol.dispose]();
40
+ this.onDeserializedLocationSearchChanged[Symbol.dispose]();
41
+ this.locationDeserializerObserver[Symbol.dispose]();
42
+ window.history.pushState = this.originalPushState;
43
+ window.history.replaceState = this.originalReplaceState;
25
44
  }
26
45
  /**
27
46
  * Observable value that will be updated when the location pathname (e.g. /page/1) changes
@@ -30,18 +49,18 @@ let LocationService = class LocationService {
30
49
  /**
31
50
  * Observable value that will be updated when the location hash (e.g. #hash) changes
32
51
  */
33
- onLocationHashChanged = new ObservableValue(location.hash);
52
+ onLocationHashChanged = new ObservableValue(location.hash.replace('#', ''));
34
53
  /**
35
54
  * Observable value that will be updated when the location search (e.g. ?search=1) changes
36
55
  */
37
56
  onLocationSearchChanged = new ObservableValue(location.search);
38
- onDeserializedLocationSearchChanged = new ObservableValue(this.deserializeQueryString(location.search));
57
+ onDeserializedLocationSearchChanged;
39
58
  locationDeserializerObserver = this.onLocationSearchChanged.subscribe((search) => {
40
59
  this.onDeserializedLocationSearchChanged.setValue(this.deserializeQueryString(search));
41
60
  });
42
61
  updateState = (() => {
43
62
  this.onLocationPathChanged.setValue(location.pathname);
44
- this.onLocationHashChanged.setValue(location.hash);
63
+ this.onLocationHashChanged.setValue(location.hash.replace('#', ''));
45
64
  this.onLocationSearchChanged.setValue(location.search);
46
65
  }).bind(this);
47
66
  searchParamObservables = new Map();
@@ -76,39 +95,23 @@ let LocationService = class LocationService {
76
95
  }
77
96
  return existing;
78
97
  }
79
- pushStateTracer;
80
- replaceStateTracer;
81
98
  popStateListener = (_ev) => {
82
99
  this.updateState();
83
100
  };
84
- hashChangeListener = (_ev) => {
101
+ hashChangeListener = ((_ev) => {
85
102
  this.updateState();
86
- };
87
- constructor() {
88
- window.addEventListener('popstate', this.popStateListener);
89
- window.addEventListener('hashchange', this.hashChangeListener);
90
- this.pushStateTracer = Trace.method({
91
- object: history,
92
- method: history.pushState,
93
- isAsync: false,
94
- onFinished: () => this.updateState(),
95
- });
96
- this.replaceStateTracer = Trace.method({
97
- object: history,
98
- method: history.replaceState,
99
- isAsync: false,
100
- onFinished: () => this.updateState(),
101
- });
102
- }
103
+ }).bind(this);
103
104
  };
104
105
  LocationService = __decorate([
105
106
  Injectable({ lifetime: 'singleton' }),
106
- __metadata("design:paramtypes", [])
107
+ __metadata("design:paramtypes", [Object, Object])
107
108
  ], LocationService);
108
109
  export { LocationService };
109
110
  export const useCustomSearchStateSerializer = (injector, serialize, deserialize) => {
110
- const locationService = injector.getInstance(LocationService);
111
- locationService.serializeToQueryString = serialize;
112
- locationService.deserializeQueryString = deserialize;
111
+ if (injector.cachedSingletons.has(LocationService)) {
112
+ throw new Error('useCustomSearchStateSerializer must be called before the LocationService is instantiated');
113
+ }
114
+ const locationService = new LocationService(serialize, deserialize);
115
+ injector.setExplicitInstance(locationService, LocationService);
113
116
  };
114
117
  //# sourceMappingURL=location-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"location-service.js","sourceRoot":"","sources":["../../src/services/location-service.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"location-service.js","sourceRoot":"","sources":["../../src/services/location-service.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EACL,sBAAsB,IAAI,6BAA6B,EACvD,sBAAsB,IAAI,6BAA6B,GACxD,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE3C,IAAM,eAAe,GAArB,MAAM,eAAe;IAEP;IAED;IAHlB,YACmB,yBAAyB,6BAA6B,EAEvD,yBAAyB,6BAA6B;QAFrD,2BAAsB,GAAtB,sBAAsB,CAAgC;QAEvD,2BAAsB,GAAtB,sBAAsB,CAAgC;QAEtE,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC1D,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAE9D,IAAI,CAAC,mCAAmC,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QAE5G,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACtE,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,IAAiD,EAAE,EAAE;YACnF,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAA;YAC/B,IAAI,CAAC,WAAW,EAAE,CAAA;QACpB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEb,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC5E,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,IAAoD,EAAE,EAAE;YACzF,IAAI,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAA;YAClC,IAAI,CAAC,WAAW,EAAE,CAAA;QACpB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;IAEO,iBAAiB,CAAiC;IAClD,oBAAoB,CAAoC;IAEzD,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC7D,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;QACjE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;QAC5C,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;QAC9C,IAAI,CAAC,mCAAmC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;QAC1D,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;QAEnD,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAA;QACjD,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAA;IACzD,CAAC;IAED;;OAEG;IACI,qBAAqB,GAAG,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA;IAEnF;;OAEG;IACI,qBAAqB,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;IAElF;;OAEG;IACI,uBAAuB,GAAG,IAAI,eAAe,CAAS,QAAQ,CAAC,MAAM,CAAC,CAAA;IAEtE,mCAAmC,CAAsB;IAEzD,4BAA4B,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;QACtF,IAAI,CAAC,mCAAmC,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAA;IACxF,CAAC,CAAC,CAAA;IAEK,WAAW,GAAG,CAAC,GAAG,EAAE;QACzB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACtD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;QACnE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACxD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEG,sBAAsB,GAAG,IAAI,GAAG,EAAgC,CAAA;IAEhF;;;;;OAKG;IACI,cAAc,CAAI,GAAW,EAAE,YAAe;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAErD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,mBAAmB,GAAG,IAAI,CAAC,mCAAmC,CAAC,QAAQ,EAAE,CAAA;YAE/E,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC;gBAChF,CAAC,CAAE,mBAAmB,CAAC,GAAG,CAAO;gBACjC,CAAC,CAAC,YAAY,CAAA;YAEhB,MAAM,aAAa,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAA;YACtD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;YAEnD,aAAa,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAChC,MAAM,wBAAwB,GAAG,IAAI,CAAC,mCAAmC,CAAC,QAAQ,EAAE,CAAA;gBACpF,IAAI,wBAAwB,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,GAAG,wBAAwB,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;oBACzF,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAA;oBAC/C,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;gBACnC,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,mCAAmC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC5D,MAAM,KAAK,GAAI,MAAM,CAAC,GAAG,CAAO,IAAI,YAAY,CAAA;gBAChD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;YACvD,CAAC,CAAC,CAAA;YACF,OAAO,aAAa,CAAA;QACtB,CAAC;QACD,OAAO,QAA8B,CAAA;IACvC,CAAC;IAEO,gBAAgB,GAAG,CAAC,GAAkB,EAAE,EAAE;QAChD,IAAI,CAAC,WAAW,EAAE,CAAA;IACpB,CAAC,CAAA;IAEO,kBAAkB,GAAG,CAAC,CAAC,GAAoB,EAAE,EAAE;QACrD,IAAI,CAAC,WAAW,EAAE,CAAA;IACpB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;CACd,CAAA;AAhHY,eAAe;IAD3B,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;;GACzB,eAAe,CAgH3B;;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,QAAkB,EAClB,SAA+C,EAC/C,WAAiD,EACjD,EAAE;IACF,IAAI,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;IAC7G,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IACnE,QAAQ,CAAC,mBAAmB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAA;AAChE,CAAC,CAAA"}
@@ -1,11 +1,11 @@
1
- import { TextEncoder, TextDecoder } from 'util';
1
+ import { TextDecoder, TextEncoder } from 'util';
2
2
  global.TextEncoder = TextEncoder;
3
3
  global.TextDecoder = TextDecoder;
4
4
  import { Injector } from '@furystack/inject';
5
- import { using } from '@furystack/utils';
6
5
  import { deserializeQueryString, serializeToQueryString, serializeValue } from '@furystack/rest';
6
+ import { usingAsync } from '@furystack/utils';
7
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
7
8
  import { LocationService, useCustomSearchStateSerializer } from './location-service.js';
8
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
9
9
  describe('LocationService', () => {
10
10
  beforeEach(() => {
11
11
  document.body.innerHTML = '<div id="root"></div>';
@@ -13,14 +13,14 @@ describe('LocationService', () => {
13
13
  afterEach(() => {
14
14
  document.body.innerHTML = '';
15
15
  });
16
- it('Shuld be constructed', () => {
17
- using(new Injector(), (i) => {
16
+ it('Shuld be constructed', async () => {
17
+ await usingAsync(new Injector(), async (i) => {
18
18
  const s = i.getInstance(LocationService);
19
19
  expect(s).toBeInstanceOf(LocationService);
20
20
  });
21
21
  });
22
- it('Shuld update state on events', () => {
23
- using(new Injector(), (i) => {
22
+ it('Shuld update state on events', async () => {
23
+ await usingAsync(new Injector(), async (i) => {
24
24
  const onLocaionChanged = vi.fn();
25
25
  const s = i.getInstance(LocationService);
26
26
  s.onLocationPathChanged.subscribe(onLocaionChanged);
@@ -37,8 +37,8 @@ describe('LocationService', () => {
37
37
  });
38
38
  });
39
39
  describe('useSearchParam', () => {
40
- it('Should create observables lazily', () => {
41
- using(new Injector(), (i) => {
40
+ it('Should create observables lazily', async () => {
41
+ await usingAsync(new Injector(), async (i) => {
42
42
  const service = i.getInstance(LocationService);
43
43
  const observables = service.searchParamObservables;
44
44
  const testSearchParam = service.useSearchParam('test', null);
@@ -51,23 +51,23 @@ describe('LocationService', () => {
51
51
  expect(testSearchParam3).not.toBe(testSearchParam2);
52
52
  });
53
53
  });
54
- it('Should return the default value, if not present in the query string', () => {
55
- using(new Injector(), (i) => {
54
+ it('Should return the default value, if not present in the query string', async () => {
55
+ await usingAsync(new Injector(), async (i) => {
56
56
  const service = i.getInstance(LocationService);
57
57
  const testSearchParam = service.useSearchParam('test', { value: 'foo' });
58
58
  expect(testSearchParam.getValue()).toEqual({ value: 'foo' });
59
59
  });
60
60
  });
61
- it('Should return the value from the query string', () => {
62
- using(new Injector(), (i) => {
61
+ it('Should return the value from the query string', async () => {
62
+ await usingAsync(new Injector(), async (i) => {
63
63
  const service = i.getInstance(LocationService);
64
64
  history.pushState(null, '', `/loc1?test=${serializeValue(1)}`);
65
65
  const testSearchParam = service.useSearchParam('test', 123);
66
66
  expect(testSearchParam.getValue()).toBe(1);
67
67
  });
68
68
  });
69
- it('should update the observable value on push / replace states', () => {
70
- using(new Injector(), (i) => {
69
+ it('should update the observable value on push / replace states', async () => {
70
+ await usingAsync(new Injector(), async (i) => {
71
71
  const service = i.getInstance(LocationService);
72
72
  history.pushState(null, '', `/loc1?test=${serializeValue(1)}`);
73
73
  const testSearchParam = service.useSearchParam('test', 234);
@@ -76,8 +76,8 @@ describe('LocationService', () => {
76
76
  expect(testSearchParam.getValue()).toBe('2');
77
77
  });
78
78
  });
79
- it('Should update the URL based on search value change', () => {
80
- using(new Injector(), (i) => {
79
+ it('Should update the URL based on search value change', async () => {
80
+ await usingAsync(new Injector(), async (i) => {
81
81
  const service = i.getInstance(LocationService);
82
82
  history.pushState(null, '', `/loc1?test=${serializeValue('2')}`);
83
83
  const testSearchParam = service.useSearchParam('test', '');
@@ -85,13 +85,21 @@ describe('LocationService', () => {
85
85
  expect(location.search).toBe('?test=IjIi');
86
86
  });
87
87
  });
88
- it('Should use custom serializer and deserializer', () => {
89
- using(new Injector(), (i) => {
88
+ it('Should throw an error when trying to use a custom serializer after LocationService has been instantiated', async () => {
89
+ await usingAsync(new Injector(), async (i) => {
90
90
  const customSerializer = vi.fn((value) => serializeToQueryString(value));
91
91
  const customDeserializer = vi.fn((value) => deserializeQueryString(value));
92
+ i.getInstance(LocationService);
93
+ expect(() => useCustomSearchStateSerializer(i, customSerializer, customDeserializer)).toThrowError('useCustomSearchStateSerializer must be called before the LocationService is instantiated');
94
+ });
95
+ });
96
+ it('Should use custom serializer and deserializer', async () => {
97
+ await usingAsync(new Injector(), async (i) => {
98
+ const customSerializer = vi.fn((value) => serializeToQueryString(value));
99
+ const customDeserializer = vi.fn((value) => deserializeQueryString(value));
100
+ useCustomSearchStateSerializer(i, customSerializer, customDeserializer);
92
101
  const locationService = i.getInstance(LocationService);
93
102
  const testSearchParam = locationService.useSearchParam('test', { value: 'foo' });
94
- useCustomSearchStateSerializer(i, customSerializer, customDeserializer);
95
103
  testSearchParam.setValue({ value: 'bar' });
96
104
  expect(customSerializer).toBeCalledWith({ test: { value: 'bar' } });
97
105
  expect(customDeserializer).toBeCalledWith('?test=eyJ2YWx1ZSI6ImJhciJ9');