@owlmeans/client 0.1.10 → 0.1.14
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.
- package/agent-meta/instructions/client.instructions.md +1 -1
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/client/SKILL.md +1 -1
- package/build/app.js +2 -2
- package/build/app.js.map +1 -1
- package/build/router.d.ts.map +1 -1
- package/build/router.js +11 -4
- package/build/router.js.map +1 -1
- package/build/types.d.ts +9 -1
- package/build/types.d.ts.map +1 -1
- package/build/utils/router.d.ts +1 -1
- package/build/utils/router.d.ts.map +1 -1
- package/package.json +15 -16
- package/src/app.tsx +2 -2
- package/src/router.ts +13 -5
- package/src/types.ts +9 -1
package/agent-meta/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"package": "@owlmeans/client",
|
|
4
|
-
"version": "0.1.
|
|
5
|
-
"generatedAt": "2026-
|
|
4
|
+
"version": "0.1.14",
|
|
5
|
+
"generatedAt": "2026-08-05T16:56:53.379Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
package/build/app.js
CHANGED
|
@@ -2,9 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useEffect, useState } from 'react';
|
|
3
3
|
import { Context } from './context.js';
|
|
4
4
|
import { Router } from './router.js';
|
|
5
|
-
export const App = ({ context, provide, children }) => {
|
|
5
|
+
export const App = ({ context, provide, noRouter, children }) => {
|
|
6
6
|
const [render, rerender] = useState(0);
|
|
7
7
|
useEffect(() => context.registerRerenderer(() => rerender(render + 1)), []);
|
|
8
|
-
return _jsxs(Context, { value: context, children: [children,
|
|
8
|
+
return _jsxs(Context, { value: context, children: [children, noRouter !== true ? _jsx(Router, { provide: provide }) : undefined] });
|
|
9
9
|
};
|
|
10
10
|
//# sourceMappingURL=app.js.map
|
package/build/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,MAAM,GAAG,GAAiB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,MAAM,GAAG,GAAiB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC5E,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEtC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAE3E,OAAO,MAAC,OAAO,IAAC,KAAK,EAAE,OAAO,aAC3B,QAAQ,EACR,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC,CAAC,SAAS,IACrD,CAAA;AACZ,CAAC,CAAA"}
|
package/build/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAkB,MAAM,YAAY,CAAA;AAc1E,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CAkClC,CAAA;AAED,eAAO,MAAM,eAAe,QAAO,WAgClC,CAAA"}
|
package/build/router.js
CHANGED
|
@@ -6,15 +6,22 @@ import { assertContext } from '@owlmeans/context';
|
|
|
6
6
|
export const Router = ({ provide }) => {
|
|
7
7
|
const progress = useRef(false);
|
|
8
8
|
const context = useContext();
|
|
9
|
-
|
|
9
|
+
// Default to the active router plugin's compiler when no explicit provider is
|
|
10
|
+
// passed — this is the standard OwlMeans routing path.
|
|
11
|
+
const provideFn = typeof provide === 'function'
|
|
12
|
+
? provide
|
|
13
|
+
: provide == null
|
|
14
|
+
? (routes => context.router().compile(routes))
|
|
15
|
+
: undefined;
|
|
16
|
+
const [router, setRouter] = useState((provideFn != null ? undefined : provide));
|
|
10
17
|
// @TODO We expect that this use memo will do the trick and we don't need to useEffect
|
|
11
18
|
// @TODO Show debug only in debug mode
|
|
12
19
|
useEffect(() => {
|
|
13
20
|
if (!progress.current && !context.cfg.ready) {
|
|
14
21
|
progress.current = true;
|
|
15
|
-
if (
|
|
16
|
-
initializeRouter(context).then(
|
|
17
|
-
.then(
|
|
22
|
+
if (provideFn != null) {
|
|
23
|
+
initializeRouter(context).then(routes => provideFn(routes))
|
|
24
|
+
.then(router => setRouter(router));
|
|
18
25
|
}
|
|
19
26
|
}
|
|
20
27
|
}, []);
|
package/build/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAOjD,MAAM,CAAC,MAAM,MAAM,GAAoB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAE5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAClC,CAAC,
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
package/build/types.d.ts
CHANGED
|
@@ -15,11 +15,19 @@ export interface RouterProvider {
|
|
|
15
15
|
(routes: RouteObject[]): LibraryRouter | Promise<LibraryRouter>;
|
|
16
16
|
}
|
|
17
17
|
export interface RouterProps {
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* How to turn the resolved route IR into a library router. When omitted, the
|
|
20
|
+
* active router plugin's `compile` (via `context.router().compile`) is used —
|
|
21
|
+
* the default OwlMeans routing path. A function receives the routes; a value is
|
|
22
|
+
* treated as an already-built library router.
|
|
23
|
+
*/
|
|
24
|
+
provide?: RouterProvider | LibraryRouter;
|
|
19
25
|
}
|
|
20
26
|
export interface AppProps extends PropsWithChildren {
|
|
21
27
|
context: ClientContext<any>;
|
|
22
28
|
provide?: RouterProvider | LibraryRouter;
|
|
29
|
+
/** Opt out of mounting the router (e.g. when routing is hosted elsewhere). */
|
|
30
|
+
noRouter?: boolean;
|
|
23
31
|
}
|
|
24
32
|
export interface RoutedComponent<ExtraProps = {}> extends FC<PropsWithChildren<ModuleContextParams & ExtraProps>> {
|
|
25
33
|
}
|
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AACjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAG7G,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,OAAO,EAAE,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;CACpG;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;CAChE;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,cAAc,GAAG,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/build/utils/router.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ interface Context<C extends Config = Config> extends ClientContext<C> {
|
|
|
6
6
|
}
|
|
7
7
|
export declare const buildModuleTree: <R, C extends Config = Config, T extends Context<C> = Context<C>>(context: T) => ModuleTree<R>;
|
|
8
8
|
export declare const visitModuleTree: <T, R>(tree: ModuleTree<T>, visitor: ModuleTreeVisitor<T, R>) => Promise<R[]>;
|
|
9
|
-
export declare const initializeRouter: (context: Context) => Promise<
|
|
9
|
+
export declare const initializeRouter: (context: Context) => Promise<import("@owlmeans/router").RouteObject[]>;
|
|
10
10
|
export interface ModuleTreeVisitor<T, R> {
|
|
11
11
|
(module: ClientEntrypoint<T>, children: R[], alone: boolean): Promise<R>;
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/utils/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,KAAK,MAAM,GAAG,YAAY,CAAA;AAC1B,UAAU,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;CAAI;AAEzE,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,KAAG,UAAU,CAAC,CAAC,CA2BzH,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,CAAC,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,EAAE,CAKpF,CAAA;AAE3B,eAAO,MAAM,gBAAgB,GAAU,SAAS,OAAO,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/utils/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,KAAK,MAAM,GAAG,YAAY,CAAA;AAC1B,UAAU,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;CAAI;AAEzE,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,KAAG,UAAU,CAAC,CAAC,CA2BzH,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,CAAC,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,EAAE,CAKpF,CAAA;AAE3B,eAAO,MAAM,gBAAgB,GAAU,SAAS,OAAO,sDAOtD,CAAA;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC;IACrC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CACzE;AAED,UAAU,UAAU,CAAC,CAAC,CAAE,SAAQ,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACtE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/client",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -28,17 +28,17 @@
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@owlmeans/auth": "^0.1.
|
|
32
|
-
"@owlmeans/client-context": "^0.1.
|
|
33
|
-
"@owlmeans/client-entrypoint": "^0.1.
|
|
34
|
-
"@owlmeans/client-resource": "^0.1.
|
|
35
|
-
"@owlmeans/config": "^0.1.
|
|
36
|
-
"@owlmeans/context": "^0.1.
|
|
37
|
-
"@owlmeans/error": "^0.1.
|
|
38
|
-
"@owlmeans/entrypoint": "^0.1.
|
|
39
|
-
"@owlmeans/resource": "^0.1.
|
|
40
|
-
"@owlmeans/router": "^0.1.
|
|
41
|
-
"@owlmeans/state": "^0.1.
|
|
31
|
+
"@owlmeans/auth": "^0.1.14",
|
|
32
|
+
"@owlmeans/client-context": "^0.1.14",
|
|
33
|
+
"@owlmeans/client-entrypoint": "^0.1.14",
|
|
34
|
+
"@owlmeans/client-resource": "^0.1.14",
|
|
35
|
+
"@owlmeans/config": "^0.1.14",
|
|
36
|
+
"@owlmeans/context": "^0.1.14",
|
|
37
|
+
"@owlmeans/error": "^0.1.14",
|
|
38
|
+
"@owlmeans/entrypoint": "^0.1.14",
|
|
39
|
+
"@owlmeans/resource": "^0.1.14",
|
|
40
|
+
"@owlmeans/router": "^0.1.14",
|
|
41
|
+
"@owlmeans/state": "^0.1.14"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"@remix-run/router": "*",
|
|
@@ -51,10 +51,9 @@
|
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@owlmeans/dep-config": "workspace:*",
|
|
54
|
-
"@types/react": "^19.2.
|
|
55
|
-
"nodemon": "^3.1.
|
|
56
|
-
"
|
|
57
|
-
"typescript": "^6.0.2"
|
|
54
|
+
"@types/react": "^19.2.17",
|
|
55
|
+
"nodemon": "^3.1.14",
|
|
56
|
+
"typescript": "^6.0.3"
|
|
58
57
|
},
|
|
59
58
|
"publishConfig": {
|
|
60
59
|
"access": "public"
|
package/src/app.tsx
CHANGED
|
@@ -5,13 +5,13 @@ import { useEffect, useState } from 'react'
|
|
|
5
5
|
import { Context } from './context.js'
|
|
6
6
|
import { Router } from './router.js'
|
|
7
7
|
|
|
8
|
-
export const App: FC<AppProps> = ({ context, provide, children }) => {
|
|
8
|
+
export const App: FC<AppProps> = ({ context, provide, noRouter, children }) => {
|
|
9
9
|
const [render, rerender] = useState(0)
|
|
10
10
|
|
|
11
11
|
useEffect(() => context.registerRerenderer(() => rerender(render + 1)), [])
|
|
12
12
|
|
|
13
13
|
return <Context value={context}>
|
|
14
14
|
{children}
|
|
15
|
-
{
|
|
15
|
+
{noRouter !== true ? <Router provide={provide} /> : undefined}
|
|
16
16
|
</Context>
|
|
17
17
|
}
|
package/src/router.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FC } from 'react'
|
|
2
|
-
import type { RouterModel, RouterProps } from './types.js'
|
|
2
|
+
import type { RouterModel, RouterProps, RouterProvider } from './types.js'
|
|
3
3
|
import { createElement, useEffect, useRef, useState } from 'react'
|
|
4
4
|
import { buildModuleTree, initializeRouter, visitModuleTree } from './utils/router.js'
|
|
5
5
|
import { createRouteRenderer } from './utils/route.js'
|
|
@@ -17,8 +17,16 @@ export const Router: FC<RouterProps> = ({ provide }) => {
|
|
|
17
17
|
const progress = useRef(false)
|
|
18
18
|
const context = useContext()
|
|
19
19
|
|
|
20
|
+
// Default to the active router plugin's compiler when no explicit provider is
|
|
21
|
+
// passed — this is the standard OwlMeans routing path.
|
|
22
|
+
const provideFn: RouterProvider | undefined = typeof provide === 'function'
|
|
23
|
+
? (provide as RouterProvider)
|
|
24
|
+
: provide == null
|
|
25
|
+
? (routes => context.router().compile(routes))
|
|
26
|
+
: undefined
|
|
27
|
+
|
|
20
28
|
const [router, setRouter] = useState<LibraryRouter>(
|
|
21
|
-
(
|
|
29
|
+
(provideFn != null ? undefined : provide) as LibraryRouter
|
|
22
30
|
)
|
|
23
31
|
// @TODO We expect that this use memo will do the trick and we don't need to useEffect
|
|
24
32
|
// @TODO Show debug only in debug mode
|
|
@@ -26,9 +34,9 @@ export const Router: FC<RouterProps> = ({ provide }) => {
|
|
|
26
34
|
if (!progress.current && !context.cfg.ready) {
|
|
27
35
|
progress.current = true
|
|
28
36
|
|
|
29
|
-
if (
|
|
30
|
-
initializeRouter(context as any).then(
|
|
31
|
-
.then(
|
|
37
|
+
if (provideFn != null) {
|
|
38
|
+
initializeRouter(context as any).then(routes => provideFn(routes))
|
|
39
|
+
.then(router => setRouter(router))
|
|
32
40
|
}
|
|
33
41
|
}
|
|
34
42
|
}, [])
|
package/src/types.ts
CHANGED
|
@@ -19,12 +19,20 @@ export interface RouterProvider {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export interface RouterProps {
|
|
22
|
-
|
|
22
|
+
/**
|
|
23
|
+
* How to turn the resolved route IR into a library router. When omitted, the
|
|
24
|
+
* active router plugin's `compile` (via `context.router().compile`) is used —
|
|
25
|
+
* the default OwlMeans routing path. A function receives the routes; a value is
|
|
26
|
+
* treated as an already-built library router.
|
|
27
|
+
*/
|
|
28
|
+
provide?: RouterProvider | LibraryRouter
|
|
23
29
|
}
|
|
24
30
|
|
|
25
31
|
export interface AppProps extends PropsWithChildren {
|
|
26
32
|
context: ClientContext<any>
|
|
27
33
|
provide?: RouterProvider | LibraryRouter
|
|
34
|
+
/** Opt out of mounting the router (e.g. when routing is hosted elsewhere). */
|
|
35
|
+
noRouter?: boolean
|
|
28
36
|
}
|
|
29
37
|
|
|
30
38
|
export interface RoutedComponent<ExtraProps = {}> extends FC<PropsWithChildren<ModuleContextParams & ExtraProps>> {
|