From 7ad30dc660900c5d903ac51f8e02b713a2b5951b Mon Sep 17 00:00:00 2001
From: Alex Yang <himself65@outlook.com>
Date: Wed, 24 Jan 2024 17:09:52 -0600
Subject: [PATCH] chore: abstract `node:path` (#435)

---
 packages/core/package.json                                 | 1 +
 packages/core/src/Node.ts                                  | 3 +--
 packages/core/src/env/index.edge-light.ts                  | 3 +++
 packages/core/src/env/index.ts                             | 3 ++-
 packages/core/src/storage/StorageContext.ts                | 3 +--
 packages/core/src/storage/docStore/SimpleDocumentStore.ts  | 3 +--
 packages/core/src/storage/indexStore/SimpleIndexStore.ts   | 3 +--
 packages/core/src/storage/kvStore/SimpleKVStore.ts         | 3 +--
 packages/core/src/storage/vectorStore/SimpleVectorStore.ts | 3 +--
 pnpm-lock.yaml                                             | 7 +++++++
 10 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/packages/core/package.json b/packages/core/package.json
index 0abb2fefe..76ce2a65c 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -21,6 +21,7 @@
     "notion-md-crawler": "^0.0.2",
     "openai": "^4.20.1",
     "papaparse": "^5.4.1",
+    "pathe": "^1.1.2",
     "pdfjs-dist": "4.0.269",
     "pg": "^8.11.3",
     "pgvector": "^0.1.5",
diff --git a/packages/core/src/Node.ts b/packages/core/src/Node.ts
index ba47f3581..538d4a020 100644
--- a/packages/core/src/Node.ts
+++ b/packages/core/src/Node.ts
@@ -1,6 +1,5 @@
 import _ from "lodash";
-import path from "node:path";
-import { createSHA256, randomUUID } from "./env";
+import { createSHA256, path, randomUUID } from "./env";
 
 export enum NodeRelationship {
   SOURCE = "SOURCE",
diff --git a/packages/core/src/env/index.edge-light.ts b/packages/core/src/env/index.edge-light.ts
index 562710cbc..522fcca3e 100644
--- a/packages/core/src/env/index.edge-light.ts
+++ b/packages/core/src/env/index.edge-light.ts
@@ -1,6 +1,9 @@
 import { Sha256 } from "@aws-crypto/sha256-js";
+import pathe from "pathe";
 import { CompleteFileSystem, InMemoryFileSystem } from "../storage";
 
+export { pathe as path };
+
 export interface SHA256 {
   update(data: string | Uint8Array): void;
   // to base64
diff --git a/packages/core/src/env/index.ts b/packages/core/src/env/index.ts
index 6d164da0f..a88c1b3af 100644
--- a/packages/core/src/env/index.ts
+++ b/packages/core/src/env/index.ts
@@ -2,6 +2,7 @@ import { ok } from "node:assert";
 import { createHash, randomUUID } from "node:crypto";
 import fs from "node:fs/promises";
 import { EOL } from "node:os";
+import path from "node:path";
 import type { CompleteFileSystem } from "../storage";
 import type { SHA256 } from "./index.edge-light";
 
@@ -19,4 +20,4 @@ export function createSHA256(): SHA256 {
 
 export const defaultFS: CompleteFileSystem = fs;
 
-export { EOL, ok, randomUUID };
+export { EOL, ok, path, randomUUID };
diff --git a/packages/core/src/storage/StorageContext.ts b/packages/core/src/storage/StorageContext.ts
index 06658ca20..50e973a08 100644
--- a/packages/core/src/storage/StorageContext.ts
+++ b/packages/core/src/storage/StorageContext.ts
@@ -1,5 +1,4 @@
-import path from "path";
-import { defaultFS } from "../env";
+import { defaultFS, path } from "../env";
 import { GenericFileSystem } from "./FileSystem";
 import { DEFAULT_IMAGE_VECTOR_NAMESPACE, DEFAULT_NAMESPACE } from "./constants";
 import { SimpleDocumentStore } from "./docStore/SimpleDocumentStore";
diff --git a/packages/core/src/storage/docStore/SimpleDocumentStore.ts b/packages/core/src/storage/docStore/SimpleDocumentStore.ts
index 453d76a7c..c05d93424 100644
--- a/packages/core/src/storage/docStore/SimpleDocumentStore.ts
+++ b/packages/core/src/storage/docStore/SimpleDocumentStore.ts
@@ -1,6 +1,5 @@
 import _ from "lodash";
-import path from "path";
-import { defaultFS } from "../../env";
+import { defaultFS, path } from "../../env";
 import { GenericFileSystem } from "../FileSystem";
 import {
   DEFAULT_DOC_STORE_PERSIST_FILENAME,
diff --git a/packages/core/src/storage/indexStore/SimpleIndexStore.ts b/packages/core/src/storage/indexStore/SimpleIndexStore.ts
index 4ab7c0530..faa68ac3f 100644
--- a/packages/core/src/storage/indexStore/SimpleIndexStore.ts
+++ b/packages/core/src/storage/indexStore/SimpleIndexStore.ts
@@ -1,5 +1,4 @@
-import path from "path";
-import { defaultFS } from "../../env";
+import { defaultFS, path } from "../../env";
 import { GenericFileSystem } from "../FileSystem";
 import {
   DEFAULT_INDEX_STORE_PERSIST_FILENAME,
diff --git a/packages/core/src/storage/kvStore/SimpleKVStore.ts b/packages/core/src/storage/kvStore/SimpleKVStore.ts
index 6581d3711..30c932deb 100644
--- a/packages/core/src/storage/kvStore/SimpleKVStore.ts
+++ b/packages/core/src/storage/kvStore/SimpleKVStore.ts
@@ -1,6 +1,5 @@
 import _ from "lodash";
-import path from "path";
-import { defaultFS } from "../../env";
+import { defaultFS, path } from "../../env";
 import { GenericFileSystem, exists } from "../FileSystem";
 import { DEFAULT_COLLECTION } from "../constants";
 import { BaseKVStore } from "./types";
diff --git a/packages/core/src/storage/vectorStore/SimpleVectorStore.ts b/packages/core/src/storage/vectorStore/SimpleVectorStore.ts
index 5a6679d89..5c9170628 100644
--- a/packages/core/src/storage/vectorStore/SimpleVectorStore.ts
+++ b/packages/core/src/storage/vectorStore/SimpleVectorStore.ts
@@ -1,12 +1,11 @@
 import _ from "lodash";
-import path from "path";
 import { BaseNode } from "../../Node";
 import {
   getTopKEmbeddings,
   getTopKEmbeddingsLearner,
   getTopKMMREmbeddings,
 } from "../../embeddings";
-import { defaultFS } from "../../env";
+import { defaultFS, path } from "../../env";
 import { GenericFileSystem, exists } from "../FileSystem";
 import { DEFAULT_PERSIST_DIR } from "../constants";
 import {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4c31ae497..c68167bd1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -203,6 +203,9 @@ importers:
       papaparse:
         specifier: ^5.4.1
         version: 5.4.1
+      pathe:
+        specifier: ^1.1.2
+        version: 1.1.2
       pdfjs-dist:
         specifier: 4.0.269
         version: 4.0.269
@@ -12207,6 +12210,10 @@ packages:
     dev: false
     optional: true
 
+  /pathe@1.1.2:
+    resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
+    dev: false
+
   /pdfjs-dist@4.0.269:
     resolution: {integrity: sha512-jjWO56tcOjnmPqDf8PmXDeZ781AGvpHMYI3HhNtaFKTRXXPaD1ArSrhVe38/XsrIQJ0onISCND/vuXaWJkiDWw==}
     engines: {node: '>=18'}
-- 
GitLab