aboutsummaryrefslogtreecommitdiff
path: root/node_modules/enhanced-resolve/lib/SyncAsyncFileSystemDecorator.js
diff options
context:
space:
mode:
authorMinteck <nekostarfan@gmail.com>2021-08-24 14:41:48 +0200
committerMinteck <nekostarfan@gmail.com>2021-08-24 14:41:48 +0200
commitd25e11bee6ca5ca523884da132d18e1400e077b9 (patch)
tree8af39fde19f7ed640a60fb397c7edd647dff1c4c /node_modules/enhanced-resolve/lib/SyncAsyncFileSystemDecorator.js
downloadkartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.gz
kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.bz2
kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.zip
Initial commit
Diffstat (limited to 'node_modules/enhanced-resolve/lib/SyncAsyncFileSystemDecorator.js')
-rw-r--r--node_modules/enhanced-resolve/lib/SyncAsyncFileSystemDecorator.js95
1 files changed, 95 insertions, 0 deletions
diff --git a/node_modules/enhanced-resolve/lib/SyncAsyncFileSystemDecorator.js b/node_modules/enhanced-resolve/lib/SyncAsyncFileSystemDecorator.js
new file mode 100644
index 0000000..ee9116f
--- /dev/null
+++ b/node_modules/enhanced-resolve/lib/SyncAsyncFileSystemDecorator.js
@@ -0,0 +1,95 @@
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+
+"use strict";
+
+/** @typedef {import("./Resolver").FileSystem} FileSystem */
+/** @typedef {import("./Resolver").SyncFileSystem} SyncFileSystem */
+
+/**
+ * @param {SyncFileSystem} fs file system implementation
+ * @constructor
+ */
+function SyncAsyncFileSystemDecorator(fs) {
+ this.fs = fs;
+
+ this.lstat = undefined;
+ this.lstatSync = undefined;
+ const lstatSync = fs.lstatSync;
+ if (lstatSync) {
+ this.lstat = (arg, options, callback) => {
+ let result;
+ try {
+ result = lstatSync.call(fs, arg);
+ } catch (e) {
+ return (callback || options)(e);
+ }
+ (callback || options)(null, result);
+ };
+ this.lstatSync = (arg, options) => lstatSync.call(fs, arg, options);
+ }
+
+ this.stat = (arg, options, callback) => {
+ let result;
+ try {
+ result = callback ? fs.statSync(arg, options) : fs.statSync(arg);
+ } catch (e) {
+ return (callback || options)(e);
+ }
+ (callback || options)(null, result);
+ };
+ this.statSync = (arg, options) => fs.statSync(arg, options);
+
+ this.readdir = (arg, options, callback) => {
+ let result;
+ try {
+ result = fs.readdirSync(arg);
+ } catch (e) {
+ return (callback || options)(e);
+ }
+ (callback || options)(null, result);
+ };
+ this.readdirSync = (arg, options) => fs.readdirSync(arg, options);
+
+ this.readFile = (arg, options, callback) => {
+ let result;
+ try {
+ result = fs.readFileSync(arg);
+ } catch (e) {
+ return (callback || options)(e);
+ }
+ (callback || options)(null, result);
+ };
+ this.readFileSync = (arg, options) => fs.readFileSync(arg, options);
+
+ this.readlink = (arg, options, callback) => {
+ let result;
+ try {
+ result = fs.readlinkSync(arg);
+ } catch (e) {
+ return (callback || options)(e);
+ }
+ (callback || options)(null, result);
+ };
+ this.readlinkSync = (arg, options) => fs.readlinkSync(arg, options);
+
+ this.readJson = undefined;
+ this.readJsonSync = undefined;
+ const readJsonSync = fs.readJsonSync;
+ if (readJsonSync) {
+ this.readJson = (arg, options, callback) => {
+ let result;
+ try {
+ result = readJsonSync.call(fs, arg);
+ } catch (e) {
+ return (callback || options)(e);
+ }
+ (callback || options)(null, result);
+ };
+
+ this.readJsonSync = (arg, options) => readJsonSync.call(fs, arg, options);
+ }
+}
+module.exports = SyncAsyncFileSystemDecorator;