From 0f29733ce19c1946edb2f81c065efbefb851c45b Mon Sep 17 00:00:00 2001 From: Thijs Louisse Date: Wed, 8 May 2024 14:11:34 +0200 Subject: [PATCH] feat: fs-adapter util --- .../src/program/utils/fs-adapter.js | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 packages-node/providence-analytics/src/program/utils/fs-adapter.js diff --git a/packages-node/providence-analytics/src/program/utils/fs-adapter.js b/packages-node/providence-analytics/src/program/utils/fs-adapter.js new file mode 100644 index 000000000..d0c2a1268 --- /dev/null +++ b/packages-node/providence-analytics/src/program/utils/fs-adapter.js @@ -0,0 +1,27 @@ +import originalNodeFs from 'fs'; + +/** + * Provides access to the file system (fs) which can be the real file system or a mock. + */ +class FsAdapter { + constructor() { + this.fs = originalNodeFs; + } + + /** + * Call this for mocking or compatibility with non-node environments. + * @param {originalNodeFs} fs + */ + setFs(fs) { + this.fs = fs; + } + + /** + * When done testing, call this to restore the real file system. + */ + restoreFs() { + this.fs = originalNodeFs; + } +} + +export const fsAdapter = new FsAdapter();