@owlmeans/router 0.1.1
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/README.md +24 -0
- package/build/.gitkeep +0 -0
- package/build/consts.d.ts +3 -0
- package/build/consts.d.ts.map +1 -0
- package/build/consts.js +3 -0
- package/build/consts.js.map +1 -0
- package/build/index.d.ts +4 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +3 -0
- package/build/index.js.map +1 -0
- package/build/service.d.ts +3 -0
- package/build/service.d.ts.map +1 -0
- package/build/service.js +23 -0
- package/build/service.js.map +1 -0
- package/build/types.d.ts +44 -0
- package/build/types.d.ts.map +1 -0
- package/build/types.js +2 -0
- package/build/types.js.map +1 -0
- package/package.json +37 -0
- package/src/consts.ts +4 -0
- package/src/index.ts +4 -0
- package/src/service.ts +29 -0
- package/src/types.ts +56 -0
- package/tsconfig.json +16 -0
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# OwlMeans Package Template
|
|
2
|
+
|
|
3
|
+
This is a template directory for creating new packages within the OwlMeans Common Libraries ecosystem.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
Copy this template directory when creating a new package:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
cp -r packages/_tpl packages/your-new-package
|
|
11
|
+
cd packages/your-new-package
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Then update:
|
|
15
|
+
- `package.json` - Change the package name and dependencies
|
|
16
|
+
- `README.md` - Replace with proper documentation following OwlMeans standards
|
|
17
|
+
- `src/index.ts` - Implement your package functionality
|
|
18
|
+
|
|
19
|
+
## Template Structure
|
|
20
|
+
|
|
21
|
+
- **package.json** - Base package configuration with common scripts and exports
|
|
22
|
+
- **tsconfig.json** - TypeScript configuration aligned with OwlMeans standards
|
|
23
|
+
- **src/index.ts** - Entry point file
|
|
24
|
+
- **README.md** - This template documentation (replace with actual docs)
|
package/build/.gitkeep
ADDED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,mBAAmB,CAAA;AAE7C,eAAO,MAAM,cAAc,mBAAgB,CAAA"}
|
package/build/consts.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAA;AAE7C,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAA"}
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,mBAAmB,YAAY,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA"}
|
package/build/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,eAAO,MAAM,iBAAiB,GAAI,QAAO,MAAsB,KAAG,aAwBjE,CAAA"}
|
package/build/service.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createService } from "@owlmeans/context";
|
|
2
|
+
import { DEFAULT_ALIAS } from "./consts.js";
|
|
3
|
+
export const makeRouterService = (alias = DEFAULT_ALIAS) => {
|
|
4
|
+
const service = createService(alias, {
|
|
5
|
+
outlet: () => {
|
|
6
|
+
throw new Error('Router Outlet is not implemented');
|
|
7
|
+
},
|
|
8
|
+
provider: () => {
|
|
9
|
+
throw new Error('Router Provider is not implemented');
|
|
10
|
+
},
|
|
11
|
+
useParams: () => {
|
|
12
|
+
throw new Error('Router useParams is not implemented');
|
|
13
|
+
},
|
|
14
|
+
useLocation: () => {
|
|
15
|
+
throw new Error('Router useLocation is not implemented');
|
|
16
|
+
},
|
|
17
|
+
useNavigate: () => {
|
|
18
|
+
throw new Error('Router useNavigate is not implemented');
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
return service;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAG3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,aAAa,EAAiB,EAAE;IAChF,MAAM,OAAO,GAAG,aAAa,CAAgB,KAAK,EAAE;QAClD,MAAM,EAAE,GAAG,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACrD,CAAC;QAED,QAAQ,EAAE,GAAG,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QAED,SAAS,EAAE,GAAG,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QAED,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC1D,CAAC;QAED,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC1D,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
package/build/types.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { InitializedService } from "@owlmeans/context";
|
|
2
|
+
export type { ComponentType } from 'react';
|
|
3
|
+
export type LibraryRouter = unknown;
|
|
4
|
+
export type RouteObject = unknown;
|
|
5
|
+
export type RouterProvider = React.ComponentType<any>;
|
|
6
|
+
export interface RouterService extends InitializedService {
|
|
7
|
+
outlet: () => React.ComponentType;
|
|
8
|
+
provider: () => RouterProvider;
|
|
9
|
+
useParams: UseParamsHook;
|
|
10
|
+
useLocation: UseLocationHook;
|
|
11
|
+
useNavigate: UseNavigateHook;
|
|
12
|
+
}
|
|
13
|
+
export type RouteParams = Record<string, string | undefined>;
|
|
14
|
+
export interface UseParamsHook {
|
|
15
|
+
<T extends RouteParams = RouteParams>(): T;
|
|
16
|
+
}
|
|
17
|
+
export interface Path {
|
|
18
|
+
pathname: string;
|
|
19
|
+
search: string;
|
|
20
|
+
hash: string;
|
|
21
|
+
}
|
|
22
|
+
export interface Location<State = any> extends Path {
|
|
23
|
+
state: State;
|
|
24
|
+
key: string;
|
|
25
|
+
}
|
|
26
|
+
export interface UseLocationHook {
|
|
27
|
+
(): Location;
|
|
28
|
+
}
|
|
29
|
+
interface NavigateOptions {
|
|
30
|
+
replace?: boolean;
|
|
31
|
+
state?: any;
|
|
32
|
+
preventScrollReset?: boolean;
|
|
33
|
+
relative?: "route" | "path";
|
|
34
|
+
flushSync?: boolean;
|
|
35
|
+
viewTransition?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface NavigateFunction {
|
|
38
|
+
(to: string | Partial<Path>, options?: NavigateOptions): void | Promise<void>;
|
|
39
|
+
(delta: number): void | Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
export interface UseNavigateHook {
|
|
42
|
+
(): NavigateFunction;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,MAAM,MAAM,aAAa,GAAG,OAAO,CAAA;AAEnC,MAAM,MAAM,WAAW,GAAG,OAAO,CAAA;AAEjC,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;AAErD,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD,MAAM,EAAE,MAAM,KAAK,CAAC,aAAa,CAAA;IACjC,QAAQ,EAAE,MAAM,cAAc,CAAA;IAC9B,SAAS,EAAE,aAAa,CAAA;IACxB,WAAW,EAAE,eAAe,CAAA;IAC5B,WAAW,EAAE,eAAe,CAAA;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;AAE5D,MAAM,WAAW,aAAa;IAC5B,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,KAAK,CAAC,CAAA;CAC3C;AAED,MAAM,WAAW,IAAI;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAE,SAAQ,IAAI;IACjD,KAAK,EAAE,KAAK,CAAA;IAEZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,QAAQ,CAAA;CACb;AAED,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7E,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,gBAAgB,CAAA;CACrB"}
|
package/build/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@owlmeans/router",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"build": "tsc -b",
|
|
7
|
+
"dev": "sleep 60 && nodemon -e ts,tsx,json --watch src --exec \"tsc -p ./tsconfig.json\"",
|
|
8
|
+
"watch": "tsc -b -w --preserveWatchOutput --pretty"
|
|
9
|
+
},
|
|
10
|
+
"main": "build/index.js",
|
|
11
|
+
"module": "build/index.js",
|
|
12
|
+
"types": "build/index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"import": "./build/index.js",
|
|
16
|
+
"require": "./build/index.js",
|
|
17
|
+
"default": "./build/index.js",
|
|
18
|
+
"module": "./build/index.js",
|
|
19
|
+
"types": "./build/index.d.ts"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@owlmeans/context": "^0.1.1"
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"react": "*"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@types/node": "^24.10.1",
|
|
30
|
+
"@types/react": "^19.2.7",
|
|
31
|
+
"nodemon": "^3.1.11",
|
|
32
|
+
"typescript": "^5.8.3"
|
|
33
|
+
},
|
|
34
|
+
"publishConfig": {
|
|
35
|
+
"access": "public"
|
|
36
|
+
}
|
|
37
|
+
}
|
package/src/consts.ts
ADDED
package/src/index.ts
ADDED
package/src/service.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createService } from "@owlmeans/context"
|
|
2
|
+
import { DEFAULT_ALIAS } from "./consts.js"
|
|
3
|
+
import type { RouterService } from "./types"
|
|
4
|
+
|
|
5
|
+
export const makeRouterService = (alias: string = DEFAULT_ALIAS): RouterService => {
|
|
6
|
+
const service = createService<RouterService>(alias, {
|
|
7
|
+
outlet: () => {
|
|
8
|
+
throw new Error('Router Outlet is not implemented')
|
|
9
|
+
},
|
|
10
|
+
|
|
11
|
+
provider: () => {
|
|
12
|
+
throw new Error('Router Provider is not implemented')
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
useParams: () => {
|
|
16
|
+
throw new Error('Router useParams is not implemented')
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
useLocation: () => {
|
|
20
|
+
throw new Error('Router useLocation is not implemented')
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
useNavigate: () => {
|
|
24
|
+
throw new Error('Router useNavigate is not implemented')
|
|
25
|
+
}
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
return service
|
|
29
|
+
}
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { InitializedService } from "@owlmeans/context"
|
|
2
|
+
export type { ComponentType } from 'react'
|
|
3
|
+
|
|
4
|
+
export type LibraryRouter = unknown
|
|
5
|
+
|
|
6
|
+
export type RouteObject = unknown
|
|
7
|
+
|
|
8
|
+
export type RouterProvider = React.ComponentType<any>
|
|
9
|
+
|
|
10
|
+
export interface RouterService extends InitializedService {
|
|
11
|
+
outlet: () => React.ComponentType
|
|
12
|
+
provider: () => RouterProvider
|
|
13
|
+
useParams: UseParamsHook
|
|
14
|
+
useLocation: UseLocationHook
|
|
15
|
+
useNavigate: UseNavigateHook
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export type RouteParams = Record<string, string | undefined>
|
|
19
|
+
|
|
20
|
+
export interface UseParamsHook {
|
|
21
|
+
<T extends RouteParams = RouteParams>(): T
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface Path {
|
|
25
|
+
pathname: string
|
|
26
|
+
search: string
|
|
27
|
+
hash: string
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface Location<State = any> extends Path {
|
|
31
|
+
state: State
|
|
32
|
+
|
|
33
|
+
key: string
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface UseLocationHook {
|
|
37
|
+
(): Location
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
interface NavigateOptions {
|
|
41
|
+
replace?: boolean
|
|
42
|
+
state?: any
|
|
43
|
+
preventScrollReset?: boolean
|
|
44
|
+
relative?: "route" | "path"
|
|
45
|
+
flushSync?: boolean
|
|
46
|
+
viewTransition?: boolean
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface NavigateFunction {
|
|
50
|
+
(to: string | Partial<Path>, options?: NavigateOptions): void | Promise<void>
|
|
51
|
+
(delta: number): void | Promise<void>
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface UseNavigateHook {
|
|
55
|
+
(): NavigateFunction
|
|
56
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": [
|
|
3
|
+
"../tsconfig.default.json",
|
|
4
|
+
"../tsconfig.react.json",
|
|
5
|
+
],
|
|
6
|
+
"compilerOptions": {
|
|
7
|
+
"rootDir": "./src/", /* Specify the root folder within your source files. */
|
|
8
|
+
"outDir": "./build/", /* Specify an output folder for all emitted files. */
|
|
9
|
+
"moduleResolution": "Bundler",
|
|
10
|
+
},
|
|
11
|
+
"exclude": [
|
|
12
|
+
"./dist/**/*",
|
|
13
|
+
"./build/**/*",
|
|
14
|
+
"./*.ts"
|
|
15
|
+
]
|
|
16
|
+
}
|