@teactjs/storage 0.1.0-alpha.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 +97 -0
- package/dist/index.js +21827 -0
- package/dist/react/src/callback-registry.d.ts +11 -0
- package/dist/react/src/callback-registry.d.ts.map +1 -0
- package/dist/react/src/components.d.ts +396 -0
- package/dist/react/src/components.d.ts.map +1 -0
- package/dist/react/src/error-boundary.d.ts +19 -0
- package/dist/react/src/error-boundary.d.ts.map +1 -0
- package/dist/react/src/hooks.d.ts +37 -0
- package/dist/react/src/hooks.d.ts.map +1 -0
- package/dist/react/src/index.d.ts +11 -0
- package/dist/react/src/index.d.ts.map +1 -0
- package/dist/renderer/src/index.d.ts +5 -0
- package/dist/renderer/src/index.d.ts.map +1 -0
- package/dist/renderer/src/nodes.d.ts +23 -0
- package/dist/renderer/src/nodes.d.ts.map +1 -0
- package/dist/renderer/src/renderer.d.ts +9 -0
- package/dist/renderer/src/renderer.d.ts.map +1 -0
- package/dist/renderer/src/types.d.ts +36 -0
- package/dist/renderer/src/types.d.ts.map +1 -0
- package/dist/runtime/src/auth-session.d.ts +51 -0
- package/dist/runtime/src/auth-session.d.ts.map +1 -0
- package/dist/runtime/src/auth.d.ts +37 -0
- package/dist/runtime/src/auth.d.ts.map +1 -0
- package/dist/runtime/src/bot.d.ts +143 -0
- package/dist/runtime/src/bot.d.ts.map +1 -0
- package/dist/runtime/src/config.d.ts +38 -0
- package/dist/runtime/src/config.d.ts.map +1 -0
- package/dist/runtime/src/context.d.ts +74 -0
- package/dist/runtime/src/context.d.ts.map +1 -0
- package/dist/runtime/src/conversation.d.ts +310 -0
- package/dist/runtime/src/conversation.d.ts.map +1 -0
- package/dist/runtime/src/event-hooks.d.ts +49 -0
- package/dist/runtime/src/event-hooks.d.ts.map +1 -0
- package/dist/runtime/src/i18n.d.ts +55 -0
- package/dist/runtime/src/i18n.d.ts.map +1 -0
- package/dist/runtime/src/index.d.ts +28 -0
- package/dist/runtime/src/index.d.ts.map +1 -0
- package/dist/runtime/src/invoice.d.ts +120 -0
- package/dist/runtime/src/invoice.d.ts.map +1 -0
- package/dist/runtime/src/media-hooks.d.ts +178 -0
- package/dist/runtime/src/media-hooks.d.ts.map +1 -0
- package/dist/runtime/src/middleware.d.ts +26 -0
- package/dist/runtime/src/middleware.d.ts.map +1 -0
- package/dist/runtime/src/plugin.d.ts +32 -0
- package/dist/runtime/src/plugin.d.ts.map +1 -0
- package/dist/runtime/src/router.d.ts +168 -0
- package/dist/runtime/src/router.d.ts.map +1 -0
- package/dist/runtime/src/session.d.ts +20 -0
- package/dist/runtime/src/session.d.ts.map +1 -0
- package/dist/runtime/src/stream.d.ts +34 -0
- package/dist/runtime/src/stream.d.ts.map +1 -0
- package/dist/storage/src/drivers/file.d.ts +18 -0
- package/dist/storage/src/drivers/file.d.ts.map +1 -0
- package/dist/storage/src/drivers/memory.d.ts +11 -0
- package/dist/storage/src/drivers/memory.d.ts.map +1 -0
- package/dist/storage/src/index.d.ts +5 -0
- package/dist/storage/src/index.d.ts.map +1 -0
- package/dist/storage/src/plugin.d.ts +29 -0
- package/dist/storage/src/plugin.d.ts.map +1 -0
- package/dist/storage/src/types.d.ts +29 -0
- package/dist/storage/src/types.d.ts.map +1 -0
- package/dist/telegram/src/adapter.d.ts +83 -0
- package/dist/telegram/src/adapter.d.ts.map +1 -0
- package/dist/telegram/src/conversations.d.ts +175 -0
- package/dist/telegram/src/conversations.d.ts.map +1 -0
- package/dist/telegram/src/index.d.ts +8 -0
- package/dist/telegram/src/index.d.ts.map +1 -0
- package/dist/telegram/src/serialize.d.ts +80 -0
- package/dist/telegram/src/serialize.d.ts.map +1 -0
- package/dist/telegram/src/stream.d.ts +12 -0
- package/dist/telegram/src/stream.d.ts.map +1 -0
- package/package.json +31 -0
- package/src/index.ts +4 -0
package/README.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# @teactjs/storage
|
|
2
|
+
|
|
3
|
+
Persistent storage plugin for Teact. Store and retrieve data across bot restarts with file-based or in-memory drivers.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
bun add @teactjs/storage
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
|
|
13
|
+
Register the plugin with `createBot`:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { createBot } from "@teactjs/core";
|
|
17
|
+
import { storagePlugin } from "@teactjs/storage";
|
|
18
|
+
|
|
19
|
+
const bot = createBot({
|
|
20
|
+
plugins: [
|
|
21
|
+
storagePlugin({
|
|
22
|
+
driver: "file", // "file" | "memory" | custom StorageDriver
|
|
23
|
+
path: "./data", // directory for file driver (default: "./data")
|
|
24
|
+
}),
|
|
25
|
+
],
|
|
26
|
+
// ...
|
|
27
|
+
});
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## useStorage
|
|
31
|
+
|
|
32
|
+
Per-key reactive storage hook:
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
import { useStorage } from "@teactjs/storage";
|
|
36
|
+
|
|
37
|
+
function Favorites() {
|
|
38
|
+
const [favorites, setFavorites] = useStorage<string[]>("favorites", []);
|
|
39
|
+
|
|
40
|
+
return (
|
|
41
|
+
<Message text={`You have ${favorites.length} favorites`}>
|
|
42
|
+
<InlineKeyboard>
|
|
43
|
+
<Button
|
|
44
|
+
text="Add Pikachu"
|
|
45
|
+
onClick={() => setFavorites([...favorites, "Pikachu"])}
|
|
46
|
+
/>
|
|
47
|
+
</InlineKeyboard>
|
|
48
|
+
</Message>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## useGlobalStorage
|
|
54
|
+
|
|
55
|
+
Access the raw storage interface for advanced operations:
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
const storage = useGlobalStorage();
|
|
59
|
+
|
|
60
|
+
await storage.get("key");
|
|
61
|
+
await storage.set("key", value);
|
|
62
|
+
await storage.delete("key");
|
|
63
|
+
await storage.has("key");
|
|
64
|
+
await storage.keys();
|
|
65
|
+
await storage.clear();
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Drivers
|
|
69
|
+
|
|
70
|
+
### Built-in
|
|
71
|
+
|
|
72
|
+
- **`"memory"`** -- in-memory store, cleared on restart. Good for testing.
|
|
73
|
+
- **`"file"`** -- persists to disk as JSON files. Set `path` to control the directory.
|
|
74
|
+
|
|
75
|
+
### Custom Driver
|
|
76
|
+
|
|
77
|
+
Implement the `StorageDriver` interface:
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
import type { StorageDriver } from "@teactjs/storage";
|
|
81
|
+
|
|
82
|
+
const redisDriver: StorageDriver = {
|
|
83
|
+
get: async (key) => { /* ... */ },
|
|
84
|
+
set: async (key, value) => { /* ... */ },
|
|
85
|
+
delete: async (key) => { /* ... */ },
|
|
86
|
+
has: async (key) => { /* ... */ },
|
|
87
|
+
clear: async () => { /* ... */ },
|
|
88
|
+
keys: async () => { /* ... */ },
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
storagePlugin({ driver: redisDriver });
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## See Also
|
|
95
|
+
|
|
96
|
+
- [`@teactjs/core`](../core) for the barrel import
|
|
97
|
+
- [`@teactjs/runtime`](../runtime) for the plugin system
|