aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@nodelib/fs.stat
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/@nodelib/fs.stat
downloadkartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.gz
kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.bz2
kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.zip
Initial commit
Diffstat (limited to 'node_modules/@nodelib/fs.stat')
-rw-r--r--node_modules/@nodelib/fs.stat/LICENSE21
-rw-r--r--node_modules/@nodelib/fs.stat/README.md126
-rw-r--r--node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts13
-rw-r--r--node_modules/@nodelib/fs.stat/out/adapters/fs.js17
-rw-r--r--node_modules/@nodelib/fs.stat/out/index.d.ts12
-rw-r--r--node_modules/@nodelib/fs.stat/out/index.js26
-rw-r--r--node_modules/@nodelib/fs.stat/out/providers/async.d.ts4
-rw-r--r--node_modules/@nodelib/fs.stat/out/providers/async.js36
-rw-r--r--node_modules/@nodelib/fs.stat/out/providers/sync.d.ts3
-rw-r--r--node_modules/@nodelib/fs.stat/out/providers/sync.js23
-rw-r--r--node_modules/@nodelib/fs.stat/out/settings.d.ts16
-rw-r--r--node_modules/@nodelib/fs.stat/out/settings.js16
-rw-r--r--node_modules/@nodelib/fs.stat/out/types/index.d.ts4
-rw-r--r--node_modules/@nodelib/fs.stat/out/types/index.js2
-rw-r--r--node_modules/@nodelib/fs.stat/package.json37
15 files changed, 356 insertions, 0 deletions
diff --git a/node_modules/@nodelib/fs.stat/LICENSE b/node_modules/@nodelib/fs.stat/LICENSE
new file mode 100644
index 0000000..65a9994
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Denis Malinochkin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/@nodelib/fs.stat/README.md b/node_modules/@nodelib/fs.stat/README.md
new file mode 100644
index 0000000..686f047
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/README.md
@@ -0,0 +1,126 @@
+# @nodelib/fs.stat
+
+> Get the status of a file with some features.
+
+## :bulb: Highlights
+
+Wrapper around standard method `fs.lstat` and `fs.stat` with some features.
+
+* :beginner: Normally follows symbolic link.
+* :gear: Can safely work with broken symbolic link.
+
+## Install
+
+```console
+npm install @nodelib/fs.stat
+```
+
+## Usage
+
+```ts
+import * as fsStat from '@nodelib/fs.stat';
+
+fsStat.stat('path', (error, stats) => { /* … */ });
+```
+
+## API
+
+### .stat(path, [optionsOrSettings], callback)
+
+Returns an instance of `fs.Stats` class for provided path with standard callback-style.
+
+```ts
+fsStat.stat('path', (error, stats) => { /* … */ });
+fsStat.stat('path', {}, (error, stats) => { /* … */ });
+fsStat.stat('path', new fsStat.Settings(), (error, stats) => { /* … */ });
+```
+
+### .statSync(path, [optionsOrSettings])
+
+Returns an instance of `fs.Stats` class for provided path.
+
+```ts
+const stats = fsStat.stat('path');
+const stats = fsStat.stat('path', {});
+const stats = fsStat.stat('path', new fsStat.Settings());
+```
+
+#### path
+
+* Required: `true`
+* Type: `string | Buffer | URL`
+
+A path to a file. If a URL is provided, it must use the `file:` protocol.
+
+#### optionsOrSettings
+
+* Required: `false`
+* Type: `Options | Settings`
+* Default: An instance of `Settings` class
+
+An [`Options`](#options) object or an instance of [`Settings`](#settings) class.
+
+> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class.
+
+### Settings([options])
+
+A class of full settings of the package.
+
+```ts
+const settings = new fsStat.Settings({ followSymbolicLink: false });
+
+const stats = fsStat.stat('path', settings);
+```
+
+## Options
+
+### `followSymbolicLink`
+
+* Type: `boolean`
+* Default: `true`
+
+Follow symbolic link or not. Call `fs.stat` on symbolic link if `true`.
+
+### `markSymbolicLink`
+
+* Type: `boolean`
+* Default: `false`
+
+Mark symbolic link by setting the return value of `isSymbolicLink` function to always `true` (even after `fs.stat`).
+
+> :book: Can be used if you want to know what is hidden behind a symbolic link, but still continue to know that it is a symbolic link.
+
+### `throwErrorOnBrokenSymbolicLink`
+
+* Type: `boolean`
+* Default: `true`
+
+Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`.
+
+### `fs`
+
+* Type: [`FileSystemAdapter`](./src/adapters/fs.ts)
+* Default: A default FS methods
+
+By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own.
+
+```ts
+interface FileSystemAdapter {
+ lstat?: typeof fs.lstat;
+ stat?: typeof fs.stat;
+ lstatSync?: typeof fs.lstatSync;
+ statSync?: typeof fs.statSync;
+}
+
+const settings = new fsStat.Settings({
+ fs: { lstat: fakeLstat }
+});
+```
+
+## Changelog
+
+See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version.
+
+## License
+
+This software is released under the terms of the MIT license.
diff --git a/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts b/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts
new file mode 100644
index 0000000..3af759c
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts
@@ -0,0 +1,13 @@
+/// <reference types="node" />
+import * as fs from 'fs';
+import type { ErrnoException } from '../types';
+export declare type StatAsynchronousMethod = (path: string, callback: (error: ErrnoException | null, stats: fs.Stats) => void) => void;
+export declare type StatSynchronousMethod = (path: string) => fs.Stats;
+export interface FileSystemAdapter {
+ lstat: StatAsynchronousMethod;
+ stat: StatAsynchronousMethod;
+ lstatSync: StatSynchronousMethod;
+ statSync: StatSynchronousMethod;
+}
+export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter;
+export declare function createFileSystemAdapter(fsMethods?: Partial<FileSystemAdapter>): FileSystemAdapter;
diff --git a/node_modules/@nodelib/fs.stat/out/adapters/fs.js b/node_modules/@nodelib/fs.stat/out/adapters/fs.js
new file mode 100644
index 0000000..8dc08c8
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/out/adapters/fs.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;
+const fs = require("fs");
+exports.FILE_SYSTEM_ADAPTER = {
+ lstat: fs.lstat,
+ stat: fs.stat,
+ lstatSync: fs.lstatSync,
+ statSync: fs.statSync
+};
+function createFileSystemAdapter(fsMethods) {
+ if (fsMethods === undefined) {
+ return exports.FILE_SYSTEM_ADAPTER;
+ }
+ return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);
+}
+exports.createFileSystemAdapter = createFileSystemAdapter;
diff --git a/node_modules/@nodelib/fs.stat/out/index.d.ts b/node_modules/@nodelib/fs.stat/out/index.d.ts
new file mode 100644
index 0000000..f95db99
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/out/index.d.ts
@@ -0,0 +1,12 @@
+import type { FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod } from './adapters/fs';
+import * as async from './providers/async';
+import Settings, { Options } from './settings';
+import type { Stats } from './types';
+declare type AsyncCallback = async.AsyncCallback;
+declare function stat(path: string, callback: AsyncCallback): void;
+declare function stat(path: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void;
+declare namespace stat {
+ function __promisify__(path: string, optionsOrSettings?: Options | Settings): Promise<Stats>;
+}
+declare function statSync(path: string, optionsOrSettings?: Options | Settings): Stats;
+export { Settings, stat, statSync, AsyncCallback, FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod, Options, Stats };
diff --git a/node_modules/@nodelib/fs.stat/out/index.js b/node_modules/@nodelib/fs.stat/out/index.js
new file mode 100644
index 0000000..b23f751
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/out/index.js
@@ -0,0 +1,26 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.statSync = exports.stat = exports.Settings = void 0;
+const async = require("./providers/async");
+const sync = require("./providers/sync");
+const settings_1 = require("./settings");
+exports.Settings = settings_1.default;
+function stat(path, optionsOrSettingsOrCallback, callback) {
+ if (typeof optionsOrSettingsOrCallback === 'function') {
+ async.read(path, getSettings(), optionsOrSettingsOrCallback);
+ return;
+ }
+ async.read(path, getSettings(optionsOrSettingsOrCallback), callback);
+}
+exports.stat = stat;
+function statSync(path, optionsOrSettings) {
+ const settings = getSettings(optionsOrSettings);
+ return sync.read(path, settings);
+}
+exports.statSync = statSync;
+function getSettings(settingsOrOptions = {}) {
+ if (settingsOrOptions instanceof settings_1.default) {
+ return settingsOrOptions;
+ }
+ return new settings_1.default(settingsOrOptions);
+}
diff --git a/node_modules/@nodelib/fs.stat/out/providers/async.d.ts b/node_modules/@nodelib/fs.stat/out/providers/async.d.ts
new file mode 100644
index 0000000..85423ce
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/out/providers/async.d.ts
@@ -0,0 +1,4 @@
+import type Settings from '../settings';
+import type { ErrnoException, Stats } from '../types';
+export declare type AsyncCallback = (error: ErrnoException, stats: Stats) => void;
+export declare function read(path: string, settings: Settings, callback: AsyncCallback): void;
diff --git a/node_modules/@nodelib/fs.stat/out/providers/async.js b/node_modules/@nodelib/fs.stat/out/providers/async.js
new file mode 100644
index 0000000..983ff0e
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/out/providers/async.js
@@ -0,0 +1,36 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.read = void 0;
+function read(path, settings, callback) {
+ settings.fs.lstat(path, (lstatError, lstat) => {
+ if (lstatError !== null) {
+ callFailureCallback(callback, lstatError);
+ return;
+ }
+ if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {
+ callSuccessCallback(callback, lstat);
+ return;
+ }
+ settings.fs.stat(path, (statError, stat) => {
+ if (statError !== null) {
+ if (settings.throwErrorOnBrokenSymbolicLink) {
+ callFailureCallback(callback, statError);
+ return;
+ }
+ callSuccessCallback(callback, lstat);
+ return;
+ }
+ if (settings.markSymbolicLink) {
+ stat.isSymbolicLink = () => true;
+ }
+ callSuccessCallback(callback, stat);
+ });
+ });
+}
+exports.read = read;
+function callFailureCallback(callback, error) {
+ callback(error);
+}
+function callSuccessCallback(callback, result) {
+ callback(null, result);
+}
diff --git a/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts b/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts
new file mode 100644
index 0000000..428c3d7
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts
@@ -0,0 +1,3 @@
+import type Settings from '../settings';
+import type { Stats } from '../types';
+export declare function read(path: string, settings: Settings): Stats;
diff --git a/node_modules/@nodelib/fs.stat/out/providers/sync.js b/node_modules/@nodelib/fs.stat/out/providers/sync.js
new file mode 100644
index 0000000..1521c36
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/out/providers/sync.js
@@ -0,0 +1,23 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.read = void 0;
+function read(path, settings) {
+ const lstat = settings.fs.lstatSync(path);
+ if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {
+ return lstat;
+ }
+ try {
+ const stat = settings.fs.statSync(path);
+ if (settings.markSymbolicLink) {
+ stat.isSymbolicLink = () => true;
+ }
+ return stat;
+ }
+ catch (error) {
+ if (!settings.throwErrorOnBrokenSymbolicLink) {
+ return lstat;
+ }
+ throw error;
+ }
+}
+exports.read = read;
diff --git a/node_modules/@nodelib/fs.stat/out/settings.d.ts b/node_modules/@nodelib/fs.stat/out/settings.d.ts
new file mode 100644
index 0000000..f4b3d44
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/out/settings.d.ts
@@ -0,0 +1,16 @@
+import * as fs from './adapters/fs';
+export interface Options {
+ followSymbolicLink?: boolean;
+ fs?: Partial<fs.FileSystemAdapter>;
+ markSymbolicLink?: boolean;
+ throwErrorOnBrokenSymbolicLink?: boolean;
+}
+export default class Settings {
+ private readonly _options;
+ readonly followSymbolicLink: boolean;
+ readonly fs: fs.FileSystemAdapter;
+ readonly markSymbolicLink: boolean;
+ readonly throwErrorOnBrokenSymbolicLink: boolean;
+ constructor(_options?: Options);
+ private _getValue;
+}
diff --git a/node_modules/@nodelib/fs.stat/out/settings.js b/node_modules/@nodelib/fs.stat/out/settings.js
new file mode 100644
index 0000000..111ec09
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/out/settings.js
@@ -0,0 +1,16 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const fs = require("./adapters/fs");
+class Settings {
+ constructor(_options = {}) {
+ this._options = _options;
+ this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);
+ this.fs = fs.createFileSystemAdapter(this._options.fs);
+ this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);
+ this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
+ }
+ _getValue(option, value) {
+ return option !== null && option !== void 0 ? option : value;
+ }
+}
+exports.default = Settings;
diff --git a/node_modules/@nodelib/fs.stat/out/types/index.d.ts b/node_modules/@nodelib/fs.stat/out/types/index.d.ts
new file mode 100644
index 0000000..74c08ed
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/out/types/index.d.ts
@@ -0,0 +1,4 @@
+/// <reference types="node" />
+import type * as fs from 'fs';
+export declare type Stats = fs.Stats;
+export declare type ErrnoException = NodeJS.ErrnoException;
diff --git a/node_modules/@nodelib/fs.stat/out/types/index.js b/node_modules/@nodelib/fs.stat/out/types/index.js
new file mode 100644
index 0000000..c8ad2e5
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/out/types/index.js
@@ -0,0 +1,2 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/node_modules/@nodelib/fs.stat/package.json b/node_modules/@nodelib/fs.stat/package.json
new file mode 100644
index 0000000..f2540c2
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "@nodelib/fs.stat",
+ "version": "2.0.5",
+ "description": "Get the status of a file with some features",
+ "license": "MIT",
+ "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat",
+ "keywords": [
+ "NodeLib",
+ "fs",
+ "FileSystem",
+ "file system",
+ "stat"
+ ],
+ "engines": {
+ "node": ">= 8"
+ },
+ "files": [
+ "out/**",
+ "!out/**/*.map",
+ "!out/**/*.spec.*"
+ ],
+ "main": "out/index.js",
+ "typings": "out/index.d.ts",
+ "scripts": {
+ "clean": "rimraf {tsconfig.tsbuildinfo,out}",
+ "lint": "eslint \"src/**/*.ts\" --cache",
+ "compile": "tsc -b .",
+ "compile:watch": "tsc -p . --watch --sourceMap",
+ "test": "mocha \"out/**/*.spec.js\" -s 0",
+ "build": "npm run clean && npm run compile && npm run lint && npm test",
+ "watch": "npm run clean && npm run compile:watch"
+ },
+ "devDependencies": {
+ "@nodelib/fs.macchiato": "1.0.4"
+ },
+ "gitHead": "d6a7960d5281d3dd5f8e2efba49bb552d090f562"
+}