feat: checkpoint
This commit is contained in:
13
platform/storage/package.json
Normal file
13
platform/storage/package.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "@platform/storage",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"main": "./storage.ts",
|
||||
"exports": {
|
||||
".": "./storage.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@platform/relay": "workspace:*"
|
||||
}
|
||||
}
|
||||
22
platform/storage/storage.ts
Normal file
22
platform/storage/storage.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { AsyncLocalStorage } from "node:async_hooks";
|
||||
|
||||
import { InternalServerError } from "@platform/relay";
|
||||
|
||||
export const storage = new AsyncLocalStorage<StorageContext>();
|
||||
|
||||
/**
|
||||
* TODO ...
|
||||
*/
|
||||
export function getStorageContext(): StorageContext {
|
||||
const store = storage.getStore();
|
||||
if (store === undefined) {
|
||||
throw new InternalServerError(
|
||||
"Storage 'store' missing, make sure to resolve within a 'node:async_hooks' wrapped context.",
|
||||
);
|
||||
}
|
||||
return store;
|
||||
}
|
||||
|
||||
export interface StorageContext {
|
||||
id: string;
|
||||
}
|
||||
Reference in New Issue
Block a user