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.
Files changed (101) hide show
  1. package/dist/bitmask.d.ts +4 -0
  2. package/dist/bitmask.js +17 -0
  3. package/dist/bitmask.test.d.ts +1 -0
  4. package/dist/bitmask.test.js +29 -0
  5. package/dist/{src/index.d.ts → index.d.ts} +3 -0
  6. package/dist/{src/index.js → index.js} +3 -0
  7. package/dist/powered-file-system/append.d.ts +9 -0
  8. package/dist/powered-file-system/append.js +10 -0
  9. package/dist/powered-file-system/append.test.d.ts +1 -0
  10. package/dist/powered-file-system/append.test.js +47 -0
  11. package/dist/powered-file-system/chmod.d.ts +7 -0
  12. package/dist/powered-file-system/chmod.js +28 -0
  13. package/dist/powered-file-system/chmod.test.d.ts +1 -0
  14. package/dist/powered-file-system/chmod.test.js +71 -0
  15. package/dist/powered-file-system/chown.d.ts +9 -0
  16. package/dist/powered-file-system/chown.js +45 -0
  17. package/dist/powered-file-system/chown.test.d.ts +1 -0
  18. package/dist/powered-file-system/chown.test.js +82 -0
  19. package/dist/powered-file-system/copy.d.ts +8 -0
  20. package/dist/powered-file-system/copy.js +29 -0
  21. package/dist/powered-file-system/copy.test.d.ts +1 -0
  22. package/dist/powered-file-system/copy.test.js +82 -0
  23. package/dist/powered-file-system/mkdir.d.ts +8 -0
  24. package/dist/powered-file-system/mkdir.js +28 -0
  25. package/dist/powered-file-system/mkdir.test.d.ts +1 -0
  26. package/dist/powered-file-system/mkdir.test.js +116 -0
  27. package/dist/powered-file-system/read.d.ts +9 -0
  28. package/dist/powered-file-system/read.js +29 -0
  29. package/dist/powered-file-system/read.test.d.ts +1 -0
  30. package/dist/powered-file-system/read.test.js +75 -0
  31. package/dist/powered-file-system/readdir.d.ts +8 -0
  32. package/dist/powered-file-system/readdir.js +26 -0
  33. package/dist/powered-file-system/readdir.test.d.ts +1 -0
  34. package/dist/powered-file-system/readdir.test.js +72 -0
  35. package/dist/powered-file-system/remove.d.ts +7 -0
  36. package/dist/powered-file-system/remove.js +36 -0
  37. package/dist/powered-file-system/remove.test.d.ts +1 -0
  38. package/dist/powered-file-system/remove.test.js +78 -0
  39. package/dist/powered-file-system/rename.d.ts +7 -0
  40. package/dist/powered-file-system/rename.js +28 -0
  41. package/dist/powered-file-system/rename.test.d.ts +1 -0
  42. package/dist/powered-file-system/rename.test.js +70 -0
  43. package/dist/powered-file-system/stat.d.ts +7 -0
  44. package/dist/powered-file-system/stat.js +26 -0
  45. package/dist/powered-file-system/stat.test.d.ts +1 -0
  46. package/dist/powered-file-system/stat.test.js +79 -0
  47. package/dist/powered-file-system/symlink.d.ts +4 -0
  48. package/dist/powered-file-system/symlink.js +52 -0
  49. package/dist/powered-file-system/symlink.test.d.ts +1 -0
  50. package/dist/powered-file-system/symlink.test.js +77 -0
  51. package/dist/powered-file-system/test.d.ts +8 -0
  52. package/dist/powered-file-system/test.js +30 -0
  53. package/dist/powered-file-system/test.test.d.ts +1 -0
  54. package/dist/powered-file-system/test.test.js +76 -0
  55. package/dist/powered-file-system/write.d.ts +10 -0
  56. package/dist/powered-file-system/write.js +36 -0
  57. package/dist/powered-file-system/write.test.d.ts +1 -0
  58. package/dist/powered-file-system/write.test.js +97 -0
  59. package/dist/powered-file-system.d.ts +127 -0
  60. package/dist/powered-file-system.js +144 -0
  61. package/dist/powered-file-system.test.d.ts +1 -0
  62. package/dist/powered-file-system.test.js +21 -0
  63. package/dist/recurse-io-sync.d.ts +20 -0
  64. package/dist/{src/recurse-io-sync.js → recurse-io-sync.js} +37 -37
  65. package/dist/{src/recurse-io.d.ts → recurse-io.d.ts} +15 -1
  66. package/dist/{src/recurse-io.js → recurse-io.js} +52 -58
  67. package/dist/suite.test.d.ts +1 -0
  68. package/dist/suite.test.js +40 -0
  69. package/dist/test-utils.d.ts +18 -0
  70. package/dist/test-utils.js +72 -0
  71. package/package.json +31 -14
  72. package/readme.md +331 -246
  73. package/.travis.yml +0 -12
  74. package/appveyor.yml +0 -16
  75. package/dist/src/bitmask.d.ts +0 -1
  76. package/dist/src/bitmask.js +0 -18
  77. package/dist/src/powered-file-system.d.ts +0 -173
  78. package/dist/src/powered-file-system.js +0 -262
  79. package/dist/src/recurse-io-sync.d.ts +0 -5
  80. package/src/bitmask.ts +0 -20
  81. package/src/index.ts +0 -7
  82. package/src/powered-file-system.ts +0 -508
  83. package/src/recurse-io-sync.ts +0 -108
  84. package/src/recurse-io.ts +0 -238
  85. package/test/__fmock.ts +0 -45
  86. package/test/append.spec.ts +0 -71
  87. package/test/bitmask.spec.ts +0 -23
  88. package/test/chmod.spec.ts +0 -77
  89. package/test/chown.spec.ts +0 -92
  90. package/test/constructor.spec.ts +0 -15
  91. package/test/copy.spec.ts +0 -101
  92. package/test/mkdir.spec.ts +0 -121
  93. package/test/read.spec.ts +0 -91
  94. package/test/readdir.spec.ts +0 -86
  95. package/test/remove.spec.ts +0 -78
  96. package/test/rename.spec.ts +0 -84
  97. package/test/stat.spec.ts +0 -99
  98. package/test/symlink.spec.ts +0 -95
  99. package/test/test.spec.ts +0 -80
  100. package/test/write.spec.ts +0 -104
  101. package/tsconfig.json +0 -14
package/.travis.yml DELETED
@@ -1,12 +0,0 @@
1
- language: node_js
2
- node_js:
3
- - 14
4
- - 16
5
- - 18
6
- - 20
7
- install:
8
- - yarn
9
- - yarn global add nyc coveralls
10
- script:
11
- - yarn build
12
- - nyc yarn test && nyc report --reporter=text-lcov | coveralls
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
@@ -1 +0,0 @@
1
- export declare function bitmask(mode: number): number;
@@ -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
- }
package/src/index.ts DELETED
@@ -1,7 +0,0 @@
1
- import { PoweredFileSystem } from './powered-file-system';
2
-
3
- export const pfs = new PoweredFileSystem();
4
-
5
- export default PoweredFileSystem;
6
-
7
- export * from './powered-file-system';