pwd-fs 3.2.4 → 3.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bitmask.d.ts +4 -0
- package/dist/bitmask.js +17 -0
- package/dist/bitmask.test.d.ts +1 -0
- package/dist/bitmask.test.js +29 -0
- package/dist/{src/index.d.ts → index.d.ts} +3 -0
- package/dist/{src/index.js → index.js} +3 -0
- package/dist/powered-file-system/append.d.ts +9 -0
- package/dist/powered-file-system/append.js +10 -0
- package/dist/powered-file-system/append.test.d.ts +1 -0
- package/dist/powered-file-system/append.test.js +47 -0
- package/dist/powered-file-system/chmod.d.ts +7 -0
- package/dist/powered-file-system/chmod.js +28 -0
- package/dist/powered-file-system/chmod.test.d.ts +1 -0
- package/dist/powered-file-system/chmod.test.js +71 -0
- package/dist/powered-file-system/chown.d.ts +9 -0
- package/dist/powered-file-system/chown.js +45 -0
- package/dist/powered-file-system/chown.test.d.ts +1 -0
- package/dist/powered-file-system/chown.test.js +82 -0
- package/dist/powered-file-system/copy.d.ts +8 -0
- package/dist/powered-file-system/copy.js +29 -0
- package/dist/powered-file-system/copy.test.d.ts +1 -0
- package/dist/powered-file-system/copy.test.js +82 -0
- package/dist/powered-file-system/mkdir.d.ts +8 -0
- package/dist/powered-file-system/mkdir.js +28 -0
- package/dist/powered-file-system/mkdir.test.d.ts +1 -0
- package/dist/powered-file-system/mkdir.test.js +116 -0
- package/dist/powered-file-system/read.d.ts +9 -0
- package/dist/powered-file-system/read.js +29 -0
- package/dist/powered-file-system/read.test.d.ts +1 -0
- package/dist/powered-file-system/read.test.js +75 -0
- package/dist/powered-file-system/readdir.d.ts +8 -0
- package/dist/powered-file-system/readdir.js +26 -0
- package/dist/powered-file-system/readdir.test.d.ts +1 -0
- package/dist/powered-file-system/readdir.test.js +72 -0
- package/dist/powered-file-system/remove.d.ts +7 -0
- package/dist/powered-file-system/remove.js +36 -0
- package/dist/powered-file-system/remove.test.d.ts +1 -0
- package/dist/powered-file-system/remove.test.js +78 -0
- package/dist/powered-file-system/rename.d.ts +7 -0
- package/dist/powered-file-system/rename.js +28 -0
- package/dist/powered-file-system/rename.test.d.ts +1 -0
- package/dist/powered-file-system/rename.test.js +70 -0
- package/dist/powered-file-system/stat.d.ts +7 -0
- package/dist/powered-file-system/stat.js +26 -0
- package/dist/powered-file-system/stat.test.d.ts +1 -0
- package/dist/powered-file-system/stat.test.js +79 -0
- package/dist/powered-file-system/symlink.d.ts +4 -0
- package/dist/powered-file-system/symlink.js +52 -0
- package/dist/powered-file-system/symlink.test.d.ts +1 -0
- package/dist/powered-file-system/symlink.test.js +77 -0
- package/dist/powered-file-system/test.d.ts +8 -0
- package/dist/powered-file-system/test.js +30 -0
- package/dist/powered-file-system/test.test.d.ts +1 -0
- package/dist/powered-file-system/test.test.js +76 -0
- package/dist/powered-file-system/write.d.ts +10 -0
- package/dist/powered-file-system/write.js +36 -0
- package/dist/powered-file-system/write.test.d.ts +1 -0
- package/dist/powered-file-system/write.test.js +97 -0
- package/dist/powered-file-system.d.ts +127 -0
- package/dist/powered-file-system.js +144 -0
- package/dist/powered-file-system.test.d.ts +1 -0
- package/dist/powered-file-system.test.js +21 -0
- package/dist/recurse-io-sync.d.ts +20 -0
- package/dist/{src/recurse-io-sync.js → recurse-io-sync.js} +37 -37
- package/dist/{src/recurse-io.d.ts → recurse-io.d.ts} +15 -1
- package/dist/{src/recurse-io.js → recurse-io.js} +52 -58
- package/dist/suite.test.d.ts +1 -0
- package/dist/suite.test.js +40 -0
- package/dist/test-utils.d.ts +18 -0
- package/dist/test-utils.js +72 -0
- package/package.json +31 -14
- package/readme.md +331 -246
- package/.travis.yml +0 -12
- package/appveyor.yml +0 -16
- package/dist/src/bitmask.d.ts +0 -1
- package/dist/src/bitmask.js +0 -18
- package/dist/src/powered-file-system.d.ts +0 -173
- package/dist/src/powered-file-system.js +0 -262
- package/dist/src/recurse-io-sync.d.ts +0 -5
- package/src/bitmask.ts +0 -20
- package/src/index.ts +0 -7
- package/src/powered-file-system.ts +0 -508
- package/src/recurse-io-sync.ts +0 -108
- package/src/recurse-io.ts +0 -238
- package/test/__fmock.ts +0 -45
- package/test/append.spec.ts +0 -71
- package/test/bitmask.spec.ts +0 -23
- package/test/chmod.spec.ts +0 -77
- package/test/chown.spec.ts +0 -92
- package/test/constructor.spec.ts +0 -15
- package/test/copy.spec.ts +0 -101
- package/test/mkdir.spec.ts +0 -121
- package/test/read.spec.ts +0 -91
- package/test/readdir.spec.ts +0 -86
- package/test/remove.spec.ts +0 -78
- package/test/rename.spec.ts +0 -84
- package/test/stat.spec.ts +0 -99
- package/test/symlink.spec.ts +0 -95
- package/test/test.spec.ts +0 -80
- package/test/write.spec.ts +0 -104
- package/tsconfig.json +0 -14
package/.travis.yml
DELETED
package/appveyor.yml
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
environment:
|
|
2
|
-
matrix:
|
|
3
|
-
- nodejs_version: 14
|
|
4
|
-
- nodejs_version: 16
|
|
5
|
-
- nodejs_version: 18
|
|
6
|
-
- nodejs_version: 20
|
|
7
|
-
install:
|
|
8
|
-
- ps: Install-Product node $env:nodejs_version
|
|
9
|
-
- npm config set loglevel warn
|
|
10
|
-
- npm install --silent
|
|
11
|
-
test_script:
|
|
12
|
-
- npm run build
|
|
13
|
-
- npm test
|
|
14
|
-
build: on
|
|
15
|
-
cache:
|
|
16
|
-
- node_modules
|
package/dist/src/bitmask.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function bitmask(mode: number): number;
|
package/dist/src/bitmask.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.bitmask = void 0;
|
|
4
|
-
function bitmask(mode) {
|
|
5
|
-
const type = typeof mode;
|
|
6
|
-
if (type !== 'number') {
|
|
7
|
-
throw new Error(`Argument of type '${type}' is not assignable to parameter of type 'number'.`);
|
|
8
|
-
}
|
|
9
|
-
const permissions = [0o400, 0o200, 0o100, 0o040, 0o020, 0o010, 0o004, 0o002, 0o001];
|
|
10
|
-
let umask = 0o000;
|
|
11
|
-
for (const flag of permissions) {
|
|
12
|
-
if (mode & flag) {
|
|
13
|
-
umask += flag;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return umask;
|
|
17
|
-
}
|
|
18
|
-
exports.bitmask = bitmask;
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
import fs from 'node:fs';
|
|
4
|
-
import { bitmask } from './bitmask';
|
|
5
|
-
export type Mode = keyof IConstants;
|
|
6
|
-
export type Flag = Mode | 'a';
|
|
7
|
-
export type Stats = fs.Stats;
|
|
8
|
-
export * from './bitmask';
|
|
9
|
-
export interface IConstants {
|
|
10
|
-
e: number;
|
|
11
|
-
r: number;
|
|
12
|
-
w: number;
|
|
13
|
-
x: number;
|
|
14
|
-
}
|
|
15
|
-
export declare class PoweredFileSystem {
|
|
16
|
-
readonly pwd: string;
|
|
17
|
-
readonly constants: IConstants;
|
|
18
|
-
static bitmask: typeof bitmask;
|
|
19
|
-
constructor(pwd?: string);
|
|
20
|
-
private resolve;
|
|
21
|
-
test(src: string, options: {
|
|
22
|
-
sync: true;
|
|
23
|
-
flag?: Mode;
|
|
24
|
-
}): boolean;
|
|
25
|
-
test(src: string, options?: {
|
|
26
|
-
sync?: false;
|
|
27
|
-
flag?: Mode;
|
|
28
|
-
}): Promise<boolean>;
|
|
29
|
-
stat(src: string, options: {
|
|
30
|
-
sync: true;
|
|
31
|
-
}): Stats;
|
|
32
|
-
stat(src: string, options?: {
|
|
33
|
-
sync?: false;
|
|
34
|
-
}): Promise<Stats>;
|
|
35
|
-
chmod(src: string, mode: number, options: {
|
|
36
|
-
sync: true;
|
|
37
|
-
}): void;
|
|
38
|
-
chmod(src: string, mode: number, options?: {
|
|
39
|
-
sync?: false;
|
|
40
|
-
}): Promise<void>;
|
|
41
|
-
chown(src: string, options: {
|
|
42
|
-
sync: true;
|
|
43
|
-
uid?: number;
|
|
44
|
-
gid?: number;
|
|
45
|
-
}): void;
|
|
46
|
-
chown(src: string, options?: {
|
|
47
|
-
sync?: false;
|
|
48
|
-
uid?: number;
|
|
49
|
-
gid?: number;
|
|
50
|
-
}): Promise<void>;
|
|
51
|
-
symlink(src: string, use: string, options: {
|
|
52
|
-
sync: true;
|
|
53
|
-
}): void;
|
|
54
|
-
symlink(src: string, use: string, options?: {
|
|
55
|
-
sync?: false;
|
|
56
|
-
}): Promise<void>;
|
|
57
|
-
copy(src: string, dir: string, options: {
|
|
58
|
-
sync: true;
|
|
59
|
-
umask?: number;
|
|
60
|
-
}): void;
|
|
61
|
-
copy(src: string, dir: string, options?: {
|
|
62
|
-
sync?: false;
|
|
63
|
-
umask?: number;
|
|
64
|
-
}): Promise<void>;
|
|
65
|
-
rename(src: string, use: string, options: {
|
|
66
|
-
sync: true;
|
|
67
|
-
}): void;
|
|
68
|
-
rename(src: string, use: string, options?: {
|
|
69
|
-
sync?: false;
|
|
70
|
-
}): Promise<void>;
|
|
71
|
-
remove(src: string, options: {
|
|
72
|
-
sync: true;
|
|
73
|
-
}): void;
|
|
74
|
-
remove(src: string, options?: {
|
|
75
|
-
sync?: false;
|
|
76
|
-
}): Promise<void>;
|
|
77
|
-
read(src: string, options: {
|
|
78
|
-
sync: true;
|
|
79
|
-
encoding: null;
|
|
80
|
-
flag?: Flag;
|
|
81
|
-
}): Buffer;
|
|
82
|
-
read(src: string, options: {
|
|
83
|
-
sync: true;
|
|
84
|
-
encoding?: BufferEncoding;
|
|
85
|
-
flag?: Flag;
|
|
86
|
-
}): string;
|
|
87
|
-
read(src: string, options: {
|
|
88
|
-
sync?: false;
|
|
89
|
-
encoding: null;
|
|
90
|
-
flag?: Flag;
|
|
91
|
-
}): Promise<Buffer>;
|
|
92
|
-
read(src: string, options?: {
|
|
93
|
-
sync?: false;
|
|
94
|
-
encoding?: BufferEncoding;
|
|
95
|
-
flag?: Flag;
|
|
96
|
-
}): Promise<string>;
|
|
97
|
-
write(src: string, data: Buffer, options: {
|
|
98
|
-
sync: true;
|
|
99
|
-
encoding: null;
|
|
100
|
-
umask?: number;
|
|
101
|
-
flag?: Flag;
|
|
102
|
-
}): void;
|
|
103
|
-
write(src: string, data: string, options: {
|
|
104
|
-
sync: true;
|
|
105
|
-
encoding?: BufferEncoding;
|
|
106
|
-
umask?: number;
|
|
107
|
-
flag?: Flag;
|
|
108
|
-
}): void;
|
|
109
|
-
write(src: string, data: Buffer, options: {
|
|
110
|
-
sync?: false;
|
|
111
|
-
encoding: null;
|
|
112
|
-
umask?: number;
|
|
113
|
-
flag?: Flag;
|
|
114
|
-
}): Promise<void>;
|
|
115
|
-
write(src: string, data: string, options?: {
|
|
116
|
-
sync?: false;
|
|
117
|
-
encoding?: BufferEncoding;
|
|
118
|
-
umask?: number;
|
|
119
|
-
flag?: Flag;
|
|
120
|
-
}): Promise<void>;
|
|
121
|
-
/**
|
|
122
|
-
* @deprecated The method should not be used
|
|
123
|
-
*/
|
|
124
|
-
append(src: string, data: Buffer, options: {
|
|
125
|
-
sync: true;
|
|
126
|
-
encoding: null;
|
|
127
|
-
umask?: number;
|
|
128
|
-
flag?: Flag;
|
|
129
|
-
}): void;
|
|
130
|
-
/**
|
|
131
|
-
* @deprecated The method should not be used
|
|
132
|
-
*/
|
|
133
|
-
append(src: string, data: string, options: {
|
|
134
|
-
sync: true;
|
|
135
|
-
encoding?: BufferEncoding;
|
|
136
|
-
umask?: number;
|
|
137
|
-
flag?: Flag;
|
|
138
|
-
}): void;
|
|
139
|
-
/**
|
|
140
|
-
* @deprecated The method should not be used
|
|
141
|
-
*/
|
|
142
|
-
append(src: string, data: Buffer, options: {
|
|
143
|
-
sync?: false;
|
|
144
|
-
encoding: null;
|
|
145
|
-
umask?: number;
|
|
146
|
-
flag?: Flag;
|
|
147
|
-
}): Promise<void>;
|
|
148
|
-
/**
|
|
149
|
-
* @deprecated The method should not be used
|
|
150
|
-
*/
|
|
151
|
-
append(src: string, data: string, options?: {
|
|
152
|
-
sync?: false;
|
|
153
|
-
encoding?: BufferEncoding;
|
|
154
|
-
umask?: number;
|
|
155
|
-
flag?: Flag;
|
|
156
|
-
}): Promise<void>;
|
|
157
|
-
readdir(dir: string, options: {
|
|
158
|
-
sync: true;
|
|
159
|
-
encoding?: BufferEncoding | null;
|
|
160
|
-
}): string[];
|
|
161
|
-
readdir(dir: string, options?: {
|
|
162
|
-
sync?: false;
|
|
163
|
-
encoding?: BufferEncoding | null;
|
|
164
|
-
}): Promise<string[]>;
|
|
165
|
-
mkdir(dir: string, options: {
|
|
166
|
-
sync: true;
|
|
167
|
-
umask?: number;
|
|
168
|
-
}): void;
|
|
169
|
-
mkdir(dir: string, options?: {
|
|
170
|
-
sync?: false;
|
|
171
|
-
umask?: number;
|
|
172
|
-
}): Promise<void>;
|
|
173
|
-
}
|
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.PoweredFileSystem = void 0;
|
|
21
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
22
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
23
|
-
const recurse_io_1 = require("./recurse-io");
|
|
24
|
-
const recurse_io_sync_1 = require("./recurse-io-sync");
|
|
25
|
-
const bitmask_1 = require("./bitmask");
|
|
26
|
-
__exportStar(require("./bitmask"), exports);
|
|
27
|
-
class PoweredFileSystem {
|
|
28
|
-
pwd;
|
|
29
|
-
constants = {
|
|
30
|
-
e: node_fs_1.default.constants.F_OK,
|
|
31
|
-
r: node_fs_1.default.constants.R_OK,
|
|
32
|
-
w: node_fs_1.default.constants.W_OK,
|
|
33
|
-
x: node_fs_1.default.constants.X_OK
|
|
34
|
-
};
|
|
35
|
-
static bitmask = bitmask_1.bitmask;
|
|
36
|
-
constructor(pwd) {
|
|
37
|
-
this.pwd = pwd ? node_path_1.default.resolve(pwd) : process.cwd();
|
|
38
|
-
}
|
|
39
|
-
resolve(src) {
|
|
40
|
-
return node_path_1.default.resolve(this.pwd, src);
|
|
41
|
-
}
|
|
42
|
-
test(src, { sync = false, flag = 'e' } = {}) {
|
|
43
|
-
const mode = this.constants[flag];
|
|
44
|
-
src = node_path_1.default.resolve(this.pwd, src);
|
|
45
|
-
if (sync) {
|
|
46
|
-
return node_fs_1.default.existsSync(src);
|
|
47
|
-
}
|
|
48
|
-
return new Promise((resolve) => {
|
|
49
|
-
node_fs_1.default.access(src, mode, (err) => {
|
|
50
|
-
if (err) {
|
|
51
|
-
return resolve(false);
|
|
52
|
-
}
|
|
53
|
-
resolve(true);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
stat(src, { sync = false } = {}) {
|
|
58
|
-
src = this.resolve(src);
|
|
59
|
-
if (sync) {
|
|
60
|
-
return node_fs_1.default.lstatSync(src);
|
|
61
|
-
}
|
|
62
|
-
return new Promise((resolve, reject) => {
|
|
63
|
-
node_fs_1.default.lstat(src, (err, stats) => {
|
|
64
|
-
if (err) {
|
|
65
|
-
return reject(err);
|
|
66
|
-
}
|
|
67
|
-
resolve(stats);
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
chmod(src, mode, { sync = false } = {}) {
|
|
72
|
-
src = this.resolve(src);
|
|
73
|
-
if (sync) {
|
|
74
|
-
return (0, recurse_io_sync_1.chmodSync)(src, mode);
|
|
75
|
-
}
|
|
76
|
-
return new Promise((resolve, reject) => {
|
|
77
|
-
(0, recurse_io_1.chmod)(src, mode, (err) => {
|
|
78
|
-
if (err) {
|
|
79
|
-
return reject(err);
|
|
80
|
-
}
|
|
81
|
-
resolve();
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
chown(src, { sync = false, uid = 0, gid = 0 } = {}) {
|
|
86
|
-
src = this.resolve(src);
|
|
87
|
-
if (sync) {
|
|
88
|
-
return (0, recurse_io_sync_1.chownSync)(src, uid, gid);
|
|
89
|
-
}
|
|
90
|
-
return new Promise((resolve, reject) => {
|
|
91
|
-
(0, recurse_io_1.chown)(src, uid, gid, (err) => {
|
|
92
|
-
if (err) {
|
|
93
|
-
return reject(err);
|
|
94
|
-
}
|
|
95
|
-
resolve();
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
symlink(src, use, { sync = false } = {}) {
|
|
100
|
-
src = this.resolve(src);
|
|
101
|
-
use = this.resolve(use);
|
|
102
|
-
if (sync) {
|
|
103
|
-
return node_fs_1.default.symlinkSync(src, use);
|
|
104
|
-
}
|
|
105
|
-
return new Promise((resolve, reject) => {
|
|
106
|
-
node_fs_1.default.symlink(src, use, (err) => {
|
|
107
|
-
if (err) {
|
|
108
|
-
return reject(err);
|
|
109
|
-
}
|
|
110
|
-
resolve();
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
copy(src, dir, { sync = false, umask = 0o000 } = {}) {
|
|
115
|
-
src = this.resolve(src);
|
|
116
|
-
dir = this.resolve(dir);
|
|
117
|
-
if (sync) {
|
|
118
|
-
return (0, recurse_io_sync_1.copySync)(src, dir, umask);
|
|
119
|
-
}
|
|
120
|
-
return new Promise((resolve, reject) => {
|
|
121
|
-
(0, recurse_io_1.copy)(src, dir, umask, (err) => {
|
|
122
|
-
if (err) {
|
|
123
|
-
return reject(err);
|
|
124
|
-
}
|
|
125
|
-
resolve();
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
rename(src, use, { sync = false } = {}) {
|
|
130
|
-
src = this.resolve(src);
|
|
131
|
-
use = this.resolve(use);
|
|
132
|
-
if (sync) {
|
|
133
|
-
return node_fs_1.default.renameSync(src, use);
|
|
134
|
-
}
|
|
135
|
-
return new Promise((resolve, reject) => {
|
|
136
|
-
node_fs_1.default.rename(src, use, (err) => {
|
|
137
|
-
if (err) {
|
|
138
|
-
return reject(err);
|
|
139
|
-
}
|
|
140
|
-
resolve();
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
remove(src, { sync = false } = {}) {
|
|
145
|
-
src = this.resolve(src);
|
|
146
|
-
if (sync) {
|
|
147
|
-
(0, recurse_io_sync_1.removeSync)(src);
|
|
148
|
-
}
|
|
149
|
-
return new Promise((resolve, reject) => {
|
|
150
|
-
const callback = (err) => {
|
|
151
|
-
if (err) {
|
|
152
|
-
return reject(err);
|
|
153
|
-
}
|
|
154
|
-
resolve();
|
|
155
|
-
};
|
|
156
|
-
if ('rm' in node_fs_1.default) {
|
|
157
|
-
return node_fs_1.default.rm(src, { recursive: true }, callback);
|
|
158
|
-
}
|
|
159
|
-
(0, recurse_io_1.remove)(src, callback);
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
read(src, { sync = false, encoding = 'utf8', flag = 'r' } = {}) {
|
|
163
|
-
src = this.resolve(src);
|
|
164
|
-
if (sync) {
|
|
165
|
-
const content = node_fs_1.default.readFileSync(src, {
|
|
166
|
-
encoding,
|
|
167
|
-
flag
|
|
168
|
-
});
|
|
169
|
-
return encoding === null
|
|
170
|
-
? Buffer.from(content)
|
|
171
|
-
: content;
|
|
172
|
-
}
|
|
173
|
-
return new Promise((resolve, reject) => {
|
|
174
|
-
node_fs_1.default.readFile(src, {
|
|
175
|
-
encoding,
|
|
176
|
-
flag
|
|
177
|
-
}, (err, raw) => {
|
|
178
|
-
if (err) {
|
|
179
|
-
return reject(err);
|
|
180
|
-
}
|
|
181
|
-
resolve(raw);
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
write(src, data, { sync = false, encoding = 'utf8', umask = 0o000, flag = 'w' } = {}) {
|
|
186
|
-
src = this.resolve(src);
|
|
187
|
-
const mode = 0o666 - umask;
|
|
188
|
-
if (sync) {
|
|
189
|
-
return node_fs_1.default.writeFileSync(src, data, {
|
|
190
|
-
encoding,
|
|
191
|
-
mode,
|
|
192
|
-
flag
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
return new Promise((resolve, reject) => {
|
|
196
|
-
node_fs_1.default.writeFile(src, data, {
|
|
197
|
-
encoding,
|
|
198
|
-
mode,
|
|
199
|
-
flag
|
|
200
|
-
}, (err) => {
|
|
201
|
-
if (err) {
|
|
202
|
-
return reject(err);
|
|
203
|
-
}
|
|
204
|
-
resolve();
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
append(src, data, { sync = false, encoding = 'utf8', umask = 0o000, flag = 'a' } = {}) {
|
|
209
|
-
src = this.resolve(src);
|
|
210
|
-
const mode = 0o666 - umask;
|
|
211
|
-
if (sync) {
|
|
212
|
-
return node_fs_1.default.appendFileSync(src, data, {
|
|
213
|
-
encoding,
|
|
214
|
-
mode,
|
|
215
|
-
flag
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
return new Promise((resolve, reject) => {
|
|
219
|
-
node_fs_1.default.appendFile(src, data, {
|
|
220
|
-
encoding,
|
|
221
|
-
mode,
|
|
222
|
-
flag
|
|
223
|
-
}, (err) => {
|
|
224
|
-
if (err) {
|
|
225
|
-
return reject(err);
|
|
226
|
-
}
|
|
227
|
-
resolve();
|
|
228
|
-
});
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
readdir(dir, { sync = false, encoding = 'utf8' } = {}) {
|
|
232
|
-
dir = this.resolve(dir);
|
|
233
|
-
if (sync) {
|
|
234
|
-
return node_fs_1.default.readdirSync(dir, {
|
|
235
|
-
encoding
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
return new Promise((resolve, reject) => {
|
|
239
|
-
node_fs_1.default.readdir(dir, { encoding }, (err, list) => {
|
|
240
|
-
if (err) {
|
|
241
|
-
return reject(err);
|
|
242
|
-
}
|
|
243
|
-
resolve(list);
|
|
244
|
-
});
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
mkdir(dir, { umask = 0o000, sync = false } = {}) {
|
|
248
|
-
dir = this.resolve(dir);
|
|
249
|
-
if (sync) {
|
|
250
|
-
return (0, recurse_io_sync_1.mkdirSync)(dir, umask);
|
|
251
|
-
}
|
|
252
|
-
return new Promise((resolve, reject) => {
|
|
253
|
-
(0, recurse_io_1.mkdir)(dir, umask, (err) => {
|
|
254
|
-
if (err) {
|
|
255
|
-
return reject(err);
|
|
256
|
-
}
|
|
257
|
-
resolve();
|
|
258
|
-
});
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
exports.PoweredFileSystem = PoweredFileSystem;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare function chmodSync(src: string, mode: number): void;
|
|
2
|
-
export declare function chownSync(src: string, uid: number, gid: number): void;
|
|
3
|
-
export declare function copySync(src: string, dir: string, umask: number): void;
|
|
4
|
-
export declare function removeSync(src: string): void;
|
|
5
|
-
export declare function mkdirSync(dir: string, umask: number): void;
|
package/src/bitmask.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export function bitmask(mode: number) {
|
|
2
|
-
const type = typeof mode;
|
|
3
|
-
|
|
4
|
-
if (type !== 'number') {
|
|
5
|
-
throw new Error(
|
|
6
|
-
`Argument of type '${type}' is not assignable to parameter of type 'number'.`
|
|
7
|
-
);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const permissions: number[] = [ 0o400, 0o200, 0o100, 0o040, 0o020, 0o010, 0o004, 0o002, 0o001 ];
|
|
11
|
-
let umask = 0o000;
|
|
12
|
-
|
|
13
|
-
for (const flag of permissions) {
|
|
14
|
-
if (mode & flag) {
|
|
15
|
-
umask += flag;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return umask;
|
|
20
|
-
}
|