@hamak/ui-store 0.5.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 +143 -0
- package/dist/api/api/index.d.ts +7 -0
- package/dist/api/api/index.d.ts.map +1 -0
- package/dist/api/api/index.js +6 -0
- package/dist/api/api/middleware-registry.d.ts +33 -0
- package/dist/api/api/middleware-registry.d.ts.map +1 -0
- package/dist/api/api/middleware-registry.js +5 -0
- package/dist/api/api/reducer-registry.d.ts +41 -0
- package/dist/api/api/reducer-registry.d.ts.map +1 -0
- package/dist/api/api/reducer-registry.js +5 -0
- package/dist/api/api/store-manager.d.ts +55 -0
- package/dist/api/api/store-manager.d.ts.map +1 -0
- package/dist/api/api/store-manager.js +5 -0
- package/dist/api/autosave/autosave-action-factory.d.ts +69 -0
- package/dist/api/autosave/autosave-action-factory.d.ts.map +1 -0
- package/dist/api/autosave/autosave-action-factory.js +135 -0
- package/dist/api/autosave/autosave-action-types.d.ts +134 -0
- package/dist/api/autosave/autosave-action-types.d.ts.map +1 -0
- package/dist/api/autosave/autosave-action-types.js +44 -0
- package/dist/api/autosave/autosave-types.d.ts +86 -0
- package/dist/api/autosave/autosave-types.d.ts.map +1 -0
- package/dist/api/autosave/autosave-types.js +35 -0
- package/dist/api/autosave/index.d.ts +9 -0
- package/dist/api/autosave/index.d.ts.map +1 -0
- package/dist/api/autosave/index.js +8 -0
- package/dist/api/fs/contracts/filesystem-facade.contract.d.ts +57 -0
- package/dist/api/fs/contracts/filesystem-facade.contract.d.ts.map +1 -0
- package/dist/api/fs/contracts/filesystem-facade.contract.js +1 -0
- package/dist/api/fs/contracts/filesystem-manager.contract.d.ts +42 -0
- package/dist/api/fs/contracts/filesystem-manager.contract.d.ts.map +1 -0
- package/dist/api/fs/contracts/filesystem-manager.contract.js +1 -0
- package/dist/api/fs/index.d.ts +5 -0
- package/dist/api/fs/index.d.ts.map +1 -0
- package/dist/api/fs/index.js +4 -0
- package/dist/api/index.d.ts +10 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +9 -0
- package/dist/api/tokens/index.d.ts +5 -0
- package/dist/api/tokens/index.d.ts.map +1 -0
- package/dist/api/tokens/index.js +4 -0
- package/dist/api/tokens/service-tokens.d.ts +10 -0
- package/dist/api/tokens/service-tokens.d.ts.map +1 -0
- package/dist/api/tokens/service-tokens.js +10 -0
- package/dist/api/types/extension-types.d.ts +32 -0
- package/dist/api/types/extension-types.d.ts.map +1 -0
- package/dist/api/types/extension-types.js +4 -0
- package/dist/api/types/index.d.ts +8 -0
- package/dist/api/types/index.d.ts.map +1 -0
- package/dist/api/types/index.js +7 -0
- package/dist/api/types/middleware-types.d.ts +31 -0
- package/dist/api/types/middleware-types.d.ts.map +1 -0
- package/dist/api/types/middleware-types.js +4 -0
- package/dist/api/types/reducer-types.d.ts +22 -0
- package/dist/api/types/reducer-types.d.ts.map +1 -0
- package/dist/api/types/reducer-types.js +4 -0
- package/dist/api/types/store-types.d.ts +49 -0
- package/dist/api/types/store-types.d.ts.map +1 -0
- package/dist/api/types/store-types.js +4 -0
- package/dist/impl/autosave/autosave-config-resolver.d.ts +45 -0
- package/dist/impl/autosave/autosave-config-resolver.d.ts.map +1 -0
- package/dist/impl/autosave/autosave-config-resolver.js +107 -0
- package/dist/impl/autosave/autosave-middleware.d.ts +37 -0
- package/dist/impl/autosave/autosave-middleware.d.ts.map +1 -0
- package/dist/impl/autosave/autosave-middleware.js +297 -0
- package/dist/impl/autosave/autosave-registry.d.ts +15 -0
- package/dist/impl/autosave/autosave-registry.d.ts.map +1 -0
- package/dist/impl/autosave/autosave-registry.js +38 -0
- package/dist/impl/autosave/autosave-sync-middleware.d.ts +24 -0
- package/dist/impl/autosave/autosave-sync-middleware.d.ts.map +1 -0
- package/dist/impl/autosave/autosave-sync-middleware.js +98 -0
- package/dist/impl/autosave/index.d.ts +8 -0
- package/dist/impl/autosave/index.d.ts.map +1 -0
- package/dist/impl/autosave/index.js +7 -0
- package/dist/impl/core/index.d.ts +4 -0
- package/dist/impl/core/index.d.ts.map +1 -0
- package/dist/impl/core/index.js +3 -0
- package/dist/impl/core/middleware-registry.d.ts +21 -0
- package/dist/impl/core/middleware-registry.d.ts.map +1 -0
- package/dist/impl/core/middleware-registry.js +60 -0
- package/dist/impl/core/reducer-registry.d.ts +18 -0
- package/dist/impl/core/reducer-registry.d.ts.map +1 -0
- package/dist/impl/core/reducer-registry.js +65 -0
- package/dist/impl/core/store-manager.d.ts +28 -0
- package/dist/impl/core/store-manager.d.ts.map +1 -0
- package/dist/impl/core/store-manager.js +129 -0
- package/dist/impl/extensions/store-extensions.d.ts +23 -0
- package/dist/impl/extensions/store-extensions.d.ts.map +1 -0
- package/dist/impl/extensions/store-extensions.js +66 -0
- package/dist/impl/fs/commands/fs-commands.d.ts +100 -0
- package/dist/impl/fs/commands/fs-commands.d.ts.map +1 -0
- package/dist/impl/fs/commands/fs-commands.js +338 -0
- package/dist/impl/fs/commands/structure-commands.d.ts +76 -0
- package/dist/impl/fs/commands/structure-commands.d.ts.map +1 -0
- package/dist/impl/fs/commands/structure-commands.js +21 -0
- package/dist/impl/fs/core/fs-adapter.d.ts +54 -0
- package/dist/impl/fs/core/fs-adapter.d.ts.map +1 -0
- package/dist/impl/fs/core/fs-adapter.js +204 -0
- package/dist/impl/fs/core/fs-facade.d.ts +37 -0
- package/dist/impl/fs/core/fs-facade.d.ts.map +1 -0
- package/dist/impl/fs/core/fs-facade.js +98 -0
- package/dist/impl/fs/index.d.ts +8 -0
- package/dist/impl/fs/index.d.ts.map +1 -0
- package/dist/impl/fs/index.js +11 -0
- package/dist/impl/fs/utils/data-updater.d.ts +36 -0
- package/dist/impl/fs/utils/data-updater.d.ts.map +1 -0
- package/dist/impl/fs/utils/data-updater.js +248 -0
- package/dist/impl/fs/utils/deep-equal.d.ts +5 -0
- package/dist/impl/fs/utils/deep-equal.d.ts.map +1 -0
- package/dist/impl/fs/utils/deep-equal.js +28 -0
- package/dist/impl/index.d.ts +12 -0
- package/dist/impl/index.d.ts.map +1 -0
- package/dist/impl/index.js +12 -0
- package/dist/impl/middleware/event-bridge-middleware.d.ts +7 -0
- package/dist/impl/middleware/event-bridge-middleware.d.ts.map +1 -0
- package/dist/impl/middleware/event-bridge-middleware.js +19 -0
- package/dist/impl/middleware/index.d.ts +6 -0
- package/dist/impl/middleware/index.d.ts.map +1 -0
- package/dist/impl/middleware/index.js +5 -0
- package/dist/impl/middleware/logger-middleware.d.ts +7 -0
- package/dist/impl/middleware/logger-middleware.d.ts.map +1 -0
- package/dist/impl/middleware/logger-middleware.js +18 -0
- package/dist/impl/plugin/index.d.ts +5 -0
- package/dist/impl/plugin/index.d.ts.map +1 -0
- package/dist/impl/plugin/index.js +4 -0
- package/dist/impl/plugin/store-plugin-factory.d.ts +15 -0
- package/dist/impl/plugin/store-plugin-factory.d.ts.map +1 -0
- package/dist/impl/plugin/store-plugin-factory.js +121 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/spi/autosave/i-autosave-provider.d.ts +98 -0
- package/dist/spi/autosave/i-autosave-provider.d.ts.map +1 -0
- package/dist/spi/autosave/i-autosave-provider.js +8 -0
- package/dist/spi/autosave/i-autosave-registry.d.ts +59 -0
- package/dist/spi/autosave/i-autosave-registry.d.ts.map +1 -0
- package/dist/spi/autosave/i-autosave-registry.js +8 -0
- package/dist/spi/autosave/index.d.ts +8 -0
- package/dist/spi/autosave/index.d.ts.map +1 -0
- package/dist/spi/autosave/index.js +7 -0
- package/dist/spi/index.d.ts +9 -0
- package/dist/spi/index.d.ts.map +1 -0
- package/dist/spi/index.js +9 -0
- package/dist/spi/middleware/index.d.ts +2 -0
- package/dist/spi/middleware/index.d.ts.map +1 -0
- package/dist/spi/middleware/index.js +1 -0
- package/dist/spi/middleware/middleware-provider.d.ts +9 -0
- package/dist/spi/middleware/middleware-provider.d.ts.map +1 -0
- package/dist/spi/middleware/middleware-provider.js +1 -0
- package/dist/spi/persistence/index.d.ts +2 -0
- package/dist/spi/persistence/index.d.ts.map +1 -0
- package/dist/spi/persistence/index.js +1 -0
- package/dist/spi/persistence/persistence-provider.d.ts +8 -0
- package/dist/spi/persistence/persistence-provider.d.ts.map +1 -0
- package/dist/spi/persistence/persistence-provider.js +1 -0
- package/package.json +68 -0
package/README.md
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# UI Store
|
|
2
|
+
|
|
3
|
+
Redux-based state management framework for microkernel applications with extensible middleware and dynamic reducer registration.
|
|
4
|
+
|
|
5
|
+
## Package Structure
|
|
6
|
+
|
|
7
|
+
This is a monorepo package containing four sub-packages following the API-SPI-IMPL pattern:
|
|
8
|
+
|
|
9
|
+
- **[@hamak/ui-store-api](./ui-store-api)** - Type definitions, interfaces, and service tokens
|
|
10
|
+
- **[@hamak/ui-store-spi](./ui-store-spi)** - Service Provider Interfaces for extensibility
|
|
11
|
+
- **[@hamak/ui-store-impl](./ui-store-impl)** - Concrete implementations with Redux integration
|
|
12
|
+
- **[@hamak/ui-store-templates](./ui-store-templates)** - React hooks and components
|
|
13
|
+
|
|
14
|
+
## Features
|
|
15
|
+
|
|
16
|
+
### Extensible Middleware System
|
|
17
|
+
- **Plugin contributions** - Any plugin can register middleware
|
|
18
|
+
- **Priority-based ordering** - Control middleware execution order
|
|
19
|
+
- **Type-safe** - Full TypeScript support
|
|
20
|
+
- **Built-in middleware** - Logger, thunk, event bridge, crash reporter
|
|
21
|
+
|
|
22
|
+
### Dynamic Reducer Registry
|
|
23
|
+
- **Hot replacement** - Add/remove reducers at runtime
|
|
24
|
+
- **Plugin isolation** - Each plugin manages its own slice
|
|
25
|
+
- **Type-safe** - Strongly typed state access
|
|
26
|
+
|
|
27
|
+
### Microkernel Integration
|
|
28
|
+
- **Event bridge** - Bidirectional Redux ↔ Microkernel events
|
|
29
|
+
- **DI integration** - Services via dependency injection
|
|
30
|
+
- **Plugin lifecycle** - Initialize during plugin setup
|
|
31
|
+
|
|
32
|
+
### React Integration
|
|
33
|
+
- **Standard Redux hooks** - useSelector, useDispatch, useStore
|
|
34
|
+
- **Framework hooks** - Access store manager, registries, events
|
|
35
|
+
- **DevTools support** - Redux DevTools integration
|
|
36
|
+
|
|
37
|
+
## Installation
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
bun add @hamak/ui-store-api @hamak/ui-store-impl @hamak/ui-store-templates
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Quick Start
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
import { Host } from '@hamak/microkernel-impl';
|
|
47
|
+
import { createStorePlugin } from '@hamak/ui-store-impl';
|
|
48
|
+
import { thunk } from 'redux-thunk';
|
|
49
|
+
|
|
50
|
+
const host = new Host();
|
|
51
|
+
|
|
52
|
+
// Register store plugin
|
|
53
|
+
host.registerPlugin(
|
|
54
|
+
'ui-store',
|
|
55
|
+
{ name: 'ui-store', version: '1.0.0', entry: '' },
|
|
56
|
+
createStorePlugin({
|
|
57
|
+
devTools: true,
|
|
58
|
+
middleware: [
|
|
59
|
+
{ id: 'redux-thunk', middleware: thunk, priority: 500 }
|
|
60
|
+
]
|
|
61
|
+
})
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
await host.bootstrapAllAtRoot();
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Usage
|
|
68
|
+
|
|
69
|
+
### Plugin Contributing Middleware
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
import { MIDDLEWARE_REGISTRY_TOKEN } from '@hamak/ui-store-api';
|
|
73
|
+
|
|
74
|
+
export const myPlugin: PluginModule = {
|
|
75
|
+
async initialize(ctx) {
|
|
76
|
+
const registry = ctx.resolve(MIDDLEWARE_REGISTRY_TOKEN);
|
|
77
|
+
|
|
78
|
+
registry.register({
|
|
79
|
+
id: 'my-middleware',
|
|
80
|
+
middleware: (store) => (next) => (action) => {
|
|
81
|
+
console.log('Action:', action.type);
|
|
82
|
+
return next(action);
|
|
83
|
+
},
|
|
84
|
+
priority: 100,
|
|
85
|
+
plugin: 'my-plugin'
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Plugin Contributing Reducer
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
import { REDUCER_REGISTRY_TOKEN } from '@hamak/ui-store-api';
|
|
95
|
+
|
|
96
|
+
export const myPlugin: PluginModule = {
|
|
97
|
+
async initialize(ctx) {
|
|
98
|
+
const registry = ctx.resolve(REDUCER_REGISTRY_TOKEN);
|
|
99
|
+
|
|
100
|
+
registry.register('mySlice', (state = {}, action) => {
|
|
101
|
+
switch (action.type) {
|
|
102
|
+
case 'MY_ACTION':
|
|
103
|
+
return { ...state, ...action.payload };
|
|
104
|
+
default:
|
|
105
|
+
return state;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### React Components
|
|
113
|
+
|
|
114
|
+
```typescript
|
|
115
|
+
import { useSelector, useDispatch } from '@hamak/ui-store-templates';
|
|
116
|
+
|
|
117
|
+
function MyComponent() {
|
|
118
|
+
const data = useSelector(state => state.mySlice.data);
|
|
119
|
+
const dispatch = useDispatch();
|
|
120
|
+
|
|
121
|
+
return (
|
|
122
|
+
<button onClick={() => dispatch({ type: 'MY_ACTION', payload: {} })}>
|
|
123
|
+
Click Me
|
|
124
|
+
</button>
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Architecture
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
Plugins → DI Container → Store Manager
|
|
133
|
+
↓ ↓ ↓
|
|
134
|
+
Middleware Registry Reducer Registry
|
|
135
|
+
↓ ↓ ↓
|
|
136
|
+
Redux Store ↔ Event Bridge ↔ Microkernel
|
|
137
|
+
↓
|
|
138
|
+
React (useSelector, useDispatch)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## License
|
|
142
|
+
|
|
143
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware Registry Interface
|
|
3
|
+
* Extension point for plugins to contribute middleware
|
|
4
|
+
*/
|
|
5
|
+
import type { Middleware } from 'redux';
|
|
6
|
+
import type { MiddlewareRegistration } from '../types';
|
|
7
|
+
export interface IMiddlewareRegistry {
|
|
8
|
+
/**
|
|
9
|
+
* Register a middleware
|
|
10
|
+
*/
|
|
11
|
+
register(registration: MiddlewareRegistration): void;
|
|
12
|
+
/**
|
|
13
|
+
* Unregister a middleware by ID
|
|
14
|
+
*/
|
|
15
|
+
unregister(id: string): void;
|
|
16
|
+
/**
|
|
17
|
+
* Get all middleware in priority order
|
|
18
|
+
*/
|
|
19
|
+
getAll(): Middleware[];
|
|
20
|
+
/**
|
|
21
|
+
* Check if middleware is registered
|
|
22
|
+
*/
|
|
23
|
+
has(id: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Get middleware registration info
|
|
26
|
+
*/
|
|
27
|
+
getInfo(id: string): MiddlewareRegistration | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Get all registrations with metadata
|
|
30
|
+
*/
|
|
31
|
+
getAllRegistrations(): MiddlewareRegistration[];
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=middleware-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware-registry.d.ts","sourceRoot":"","sources":["../../../src/api/api/middleware-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAErD;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;OAEG;IACH,MAAM,IAAI,UAAU,EAAE,CAAC;IAEvB;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAAC;IAExD;;OAEG;IACH,mBAAmB,IAAI,sBAAsB,EAAE,CAAC;CACjD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reducer Registry Interface
|
|
3
|
+
* Allows dynamic reducer registration and hot replacement
|
|
4
|
+
*/
|
|
5
|
+
import type { Reducer } from 'redux';
|
|
6
|
+
import type { ReducerMap, ReducerRegistration } from '../types';
|
|
7
|
+
export interface IReducerRegistry {
|
|
8
|
+
/**
|
|
9
|
+
* Register a reducer for a state slice key
|
|
10
|
+
* @param key - State slice key
|
|
11
|
+
* @param reducer - Reducer function
|
|
12
|
+
* @param replace - Whether to replace existing reducer (default: false)
|
|
13
|
+
*/
|
|
14
|
+
register(key: string, reducer: Reducer, replace?: boolean): void;
|
|
15
|
+
/**
|
|
16
|
+
* Unregister a reducer
|
|
17
|
+
* @param key - State slice key
|
|
18
|
+
*/
|
|
19
|
+
unregister(key: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Get all registered reducers
|
|
22
|
+
*/
|
|
23
|
+
getAll(): ReducerMap;
|
|
24
|
+
/**
|
|
25
|
+
* Get combined root reducer
|
|
26
|
+
*/
|
|
27
|
+
getCombinedReducer(): Reducer;
|
|
28
|
+
/**
|
|
29
|
+
* Check if reducer is registered
|
|
30
|
+
*/
|
|
31
|
+
has(key: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Get reducer registration info
|
|
34
|
+
*/
|
|
35
|
+
getInfo(key: string): ReducerRegistration | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* Get all registrations with metadata
|
|
38
|
+
*/
|
|
39
|
+
getAllRegistrations(): ReducerRegistration[];
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=reducer-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reducer-registry.d.ts","sourceRoot":"","sources":["../../../src/api/api/reducer-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEjE;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;OAEG;IACH,MAAM,IAAI,UAAU,CAAC;IAErB;;OAEG;IACH,kBAAkB,IAAI,OAAO,CAAC;IAE9B;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE1B;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAEtD;;OAEG;IACH,mBAAmB,IAAI,mBAAmB,EAAE,CAAC;CAC9C"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store Manager Interface
|
|
3
|
+
* Main orchestrator for Redux store management
|
|
4
|
+
*/
|
|
5
|
+
import type { Store, Reducer, Action } from 'redux';
|
|
6
|
+
import type { StoreConfig, RootState, AppAction } from '../types';
|
|
7
|
+
import type { IMiddlewareRegistry } from './middleware-registry';
|
|
8
|
+
import type { IReducerRegistry } from './reducer-registry';
|
|
9
|
+
export interface IStoreManager {
|
|
10
|
+
/**
|
|
11
|
+
* Get the Redux store instance
|
|
12
|
+
* @throws Error if store is not initialized
|
|
13
|
+
*/
|
|
14
|
+
getStore(): Store<RootState, AppAction>;
|
|
15
|
+
/**
|
|
16
|
+
* Check if store is initialized
|
|
17
|
+
*/
|
|
18
|
+
isInitialized(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Initialize the store
|
|
21
|
+
* Should be called after all plugins have registered middleware/reducers
|
|
22
|
+
* @internal - Called by plugin framework during activation
|
|
23
|
+
*/
|
|
24
|
+
initialize(config?: StoreConfig): Store<RootState, AppAction>;
|
|
25
|
+
/**
|
|
26
|
+
* Get middleware registry (for plugin contributions)
|
|
27
|
+
*/
|
|
28
|
+
getMiddlewareRegistry(): IMiddlewareRegistry;
|
|
29
|
+
/**
|
|
30
|
+
* Get reducer registry (for dynamic reducers)
|
|
31
|
+
*/
|
|
32
|
+
getReducerRegistry(): IReducerRegistry;
|
|
33
|
+
/**
|
|
34
|
+
* Dispatch an action
|
|
35
|
+
*/
|
|
36
|
+
dispatch<A extends Action>(action: A): A;
|
|
37
|
+
/**
|
|
38
|
+
* Get current state
|
|
39
|
+
*/
|
|
40
|
+
getState<S = RootState>(): S;
|
|
41
|
+
/**
|
|
42
|
+
* Subscribe to state changes
|
|
43
|
+
* @returns Unsubscribe function
|
|
44
|
+
*/
|
|
45
|
+
subscribe(listener: () => void): () => void;
|
|
46
|
+
/**
|
|
47
|
+
* Replace the root reducer (for hot module replacement)
|
|
48
|
+
*/
|
|
49
|
+
replaceReducer(nextReducer: Reducer<RootState, AppAction>): void;
|
|
50
|
+
/**
|
|
51
|
+
* Destroy the store and clean up resources
|
|
52
|
+
*/
|
|
53
|
+
destroy(): void;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=store-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-manager.d.ts","sourceRoot":"","sources":["../../../src/api/api/store-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAExC;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC;IAEzB;;;;OAIG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE9D;;OAEG;IACH,qBAAqB,IAAI,mBAAmB,CAAC;IAE7C;;OAEG;IACH,kBAAkB,IAAI,gBAAgB,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,CAAC,GAAG,SAAS,KAAK,CAAC,CAAC;IAE7B;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAE5C;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;IAEjE;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Autosave Action Factory
|
|
3
|
+
*
|
|
4
|
+
* Factory for creating autosave actions.
|
|
5
|
+
*/
|
|
6
|
+
import type { AnyAction } from 'redux';
|
|
7
|
+
import type { AutosaveConfig } from './autosave-types';
|
|
8
|
+
import { type SetAutosaveConfigAction, type ClearAutosaveConfigAction, type ChangeDetectedAction, type DebounceExpiredAction, type SaveStartedAction, type SaveSucceededAction, type SaveFailedAction, type RetryScheduledAction, type FlushPendingAction, type FlushAllPendingAction, type CancelPendingAction, type AutosaveAction } from './autosave-action-types';
|
|
9
|
+
/**
|
|
10
|
+
* Factory class for creating autosave actions
|
|
11
|
+
*/
|
|
12
|
+
export declare class AutosaveActionFactory {
|
|
13
|
+
/**
|
|
14
|
+
* Set autosave configuration for a path
|
|
15
|
+
*/
|
|
16
|
+
setConfig(path: string[], config: AutosaveConfig): SetAutosaveConfigAction;
|
|
17
|
+
/**
|
|
18
|
+
* Clear autosave configuration for a path (revert to inherited)
|
|
19
|
+
*/
|
|
20
|
+
clearConfig(path: string[]): ClearAutosaveConfigAction;
|
|
21
|
+
/**
|
|
22
|
+
* Content change detected, debounce timer started
|
|
23
|
+
*/
|
|
24
|
+
changeDetected(path: string[], detectedAt: number, scheduledFor: number, providerId: string): ChangeDetectedAction;
|
|
25
|
+
/**
|
|
26
|
+
* Debounce timer expired, ready to save
|
|
27
|
+
*/
|
|
28
|
+
debounceExpired(path: string[]): DebounceExpiredAction;
|
|
29
|
+
/**
|
|
30
|
+
* Save operation started
|
|
31
|
+
*/
|
|
32
|
+
saveStarted(path: string[], providerId: string): SaveStartedAction;
|
|
33
|
+
/**
|
|
34
|
+
* Save completed successfully
|
|
35
|
+
*/
|
|
36
|
+
saveSucceeded(path: string[], timestamp?: number): SaveSucceededAction;
|
|
37
|
+
/**
|
|
38
|
+
* Save failed
|
|
39
|
+
*/
|
|
40
|
+
saveFailed(path: string[], error: {
|
|
41
|
+
code: string;
|
|
42
|
+
message: string;
|
|
43
|
+
}, attempt?: number): SaveFailedAction;
|
|
44
|
+
/**
|
|
45
|
+
* Retry scheduled
|
|
46
|
+
*/
|
|
47
|
+
retryScheduled(path: string[], retryAt: number, attempt: number): RetryScheduledAction;
|
|
48
|
+
/**
|
|
49
|
+
* Flush pending save immediately (cancels debounce)
|
|
50
|
+
*/
|
|
51
|
+
flushPending(path: string[]): FlushPendingAction;
|
|
52
|
+
/**
|
|
53
|
+
* Flush all pending saves
|
|
54
|
+
*/
|
|
55
|
+
flushAllPending(): FlushAllPendingAction;
|
|
56
|
+
/**
|
|
57
|
+
* Cancel pending save
|
|
58
|
+
*/
|
|
59
|
+
cancelPending(path: string[]): CancelPendingAction;
|
|
60
|
+
/**
|
|
61
|
+
* Check if an action is an autosave action
|
|
62
|
+
*/
|
|
63
|
+
isAutosaveAction(action: AnyAction): action is AutosaveAction;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Singleton instance of the autosave action factory
|
|
67
|
+
*/
|
|
68
|
+
export declare const autosaveActions: AutosaveActionFactory;
|
|
69
|
+
//# sourceMappingURL=autosave-action-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autosave-action-factory.d.ts","sourceRoot":"","sources":["../../../src/api/autosave/autosave-action-factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,qBAAa,qBAAqB;IAKhC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,uBAAuB;IAO1E;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,yBAAyB;IAWtD;;OAEG;IACH,cAAc,CACZ,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,oBAAoB;IAOvB;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,qBAAqB;IAOtD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAOlE;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAOtE;;OAEG;IACH,UAAU,CACR,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EACxC,OAAO,GAAE,MAAU,GAClB,gBAAgB;IAUnB;;OAEG;IACH,cAAc,CACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,oBAAoB;IAWvB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,kBAAkB;IAOhD;;OAEG;IACH,eAAe,IAAI,qBAAqB;IAMxC;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,mBAAmB;IAWlD;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,IAAI,cAAc;CAM9D;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,uBAA8B,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Autosave Action Factory
|
|
3
|
+
*
|
|
4
|
+
* Factory for creating autosave actions.
|
|
5
|
+
*/
|
|
6
|
+
import { AutosaveActionTypes, } from './autosave-action-types';
|
|
7
|
+
/**
|
|
8
|
+
* Factory class for creating autosave actions
|
|
9
|
+
*/
|
|
10
|
+
export class AutosaveActionFactory {
|
|
11
|
+
// ─────────────────────────────────────────────────────────────────
|
|
12
|
+
// Configuration Actions
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* Set autosave configuration for a path
|
|
16
|
+
*/
|
|
17
|
+
setConfig(path, config) {
|
|
18
|
+
return {
|
|
19
|
+
type: AutosaveActionTypes.SET_CONFIG,
|
|
20
|
+
payload: { path, config },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Clear autosave configuration for a path (revert to inherited)
|
|
25
|
+
*/
|
|
26
|
+
clearConfig(path) {
|
|
27
|
+
return {
|
|
28
|
+
type: AutosaveActionTypes.CLEAR_CONFIG,
|
|
29
|
+
payload: { path },
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
// ─────────────────────────────────────────────────────────────────
|
|
33
|
+
// Lifecycle Actions (used internally by middleware)
|
|
34
|
+
// ─────────────────────────────────────────────────────────────────
|
|
35
|
+
/**
|
|
36
|
+
* Content change detected, debounce timer started
|
|
37
|
+
*/
|
|
38
|
+
changeDetected(path, detectedAt, scheduledFor, providerId) {
|
|
39
|
+
return {
|
|
40
|
+
type: AutosaveActionTypes.CHANGE_DETECTED,
|
|
41
|
+
payload: { path, detectedAt, scheduledFor, providerId },
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Debounce timer expired, ready to save
|
|
46
|
+
*/
|
|
47
|
+
debounceExpired(path) {
|
|
48
|
+
return {
|
|
49
|
+
type: AutosaveActionTypes.DEBOUNCE_EXPIRED,
|
|
50
|
+
payload: { path },
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Save operation started
|
|
55
|
+
*/
|
|
56
|
+
saveStarted(path, providerId) {
|
|
57
|
+
return {
|
|
58
|
+
type: AutosaveActionTypes.SAVE_STARTED,
|
|
59
|
+
payload: { path, providerId },
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Save completed successfully
|
|
64
|
+
*/
|
|
65
|
+
saveSucceeded(path, timestamp) {
|
|
66
|
+
return {
|
|
67
|
+
type: AutosaveActionTypes.SAVE_SUCCEEDED,
|
|
68
|
+
payload: { path, timestamp: timestamp ?? Date.now() },
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Save failed
|
|
73
|
+
*/
|
|
74
|
+
saveFailed(path, error, attempt = 1) {
|
|
75
|
+
return {
|
|
76
|
+
type: AutosaveActionTypes.SAVE_FAILED,
|
|
77
|
+
payload: {
|
|
78
|
+
path,
|
|
79
|
+
error: { ...error, attempt },
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Retry scheduled
|
|
85
|
+
*/
|
|
86
|
+
retryScheduled(path, retryAt, attempt) {
|
|
87
|
+
return {
|
|
88
|
+
type: AutosaveActionTypes.RETRY_SCHEDULED,
|
|
89
|
+
payload: { path, retryAt, attempt },
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
// ─────────────────────────────────────────────────────────────────
|
|
93
|
+
// Manual Trigger Actions
|
|
94
|
+
// ─────────────────────────────────────────────────────────────────
|
|
95
|
+
/**
|
|
96
|
+
* Flush pending save immediately (cancels debounce)
|
|
97
|
+
*/
|
|
98
|
+
flushPending(path) {
|
|
99
|
+
return {
|
|
100
|
+
type: AutosaveActionTypes.FLUSH_PENDING,
|
|
101
|
+
payload: { path },
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Flush all pending saves
|
|
106
|
+
*/
|
|
107
|
+
flushAllPending() {
|
|
108
|
+
return {
|
|
109
|
+
type: AutosaveActionTypes.FLUSH_ALL_PENDING,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Cancel pending save
|
|
114
|
+
*/
|
|
115
|
+
cancelPending(path) {
|
|
116
|
+
return {
|
|
117
|
+
type: AutosaveActionTypes.CANCEL_PENDING,
|
|
118
|
+
payload: { path },
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
// ─────────────────────────────────────────────────────────────────
|
|
122
|
+
// Type Guards
|
|
123
|
+
// ─────────────────────────────────────────────────────────────────
|
|
124
|
+
/**
|
|
125
|
+
* Check if an action is an autosave action
|
|
126
|
+
*/
|
|
127
|
+
isAutosaveAction(action) {
|
|
128
|
+
return (typeof action.type === 'string' &&
|
|
129
|
+
action.type.startsWith('@@autosave/'));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Singleton instance of the autosave action factory
|
|
134
|
+
*/
|
|
135
|
+
export const autosaveActions = new AutosaveActionFactory();
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Autosave Action Types
|
|
3
|
+
*
|
|
4
|
+
* These actions orchestrate the autosave lifecycle but do NOT execute saves.
|
|
5
|
+
* Actual saves are performed by plugin providers using their own actions
|
|
6
|
+
* (e.g., PUT_REQUEST for remote-fs, UPDATE_ENTITY for remote-resource).
|
|
7
|
+
*/
|
|
8
|
+
import type { AutosaveConfig, AutosaveError } from './autosave-types';
|
|
9
|
+
/**
|
|
10
|
+
* Autosave action type constants
|
|
11
|
+
*/
|
|
12
|
+
export declare enum AutosaveActionTypes {
|
|
13
|
+
/** Set autosave configuration for a path */
|
|
14
|
+
SET_CONFIG = "@@autosave/SET_CONFIG",
|
|
15
|
+
/** Clear autosave configuration (revert to inherited) */
|
|
16
|
+
CLEAR_CONFIG = "@@autosave/CLEAR_CONFIG",
|
|
17
|
+
/** Content change detected, debounce timer started */
|
|
18
|
+
CHANGE_DETECTED = "@@autosave/CHANGE_DETECTED",
|
|
19
|
+
/** Debounce timer expired, save will be triggered */
|
|
20
|
+
DEBOUNCE_EXPIRED = "@@autosave/DEBOUNCE_EXPIRED",
|
|
21
|
+
/** Save operation started */
|
|
22
|
+
SAVE_STARTED = "@@autosave/SAVE_STARTED",
|
|
23
|
+
/** Save completed successfully */
|
|
24
|
+
SAVE_SUCCEEDED = "@@autosave/SAVE_SUCCEEDED",
|
|
25
|
+
/** Save failed */
|
|
26
|
+
SAVE_FAILED = "@@autosave/SAVE_FAILED",
|
|
27
|
+
/** Retry scheduled */
|
|
28
|
+
RETRY_SCHEDULED = "@@autosave/RETRY_SCHEDULED",
|
|
29
|
+
/** Flush pending save immediately (cancels debounce) */
|
|
30
|
+
FLUSH_PENDING = "@@autosave/FLUSH_PENDING",
|
|
31
|
+
/** Flush all pending saves */
|
|
32
|
+
FLUSH_ALL_PENDING = "@@autosave/FLUSH_ALL_PENDING",
|
|
33
|
+
/** Cancel pending save */
|
|
34
|
+
CANCEL_PENDING = "@@autosave/CANCEL_PENDING"
|
|
35
|
+
}
|
|
36
|
+
/** Set autosave configuration for a path */
|
|
37
|
+
export interface SetAutosaveConfigAction {
|
|
38
|
+
type: AutosaveActionTypes.SET_CONFIG;
|
|
39
|
+
payload: {
|
|
40
|
+
path: string[];
|
|
41
|
+
config: AutosaveConfig;
|
|
42
|
+
};
|
|
43
|
+
[key: string]: unknown;
|
|
44
|
+
}
|
|
45
|
+
/** Clear autosave configuration for a path */
|
|
46
|
+
export interface ClearAutosaveConfigAction {
|
|
47
|
+
type: AutosaveActionTypes.CLEAR_CONFIG;
|
|
48
|
+
payload: {
|
|
49
|
+
path: string[];
|
|
50
|
+
};
|
|
51
|
+
[key: string]: unknown;
|
|
52
|
+
}
|
|
53
|
+
/** Content change detected */
|
|
54
|
+
export interface ChangeDetectedAction {
|
|
55
|
+
type: AutosaveActionTypes.CHANGE_DETECTED;
|
|
56
|
+
payload: {
|
|
57
|
+
path: string[];
|
|
58
|
+
detectedAt: number;
|
|
59
|
+
scheduledFor: number;
|
|
60
|
+
providerId: string;
|
|
61
|
+
};
|
|
62
|
+
[key: string]: unknown;
|
|
63
|
+
}
|
|
64
|
+
/** Debounce timer expired */
|
|
65
|
+
export interface DebounceExpiredAction {
|
|
66
|
+
type: AutosaveActionTypes.DEBOUNCE_EXPIRED;
|
|
67
|
+
payload: {
|
|
68
|
+
path: string[];
|
|
69
|
+
};
|
|
70
|
+
[key: string]: unknown;
|
|
71
|
+
}
|
|
72
|
+
/** Save started */
|
|
73
|
+
export interface SaveStartedAction {
|
|
74
|
+
type: AutosaveActionTypes.SAVE_STARTED;
|
|
75
|
+
payload: {
|
|
76
|
+
path: string[];
|
|
77
|
+
providerId: string;
|
|
78
|
+
};
|
|
79
|
+
[key: string]: unknown;
|
|
80
|
+
}
|
|
81
|
+
/** Save succeeded */
|
|
82
|
+
export interface SaveSucceededAction {
|
|
83
|
+
type: AutosaveActionTypes.SAVE_SUCCEEDED;
|
|
84
|
+
payload: {
|
|
85
|
+
path: string[];
|
|
86
|
+
timestamp: number;
|
|
87
|
+
};
|
|
88
|
+
[key: string]: unknown;
|
|
89
|
+
}
|
|
90
|
+
/** Save failed */
|
|
91
|
+
export interface SaveFailedAction {
|
|
92
|
+
type: AutosaveActionTypes.SAVE_FAILED;
|
|
93
|
+
payload: {
|
|
94
|
+
path: string[];
|
|
95
|
+
error: AutosaveError;
|
|
96
|
+
};
|
|
97
|
+
[key: string]: unknown;
|
|
98
|
+
}
|
|
99
|
+
/** Retry scheduled */
|
|
100
|
+
export interface RetryScheduledAction {
|
|
101
|
+
type: AutosaveActionTypes.RETRY_SCHEDULED;
|
|
102
|
+
payload: {
|
|
103
|
+
path: string[];
|
|
104
|
+
retryAt: number;
|
|
105
|
+
attempt: number;
|
|
106
|
+
};
|
|
107
|
+
[key: string]: unknown;
|
|
108
|
+
}
|
|
109
|
+
/** Flush pending save */
|
|
110
|
+
export interface FlushPendingAction {
|
|
111
|
+
type: AutosaveActionTypes.FLUSH_PENDING;
|
|
112
|
+
payload: {
|
|
113
|
+
path: string[];
|
|
114
|
+
};
|
|
115
|
+
[key: string]: unknown;
|
|
116
|
+
}
|
|
117
|
+
/** Flush all pending saves */
|
|
118
|
+
export interface FlushAllPendingAction {
|
|
119
|
+
type: AutosaveActionTypes.FLUSH_ALL_PENDING;
|
|
120
|
+
[key: string]: unknown;
|
|
121
|
+
}
|
|
122
|
+
/** Cancel pending save */
|
|
123
|
+
export interface CancelPendingAction {
|
|
124
|
+
type: AutosaveActionTypes.CANCEL_PENDING;
|
|
125
|
+
payload: {
|
|
126
|
+
path: string[];
|
|
127
|
+
};
|
|
128
|
+
[key: string]: unknown;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Union type of all autosave actions
|
|
132
|
+
*/
|
|
133
|
+
export type AutosaveAction = SetAutosaveConfigAction | ClearAutosaveConfigAction | ChangeDetectedAction | DebounceExpiredAction | SaveStartedAction | SaveSucceededAction | SaveFailedAction | RetryScheduledAction | FlushPendingAction | FlushAllPendingAction | CancelPendingAction;
|
|
134
|
+
//# sourceMappingURL=autosave-action-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autosave-action-types.d.ts","sourceRoot":"","sources":["../../../src/api/autosave/autosave-action-types.ts"],"names":[],"mappings":"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"}
|