@hamak/ui-remote-resource-impl 0.4.19
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/dist/es2015/index.js +33 -0
- package/dist/es2015/middleware/entity-middleware.js +209 -0
- package/dist/es2015/middleware/entity-sync-middleware.js +36 -0
- package/dist/es2015/middleware/resource-middleware.js +111 -0
- package/dist/es2015/middleware/sync-middleware.js +85 -0
- package/dist/es2015/plugin/resource-plugin-factory.js +151 -0
- package/dist/es2015/providers/mock-resource-provider.js +215 -0
- package/dist/es2015/providers/rest-resource-provider.js +140 -0
- package/dist/es2015/registry/entity-registry.js +50 -0
- package/dist/es2015/registry/resource-registry.js +68 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/middleware/entity-middleware.d.ts +13 -0
- package/dist/middleware/entity-middleware.d.ts.map +1 -0
- package/dist/middleware/entity-middleware.js +221 -0
- package/dist/middleware/entity-sync-middleware.d.ts +7 -0
- package/dist/middleware/entity-sync-middleware.d.ts.map +1 -0
- package/dist/middleware/entity-sync-middleware.js +31 -0
- package/dist/middleware/resource-middleware.d.ts +13 -0
- package/dist/middleware/resource-middleware.d.ts.map +1 -0
- package/dist/middleware/resource-middleware.js +97 -0
- package/dist/middleware/sync-middleware.d.ts +12 -0
- package/dist/middleware/sync-middleware.d.ts.map +1 -0
- package/dist/middleware/sync-middleware.js +80 -0
- package/dist/plugin/resource-plugin-factory.d.ts +31 -0
- package/dist/plugin/resource-plugin-factory.d.ts.map +1 -0
- package/dist/plugin/resource-plugin-factory.js +131 -0
- package/dist/providers/mock-resource-provider.d.ts +147 -0
- package/dist/providers/mock-resource-provider.d.ts.map +1 -0
- package/dist/providers/mock-resource-provider.js +196 -0
- package/dist/providers/rest-resource-provider.d.ts +51 -0
- package/dist/providers/rest-resource-provider.d.ts.map +1 -0
- package/dist/providers/rest-resource-provider.js +117 -0
- package/dist/registry/entity-registry.d.ts +54 -0
- package/dist/registry/entity-registry.d.ts.map +1 -0
- package/dist/registry/entity-registry.js +46 -0
- package/dist/registry/resource-registry.d.ts +80 -0
- package/dist/registry/resource-registry.d.ts.map +1 -0
- package/dist/registry/resource-registry.js +64 -0
- package/package.json +57 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { IResourceProvider } from '@hamak/ui-remote-resource-spi';
|
|
2
|
+
import type { ResourceEndpointDefinition } from '@hamak/ui-remote-resource-spi';
|
|
3
|
+
/**
|
|
4
|
+
* Internal registry interface with write operations
|
|
5
|
+
*/
|
|
6
|
+
export interface IResourceRegistryInternal {
|
|
7
|
+
/**
|
|
8
|
+
* Register a resource endpoint
|
|
9
|
+
*/
|
|
10
|
+
registerEndpoint(definition: ResourceEndpointDefinition): void;
|
|
11
|
+
/**
|
|
12
|
+
* Unregister a resource endpoint
|
|
13
|
+
*/
|
|
14
|
+
unregisterEndpoint(id: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Get endpoint definition by ID
|
|
17
|
+
*/
|
|
18
|
+
getEndpoint(id: string): ResourceEndpointDefinition | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Get all registered endpoints
|
|
21
|
+
*/
|
|
22
|
+
getAllEndpoints(): ResourceEndpointDefinition[];
|
|
23
|
+
/**
|
|
24
|
+
* Check if endpoint exists
|
|
25
|
+
*/
|
|
26
|
+
hasEndpoint(id: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Register a resource provider
|
|
29
|
+
*/
|
|
30
|
+
registerProvider(provider: IResourceProvider): void;
|
|
31
|
+
/**
|
|
32
|
+
* Get provider by type
|
|
33
|
+
*/
|
|
34
|
+
getProvider(type: string): IResourceProvider | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Get all registered providers
|
|
37
|
+
*/
|
|
38
|
+
getAllProviders(): IResourceProvider[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resource registry implementation
|
|
42
|
+
* Manages resource endpoint definitions and providers
|
|
43
|
+
*/
|
|
44
|
+
export declare class ResourceRegistry implements IResourceRegistryInternal {
|
|
45
|
+
private endpoints;
|
|
46
|
+
private providers;
|
|
47
|
+
/**
|
|
48
|
+
* Register a resource endpoint
|
|
49
|
+
*/
|
|
50
|
+
registerEndpoint(definition: ResourceEndpointDefinition): void;
|
|
51
|
+
/**
|
|
52
|
+
* Unregister a resource endpoint
|
|
53
|
+
*/
|
|
54
|
+
unregisterEndpoint(id: string): void;
|
|
55
|
+
/**
|
|
56
|
+
* Get endpoint definition by ID
|
|
57
|
+
*/
|
|
58
|
+
getEndpoint(id: string): ResourceEndpointDefinition | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Get all registered endpoints
|
|
61
|
+
*/
|
|
62
|
+
getAllEndpoints(): ResourceEndpointDefinition[];
|
|
63
|
+
/**
|
|
64
|
+
* Check if endpoint exists
|
|
65
|
+
*/
|
|
66
|
+
hasEndpoint(id: string): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Register a resource provider
|
|
69
|
+
*/
|
|
70
|
+
registerProvider(provider: IResourceProvider): void;
|
|
71
|
+
/**
|
|
72
|
+
* Get provider by type
|
|
73
|
+
*/
|
|
74
|
+
getProvider(type: string): IResourceProvider | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Get all registered providers
|
|
77
|
+
*/
|
|
78
|
+
getAllProviders(): IResourceProvider[];
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=resource-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-registry.d.ts","sourceRoot":"","sources":["../../src/registry/resource-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAE/D;;OAEG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS,CAAC;IAEhE;;OAEG;IACH,eAAe,IAAI,0BAA0B,EAAE,CAAC;IAEhD;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEpD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAEzD;;OAEG;IACH,eAAe,IAAI,iBAAiB,EAAE,CAAC;CACxC;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,yBAAyB;IAChE,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,SAAS,CAA6C;IAE9D;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,0BAA0B,GAAG,IAAI;IAU9D;;OAEG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS;IAI/D;;OAEG;IACH,eAAe,IAAI,0BAA0B,EAAE;IAI/C;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAUnD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIxD;;OAEG;IACH,eAAe,IAAI,iBAAiB,EAAE;CAGvC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource registry implementation
|
|
3
|
+
* Manages resource endpoint definitions and providers
|
|
4
|
+
*/
|
|
5
|
+
export class ResourceRegistry {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.endpoints = new Map();
|
|
8
|
+
this.providers = new Map();
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Register a resource endpoint
|
|
12
|
+
*/
|
|
13
|
+
registerEndpoint(definition) {
|
|
14
|
+
if (this.endpoints.has(definition.id)) {
|
|
15
|
+
console.warn(`Resource endpoint "${definition.id}" is already registered. Overwriting.`);
|
|
16
|
+
}
|
|
17
|
+
this.endpoints.set(definition.id, definition);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Unregister a resource endpoint
|
|
21
|
+
*/
|
|
22
|
+
unregisterEndpoint(id) {
|
|
23
|
+
this.endpoints.delete(id);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get endpoint definition by ID
|
|
27
|
+
*/
|
|
28
|
+
getEndpoint(id) {
|
|
29
|
+
return this.endpoints.get(id);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get all registered endpoints
|
|
33
|
+
*/
|
|
34
|
+
getAllEndpoints() {
|
|
35
|
+
return Array.from(this.endpoints.values());
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Check if endpoint exists
|
|
39
|
+
*/
|
|
40
|
+
hasEndpoint(id) {
|
|
41
|
+
return this.endpoints.has(id);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Register a resource provider
|
|
45
|
+
*/
|
|
46
|
+
registerProvider(provider) {
|
|
47
|
+
if (this.providers.has(provider.type)) {
|
|
48
|
+
console.warn(`Resource provider "${provider.type}" is already registered. Overwriting.`);
|
|
49
|
+
}
|
|
50
|
+
this.providers.set(provider.type, provider);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get provider by type
|
|
54
|
+
*/
|
|
55
|
+
getProvider(type) {
|
|
56
|
+
return this.providers.get(type);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get all registered providers
|
|
60
|
+
*/
|
|
61
|
+
getAllProviders() {
|
|
62
|
+
return Array.from(this.providers.values());
|
|
63
|
+
}
|
|
64
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@hamak/ui-remote-resource-impl",
|
|
3
|
+
"version": "0.4.19",
|
|
4
|
+
"private": false,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"description": "Remote Resource Implementation - Redux middleware and providers for remote resource management",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"sideEffects": false,
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/amah/app-framework.git",
|
|
16
|
+
"directory": "packages/ui-remote-resource/ui-remote-resource-impl"
|
|
17
|
+
},
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "tsc -p tsconfig.json && tsc -p tsconfig.es2015.json",
|
|
23
|
+
"clean": "rm -rf dist",
|
|
24
|
+
"test": "vitest run",
|
|
25
|
+
"test:watch": "vitest",
|
|
26
|
+
"test:coverage": "vitest run --coverage"
|
|
27
|
+
},
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"import": "./dist/index.js",
|
|
32
|
+
"default": "./dist/index.js",
|
|
33
|
+
"legacy": "./dist/es2015/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./es2015": {
|
|
36
|
+
"import": "./dist/es2015/index.js",
|
|
37
|
+
"default": "./dist/es2015/index.js"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@hamak/shared-utils": "*",
|
|
42
|
+
"@hamak/ui-store-api": "*",
|
|
43
|
+
"@hamak/ui-remote-resource-api": "*",
|
|
44
|
+
"@hamak/ui-remote-resource-spi": "*",
|
|
45
|
+
"@hamak/microkernel-api": "*",
|
|
46
|
+
"axios": "^1.6.0",
|
|
47
|
+
"redux": "^5.0.1",
|
|
48
|
+
"uuid": "^9.0.0"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@types/node": "^20.0.0",
|
|
52
|
+
"@types/uuid": "^9.0.0",
|
|
53
|
+
"@vitest/coverage-v8": "^2.0.0",
|
|
54
|
+
"typescript": "~5.4.0",
|
|
55
|
+
"vitest": "^2.0.0"
|
|
56
|
+
}
|
|
57
|
+
}
|