This commit is contained in:
2025-09-19 14:25:20 +08:00
parent 269893a435
commit fbf3f77229
24949 changed files with 2839404 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
/**
* Used to cache a stats object for the virtual file.
* Extracted from the `mock-fs` package.
*
* @author Tim Schaub http://tschaub.net/
* @author `webpack-virtual-modules` Contributors
* @link https://github.com/tschaub/mock-fs/blob/master/lib/binding.js
* @link https://github.com/tschaub/mock-fs/blob/master/license.md
*/
import constants from 'constants';
export class VirtualStats {
/**
* Create a new stats object.
*
* @param config Stats properties.
*/
public constructor(config) {
for (const key in config) {
if (!Object.prototype.hasOwnProperty.call(config, key)) {
continue;
}
this[key] = config[key];
}
}
/**
* Check if mode indicates property.
*/
private _checkModeProperty(property): boolean {
return ((this as any).mode & constants.S_IFMT) === property;
}
public isDirectory(): boolean {
return this._checkModeProperty(constants.S_IFDIR);
}
public isFile(): boolean {
return this._checkModeProperty(constants.S_IFREG);
}
public isBlockDevice(): boolean {
return this._checkModeProperty(constants.S_IFBLK);
}
public isCharacterDevice(): boolean {
return this._checkModeProperty(constants.S_IFCHR);
}
public isSymbolicLink(): boolean {
return this._checkModeProperty(constants.S_IFLNK);
}
public isFIFO(): boolean {
return this._checkModeProperty(constants.S_IFIFO);
}
public isSocket(): boolean {
return this._checkModeProperty(constants.S_IFSOCK);
}
}