This commit is contained in:
Morten Olsen
2024-12-10 20:59:29 +01:00
commit ede2d56b7c
54 changed files with 6955 additions and 0 deletions

2
packages/fs-memory/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
/node_modules/
/dist/

View File

@@ -0,0 +1,19 @@
{
"name": "@plaindb/fs-memory",
"version": "1.0.0",
"type": "module",
"main": "dist/exports.js",
"files": [
"dist"
],
"scripts": {
"build": "tsc --build"
},
"dependencies": {
"@plaindb/plaindb": "workspace:*"
},
"devDependencies": {
"@types/node": "^22.10.1",
"typescript": "^5.7.2"
}
}

View File

@@ -0,0 +1,36 @@
import { FileSystem } from '@plaindb/plaindb';
type MemoryFileSystemOptions = {
documents?: Record<string, Buffer>;
};
class MemoryFileSystem extends FileSystem {
#options: MemoryFileSystemOptions;
#files: Record<string, Buffer | undefined>;
constructor(options: MemoryFileSystemOptions = {}) {
super();
this.#options = options;
this.#files = {
...this.#options.documents,
};
}
public get = async (location: string): Promise<Buffer | undefined> => {
return this.#files[location];
};
public set = async (location: string, data: Buffer): Promise<void> => {
this.#files[location] = data;
};
public update = async (files: Record<string, Buffer | undefined>) => {
this.#files = {
...this.#files,
...files,
};
this.emit('changed', Object.keys(files));
};
}
export { MemoryFileSystem };

View File

@@ -0,0 +1,9 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"outDir": "dist"
},
"include": [
"src"
]
}