diff options
| author | Mohamed Bassem <me@mbassem.com> | 2026-02-09 01:22:30 +0000 |
|---|---|---|
| committer | Mohamed Bassem <me@mbassem.com> | 2026-02-09 01:22:30 +0000 |
| commit | a04d3c35fc9082e529a713605a038d236bb072c7 (patch) | |
| tree | 3e69735f9762c1739402afe30c26961b7d8e598a /packages/shared-server | |
| parent | 298a4277da7376ee6e7471f180c0030f35db49e4 (diff) | |
| download | karakeep-a04d3c35fc9082e529a713605a038d236bb072c7.tar.zst | |
refactor: move assetdb to shared-server
Diffstat (limited to '')
| -rw-r--r-- | packages/shared-server/assetdb.ts (renamed from packages/shared/assetdb.ts) | 34 | ||||
| -rw-r--r-- | packages/shared-server/package.json | 8 |
2 files changed, 29 insertions, 13 deletions
diff --git a/packages/shared/assetdb.ts b/packages/shared-server/assetdb.ts index 2e22faf7..bb6bb75e 100644 --- a/packages/shared/assetdb.ts +++ b/packages/shared-server/assetdb.ts @@ -11,12 +11,12 @@ import { PutObjectCommand, S3Client, } from "@aws-sdk/client-s3"; -import { Glob } from "glob"; +import glob from "glob"; import { z } from "zod"; -import serverConfig from "./config"; -import logger from "./logger"; -import { QuotaApproved } from "./storageQuota"; +import serverConfig from "@karakeep/shared/config"; +import logger from "@karakeep/shared/logger"; +import { QuotaApproved } from "@karakeep/shared/storageQuota"; const ROOT_PATH = serverConfig.assetsDir; @@ -283,18 +283,30 @@ class LocalFileSystemAssetStore implements AssetStore { } async *getAllAssets() { - const g = new Glob(`/**/**/asset.bin`, { - maxDepth: 3, - root: this.rootPath, - cwd: this.rootPath, - absolute: false, + const files = await new Promise<string[]>((resolve, reject) => { + glob( + "*/*/asset.bin", + { + cwd: this.rootPath, + nodir: true, + }, + (err, matches) => { + if (err) { + reject(err); + return; + } + resolve(matches); + }, + ); }); - for await (const file of g) { + + for (const file of files) { const [userId, assetId] = file.split("/").slice(0, 2); const [size, metadata] = await Promise.all([ this.getAssetSize({ userId, assetId }), this.readAssetMetadata({ userId, assetId }), ]); + yield { userId, assetId, @@ -605,7 +617,7 @@ export { LocalFileSystemAssetStore, S3AssetStore }; * Example usage of S3AssetStore: * * import { S3Client } from "@aws-sdk/client-s3"; - * import { S3AssetStore } from "@karakeep/shared/assetdb"; + * import { S3AssetStore } from "@karakeep/shared-server/assetdb"; * * const s3Client = new S3Client({ * region: "us-east-1", diff --git a/packages/shared-server/package.json b/packages/shared-server/package.json index 357248b4..0afc2bf2 100644 --- a/packages/shared-server/package.json +++ b/packages/shared-server/package.json @@ -5,6 +5,7 @@ "private": true, "type": "module", "dependencies": { + "@aws-sdk/client-s3": "^3.842.0", "@karakeep/db": "workspace:^0.1.0", "@karakeep/plugins": "workspace:^0.1.0", "@karakeep/shared": "workspace:^0.1.0", @@ -13,7 +14,9 @@ "@opentelemetry/resources": "^2.2.0", "@opentelemetry/sdk-trace-base": "^2.2.0", "@opentelemetry/sdk-trace-node": "^2.2.0", - "@opentelemetry/semantic-conventions": "^1.38.0" + "@opentelemetry/semantic-conventions": "^1.38.0", + "glob": "^11.0.0", + "zod": "^3.24.2" }, "devDependencies": { "@karakeep/prettier-config": "workspace:^0.1.0", @@ -29,7 +32,8 @@ }, "main": "index.ts", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./assetdb": "./assetdb.ts" }, "prettier": "@karakeep/prettier-config" } |
