gx
chenyc
2025-02-12 ea42ff3ebee1eeb3fb29423aa848a249441db81c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { FileSystem } from './types';
import { isNodejs } from './isNodejs';
 
export function createFileSystem(fs?: any): FileSystem {
  let requireFsError = '';
  if (!fs && isNodejs()) {
    try {
      // eslint-disable-next-line global-require
      fs = require('fs');
    } catch (err) {
      requireFsError = (err as any).toString();
    }
  }
 
  const readFile = fs
    ? (filePath: string) => new Promise((resolve, reject) => { fs.readFile(filePath, (err: any, buffer) => (err ? reject(err) : resolve(buffer))); })
    : () => { throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`); };
  return { readFile };
}