memfs 4.7.5 → 4.7.6

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 (64) hide show
  1. package/package.json +2 -2
  2. package/lib/__tests__/util.d.ts +0 -13
  3. package/lib/__tests__/util.js +0 -30
  4. package/lib/__tests__/util.js.map +0 -1
  5. package/lib/crud/__tests__/matryoshka.test.d.ts +0 -1
  6. package/lib/crud/__tests__/matryoshka.test.js +0 -69
  7. package/lib/crud/__tests__/matryoshka.test.js.map +0 -1
  8. package/lib/crud/__tests__/testCrudfs.d.ts +0 -6
  9. package/lib/crud/__tests__/testCrudfs.js +0 -278
  10. package/lib/crud/__tests__/testCrudfs.js.map +0 -1
  11. package/lib/crud-to-cas/__tests__/CrudCas.test.d.ts +0 -1
  12. package/lib/crud-to-cas/__tests__/CrudCas.test.js +0 -38
  13. package/lib/crud-to-cas/__tests__/CrudCas.test.js.map +0 -1
  14. package/lib/crud-to-cas/__tests__/testCasfs.d.ts +0 -9
  15. package/lib/crud-to-cas/__tests__/testCasfs.js +0 -108
  16. package/lib/crud-to-cas/__tests__/testCasfs.js.map +0 -1
  17. package/lib/fsa-to-crud/__tests__/FsaCrud.test.d.ts +0 -1
  18. package/lib/fsa-to-crud/__tests__/FsaCrud.test.js +0 -17
  19. package/lib/fsa-to-crud/__tests__/FsaCrud.test.js.map +0 -1
  20. package/lib/fsa-to-node/__tests__/FsaNodeFs.test.d.ts +0 -1
  21. package/lib/fsa-to-node/__tests__/FsaNodeFs.test.js +0 -892
  22. package/lib/fsa-to-node/__tests__/FsaNodeFs.test.js.map +0 -1
  23. package/lib/fsa-to-node/__tests__/util.test.d.ts +0 -1
  24. package/lib/fsa-to-node/__tests__/util.test.js +0 -32
  25. package/lib/fsa-to-node/__tests__/util.test.js.map +0 -1
  26. package/lib/node-to-crud/__tests__/FsaCrud.test.d.ts +0 -1
  27. package/lib/node-to-crud/__tests__/FsaCrud.test.js +0 -18
  28. package/lib/node-to-crud/__tests__/FsaCrud.test.js.map +0 -1
  29. package/lib/node-to-fsa/__tests__/NodeFileSystemDirectoryHandle.test.d.ts +0 -1
  30. package/lib/node-to-fsa/__tests__/NodeFileSystemDirectoryHandle.test.js +0 -568
  31. package/lib/node-to-fsa/__tests__/NodeFileSystemDirectoryHandle.test.js.map +0 -1
  32. package/lib/node-to-fsa/__tests__/NodeFileSystemFileHandle.test.d.ts +0 -1
  33. package/lib/node-to-fsa/__tests__/NodeFileSystemFileHandle.test.js +0 -183
  34. package/lib/node-to-fsa/__tests__/NodeFileSystemFileHandle.test.js.map +0 -1
  35. package/lib/node-to-fsa/__tests__/NodeFileSystemHandle.test.d.ts +0 -1
  36. package/lib/node-to-fsa/__tests__/NodeFileSystemHandle.test.js +0 -41
  37. package/lib/node-to-fsa/__tests__/NodeFileSystemHandle.test.js.map +0 -1
  38. package/lib/node-to-fsa/__tests__/NodeFileSystemSyncAccessHandle.test.d.ts +0 -1
  39. package/lib/node-to-fsa/__tests__/NodeFileSystemSyncAccessHandle.test.js +0 -175
  40. package/lib/node-to-fsa/__tests__/NodeFileSystemSyncAccessHandle.test.js.map +0 -1
  41. package/lib/node-to-fsa/__tests__/NodeFileSystemWritableFileStream.test.d.ts +0 -1
  42. package/lib/node-to-fsa/__tests__/NodeFileSystemWritableFileStream.test.js +0 -98
  43. package/lib/node-to-fsa/__tests__/NodeFileSystemWritableFileStream.test.js.map +0 -1
  44. package/lib/node-to-fsa/__tests__/scenarios.test.d.ts +0 -1
  45. package/lib/node-to-fsa/__tests__/scenarios.test.js +0 -38
  46. package/lib/node-to-fsa/__tests__/scenarios.test.js.map +0 -1
  47. package/lib/node-to-fsa/__tests__/util.test.d.ts +0 -1
  48. package/lib/node-to-fsa/__tests__/util.test.js +0 -30
  49. package/lib/node-to-fsa/__tests__/util.test.js.map +0 -1
  50. package/lib/print/__tests__/index.test.d.ts +0 -1
  51. package/lib/print/__tests__/index.test.js +0 -77
  52. package/lib/print/__tests__/index.test.js.map +0 -1
  53. package/lib/snapshot/__tests__/async.test.d.ts +0 -1
  54. package/lib/snapshot/__tests__/async.test.js +0 -63
  55. package/lib/snapshot/__tests__/async.test.js.map +0 -1
  56. package/lib/snapshot/__tests__/binary.test.d.ts +0 -1
  57. package/lib/snapshot/__tests__/binary.test.js +0 -59
  58. package/lib/snapshot/__tests__/binary.test.js.map +0 -1
  59. package/lib/snapshot/__tests__/json.test.d.ts +0 -1
  60. package/lib/snapshot/__tests__/json.test.js +0 -68
  61. package/lib/snapshot/__tests__/json.test.js.map +0 -1
  62. package/lib/snapshot/__tests__/sync.test.d.ts +0 -1
  63. package/lib/snapshot/__tests__/sync.test.js +0 -63
  64. package/lib/snapshot/__tests__/sync.test.js.map +0 -1
@@ -1,183 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const __1 = require("../..");
4
- const NodeFileSystemDirectoryHandle_1 = require("../NodeFileSystemDirectoryHandle");
5
- const util_1 = require("../../__tests__/util");
6
- const setup = (json = {}) => {
7
- const { fs, vol } = (0, __1.memfs)(json, '/');
8
- const dir = new NodeFileSystemDirectoryHandle_1.NodeFileSystemDirectoryHandle(fs, '/', { mode: 'readwrite' });
9
- return { dir, fs, vol };
10
- };
11
- (0, util_1.onlyOnNode20)('NodeFileSystemFileHandle', () => {
12
- describe('.getFile()', () => {
13
- test('can read file contents', async () => {
14
- const { dir, fs } = setup({
15
- 'file.txt': 'Hello, world!',
16
- });
17
- const entry = await dir.getFileHandle('file.txt');
18
- const file = await entry.getFile();
19
- const contents = await file.text();
20
- expect(entry.name).toBe('file.txt');
21
- expect(file).toBeInstanceOf(File);
22
- expect(file.name).toBe('file.txt');
23
- expect(file.lastModified).toBe(fs.statSync('/file.txt').mtime.getTime());
24
- expect(contents).toBe('Hello, world!');
25
- });
26
- });
27
- describe('.createWritable()', () => {
28
- test('throws if not in "readwrite" mode', async () => {
29
- const { fs } = (0, __1.memfs)({ 'file.txt': 'abc' }, '/');
30
- const dir = new NodeFileSystemDirectoryHandle_1.NodeFileSystemDirectoryHandle(fs, '/', { mode: 'read' });
31
- const entry = await dir.getFileHandle('file.txt');
32
- try {
33
- await entry.createWritable();
34
- throw new Error('Not this error');
35
- }
36
- catch (error) {
37
- expect(error).toBeInstanceOf(DOMException);
38
- expect(error.name).toBe('NotAllowedError');
39
- expect(error.message).toBe('The request is not allowed by the user agent or the platform in the current context.');
40
- }
41
- });
42
- describe('.truncate()', () => {
43
- test('can truncate file', async () => {
44
- const { dir, fs } = setup({
45
- 'file.txt': '012345',
46
- });
47
- const entry = await dir.getFileHandle('file.txt');
48
- const writable = await entry.createWritable({ keepExistingData: true });
49
- await writable.truncate(3);
50
- await writable.close();
51
- expect(fs.readFileSync('/file.txt', 'utf8')).toBe('012');
52
- });
53
- test('can truncate file - 2', async () => {
54
- const { dir, fs } = setup({
55
- 'file.txt': '012345',
56
- });
57
- const entry = await dir.getFileHandle('file.txt');
58
- const writable = await entry.createWritable({ keepExistingData: true });
59
- await writable.write({ type: 'truncate', size: 3 });
60
- await writable.close();
61
- expect(fs.readFileSync('/file.txt', 'utf8')).toBe('012');
62
- });
63
- test('can truncate up', async () => {
64
- const { dir, fs } = setup({
65
- 'file.txt': '012345',
66
- });
67
- const entry = await dir.getFileHandle('file.txt');
68
- const writable = await entry.createWritable({ keepExistingData: true });
69
- await writable.write({ type: 'truncate', size: 10 });
70
- await writable.close();
71
- expect(fs.readFileSync('/file.txt').length).toBe(10);
72
- expect(fs.readFileSync('/file.txt')[8]).toBe(0);
73
- });
74
- test('on up truncation bytes are nulled', async () => {
75
- const { dir, fs } = setup({
76
- 'file.txt': '012345',
77
- });
78
- const entry = await dir.getFileHandle('file.txt');
79
- const writable = await entry.createWritable({ keepExistingData: true });
80
- await writable.write({ type: 'truncate', size: 10 });
81
- await writable.close();
82
- expect(fs.readFileSync('/file.txt')[8]).toBe(0);
83
- });
84
- });
85
- describe('.write(chunk)', () => {
86
- test('overwrites the file when write is being executed', async () => {
87
- const { dir, fs } = setup({
88
- 'file.txt': 'Hello, world!',
89
- });
90
- const entry = await dir.getFileHandle('file.txt');
91
- const writable = await entry.createWritable();
92
- await writable.write('...');
93
- await writable.close();
94
- expect(fs.readFileSync('/file.txt', 'utf8')).toBe('...');
95
- });
96
- test('writes at file start', async () => {
97
- const { dir, fs } = setup({
98
- 'file.txt': '...',
99
- });
100
- const entry = await dir.getFileHandle('file.txt');
101
- const writable = await entry.createWritable({ keepExistingData: true });
102
- await writable.write('1');
103
- await writable.close();
104
- expect(fs.readFileSync('/file.txt', 'utf8')).toBe('1..');
105
- });
106
- test('can seek and then write', async () => {
107
- const { dir, fs } = setup({
108
- 'file.txt': '...',
109
- });
110
- const entry = await dir.getFileHandle('file.txt');
111
- const writable = await entry.createWritable({ keepExistingData: true });
112
- writable.seek(1);
113
- await writable.write('1');
114
- await writable.write('2');
115
- expect(fs.readFileSync('/file.txt', 'utf8')).toBe('...');
116
- await writable.close();
117
- expect(fs.readFileSync('/file.txt', 'utf8')).toBe('.12');
118
- });
119
- test('does not commit changes before .close() is called', async () => {
120
- const { dir, fs } = setup({
121
- 'file.txt': '...',
122
- });
123
- const entry = await dir.getFileHandle('file.txt');
124
- const writable = await entry.createWritable();
125
- await writable.write('1');
126
- expect(fs.readFileSync('/file.txt', 'utf8')).toBe('...');
127
- await writable.close();
128
- expect(fs.readFileSync('/file.txt', 'utf8')).toBe('1');
129
- });
130
- test('does not commit changes if .abort() is called and removes the swap file', async () => {
131
- const { dir, vol } = setup({
132
- 'file.txt': '...',
133
- });
134
- const entry = await dir.getFileHandle('file.txt');
135
- const writable = await entry.createWritable();
136
- await writable.write('1');
137
- expect(vol.toJSON()).toStrictEqual({
138
- '/file.txt': '...',
139
- '/file.txt.crswap': '1',
140
- });
141
- await writable.abort();
142
- expect(vol.toJSON()).toStrictEqual({
143
- '/file.txt': '...',
144
- });
145
- });
146
- });
147
- describe('.write(options)', () => {
148
- test('can write at offset, when providing position in write call', async () => {
149
- const { dir, fs } = setup({
150
- 'file.txt': '...',
151
- });
152
- const entry = await dir.getFileHandle('file.txt');
153
- const writable = await entry.createWritable({ keepExistingData: true });
154
- await writable.write({ type: 'write', position: 1, data: '1' });
155
- await writable.close();
156
- expect(fs.readFileSync('/file.txt', 'utf8')).toBe('.1.');
157
- });
158
- test('can seek and then write', async () => {
159
- const { dir, fs } = setup({
160
- 'file.txt': '...',
161
- });
162
- const entry = await dir.getFileHandle('file.txt');
163
- const writable = await entry.createWritable({ keepExistingData: true });
164
- await writable.write({ type: 'seek', position: 1 });
165
- await writable.write({ type: 'write', data: Buffer.from('1') });
166
- await writable.close();
167
- expect(fs.readFileSync('/file.txt', 'utf8')).toBe('.1.');
168
- });
169
- test('can seek and then write', async () => {
170
- const { dir, fs } = setup({
171
- 'file.txt': '...',
172
- });
173
- const entry = await dir.getFileHandle('file.txt');
174
- const writable = await entry.createWritable({ keepExistingData: true });
175
- await writable.write({ type: 'seek', position: 1 });
176
- await writable.write({ type: 'write', data: Buffer.from('1') });
177
- await writable.close();
178
- expect(fs.readFileSync('/file.txt', 'utf8')).toBe('.1.');
179
- });
180
- });
181
- });
182
- });
183
- //# sourceMappingURL=NodeFileSystemFileHandle.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeFileSystemFileHandle.test.js","sourceRoot":"","sources":["../../../src/node-to-fsa/__tests__/NodeFileSystemFileHandle.test.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const __1 = require("../..");
4
- const NodeFileSystemDirectoryHandle_1 = require("../NodeFileSystemDirectoryHandle");
5
- const util_1 = require("../../__tests__/util");
6
- const setup = (json = {}) => {
7
- const { fs } = (0, __1.memfs)(json, '/');
8
- const dir = new NodeFileSystemDirectoryHandle_1.NodeFileSystemDirectoryHandle(fs, '/', { mode: 'readwrite' });
9
- return { dir, fs };
10
- };
11
- (0, util_1.onlyOnNode20)('NodeFileSystemHandle', () => {
12
- test('can instantiate', () => {
13
- const { dir } = setup();
14
- expect(dir).toBeInstanceOf(NodeFileSystemDirectoryHandle_1.NodeFileSystemDirectoryHandle);
15
- });
16
- describe('.isSameEntry()', () => {
17
- test('returns true for the same root entry', async () => {
18
- const { dir } = setup();
19
- expect(dir.isSameEntry(dir)).toBe(true);
20
- });
21
- test('returns true for two different instances of the same entry', async () => {
22
- const { dir } = setup({
23
- subdir: null,
24
- });
25
- const subdir = await dir.getDirectoryHandle('subdir');
26
- expect(subdir.isSameEntry(subdir)).toBe(true);
27
- expect(dir.isSameEntry(dir)).toBe(true);
28
- expect(dir.isSameEntry(subdir)).toBe(false);
29
- expect(subdir.isSameEntry(dir)).toBe(false);
30
- });
31
- test('returns false when comparing file with a directory', async () => {
32
- const { dir } = setup({
33
- file: 'lala',
34
- });
35
- const file = await dir.getFileHandle('file');
36
- expect(file.isSameEntry(dir)).toBe(false);
37
- expect(dir.isSameEntry(file)).toBe(false);
38
- });
39
- });
40
- });
41
- //# sourceMappingURL=NodeFileSystemHandle.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeFileSystemHandle.test.js","sourceRoot":"","sources":["../../../src/node-to-fsa/__tests__/NodeFileSystemHandle.test.ts"],"names":[],"mappings":";;AAAA,6BAA6C;AAC7C,oFAAiF;AACjF,+CAAoD;AAEpD,MAAM,KAAK,GAAG,CAAC,OAAsB,EAAE,EAAE,EAAE;IACzC,MAAM,EAAE,EAAE,EAAE,GAAG,IAAA,SAAK,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,6DAA6B,CAAC,EAAS,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACrF,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACrB,CAAC,CAAC;AAEF,IAAA,mBAAY,EAAC,sBAAsB,EAAE,GAAG,EAAE;IACxC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC3B,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,6DAA6B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,IAAI,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;gBACpB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;gBACpB,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,175 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const __1 = require("../..");
4
- const NodeFileSystemDirectoryHandle_1 = require("../NodeFileSystemDirectoryHandle");
5
- const NodeFileSystemSyncAccessHandle_1 = require("../NodeFileSystemSyncAccessHandle");
6
- const util_1 = require("../../__tests__/util");
7
- const setup = (json = {}) => {
8
- const { fs } = (0, __1.memfs)(json, '/');
9
- const dir = new NodeFileSystemDirectoryHandle_1.NodeFileSystemDirectoryHandle(fs, '/', { syncHandleAllowed: true, mode: 'readwrite' });
10
- return { dir, fs };
11
- };
12
- (0, util_1.onlyOnNode20)('NodeFileSystemSyncAccessHandle', () => {
13
- describe('.close()', () => {
14
- test('can close the file', async () => {
15
- const { dir } = setup({
16
- 'file.txt': 'Hello, world!',
17
- });
18
- const entry = await dir.getFileHandle('file.txt');
19
- const sync = await entry.createSyncAccessHandle();
20
- expect(sync).toBeInstanceOf(NodeFileSystemSyncAccessHandle_1.NodeFileSystemSyncAccessHandle);
21
- await sync.close();
22
- // ...
23
- });
24
- });
25
- describe('.flush()', () => {
26
- test('can flush', async () => {
27
- const { dir } = setup({
28
- 'file.txt': 'Hello, world!',
29
- });
30
- const entry = await dir.getFileHandle('file.txt');
31
- const sync = await entry.createSyncAccessHandle();
32
- await sync.flush();
33
- });
34
- });
35
- describe('.getSize()', () => {
36
- test('can get file size', async () => {
37
- const { dir } = setup({
38
- 'file.txt': 'Hello, world!',
39
- });
40
- const entry = await dir.getFileHandle('file.txt');
41
- const sync = await entry.createSyncAccessHandle();
42
- const size = await sync.getSize();
43
- expect(size).toBe(13);
44
- });
45
- });
46
- describe('.getSize()', () => {
47
- test('can get file size', async () => {
48
- const { dir } = setup({
49
- 'file.txt': 'Hello, world!',
50
- });
51
- const entry = await dir.getFileHandle('file.txt');
52
- const sync = await entry.createSyncAccessHandle();
53
- const size = await sync.getSize();
54
- expect(size).toBe(13);
55
- });
56
- });
57
- describe('.read()', () => {
58
- test('can read from beginning', async () => {
59
- const { dir } = setup({
60
- 'file.txt': '0123456789',
61
- });
62
- const entry = await dir.getFileHandle('file.txt');
63
- const sync = await entry.createSyncAccessHandle();
64
- const buf = new Uint8Array(5);
65
- const size = await sync.read(buf);
66
- expect(size).toBe(5);
67
- expect(Buffer.from(buf).toString()).toBe('01234');
68
- });
69
- test('can read at offset', async () => {
70
- const { dir } = setup({
71
- 'file.txt': '0123456789',
72
- });
73
- const entry = await dir.getFileHandle('file.txt');
74
- const sync = await entry.createSyncAccessHandle();
75
- const buf = new Uint8Array(3);
76
- const size = await sync.read(buf, { at: 3 });
77
- expect(size).toBe(3);
78
- expect(Buffer.from(buf).toString()).toBe('345');
79
- });
80
- test('can read into buffer larger than file', async () => {
81
- const { dir } = setup({
82
- 'file.txt': '0123456789',
83
- });
84
- const entry = await dir.getFileHandle('file.txt');
85
- const sync = await entry.createSyncAccessHandle();
86
- const buf = new Uint8Array(25);
87
- const size = await sync.read(buf);
88
- expect(size).toBe(10);
89
- expect(Buffer.from(buf).slice(0, 10).toString()).toBe('0123456789');
90
- });
91
- test('throws "InvalidStateError" DOMException if handle is closed', async () => {
92
- const { dir } = setup({
93
- 'file.txt': '0123456789',
94
- });
95
- const entry = await dir.getFileHandle('file.txt');
96
- const sync = await entry.createSyncAccessHandle();
97
- await sync.close();
98
- const buf = new Uint8Array(25);
99
- try {
100
- const size = await sync.read(buf);
101
- throw new Error('No error was thrown');
102
- }
103
- catch (error) {
104
- expect(error).toBeInstanceOf(DOMException);
105
- expect(error.name).toBe('InvalidStateError');
106
- }
107
- });
108
- });
109
- describe('.truncate()', () => {
110
- test('can read from beginning', async () => {
111
- const { dir } = setup({
112
- 'file.txt': '0123456789',
113
- });
114
- const entry = await dir.getFileHandle('file.txt');
115
- const sync = await entry.createSyncAccessHandle();
116
- const res = await sync.truncate(5);
117
- expect(res).toBe(undefined);
118
- });
119
- });
120
- describe('.write()', () => {
121
- test('can write to the file', async () => {
122
- const { dir, fs } = setup({
123
- 'file.txt': '0123456789',
124
- });
125
- const entry = await dir.getFileHandle('file.txt');
126
- const sync = await entry.createSyncAccessHandle();
127
- const res = await sync.write(Buffer.from('Hello'));
128
- expect(res).toBe(5);
129
- expect(fs.readFileSync('/file.txt', 'utf8')).toBe('Hello56789');
130
- });
131
- test('can write at an offset', async () => {
132
- const { dir, fs } = setup({
133
- 'file.txt': '0123456789',
134
- });
135
- const entry = await dir.getFileHandle('file.txt');
136
- const sync = await entry.createSyncAccessHandle();
137
- const res = await sync.write(Buffer.from('Hello'), { at: 7 });
138
- expect(res).toBe(5);
139
- expect(fs.readFileSync('/file.txt', 'utf8')).toBe('0123456Hello');
140
- });
141
- test('throws "InvalidStateError" DOMException if file descriptor is already closed', async () => {
142
- const { dir, fs } = setup({
143
- 'file.txt': '0123456789',
144
- });
145
- const entry = await dir.getFileHandle('file.txt');
146
- const sync = await entry.createSyncAccessHandle();
147
- await sync.write(Buffer.from('a'));
148
- await sync.close();
149
- try {
150
- await sync.write(Buffer.from('b'));
151
- throw new Error('No error was thrown');
152
- }
153
- catch (error) {
154
- expect(error).toBeInstanceOf(DOMException);
155
- expect(error.name).toBe('InvalidStateError');
156
- }
157
- });
158
- // TODO: Need to find out what is the correct behavior here.
159
- xtest('writing at offset past file size', async () => {
160
- const { dir, fs } = setup({
161
- 'file.txt': '0123456789',
162
- });
163
- const entry = await dir.getFileHandle('file.txt');
164
- const sync = await entry.createSyncAccessHandle();
165
- try {
166
- await sync.write(Buffer.from('a'), { at: 100 });
167
- // ?
168
- }
169
- catch (error) {
170
- // ?
171
- }
172
- });
173
- });
174
- });
175
- //# sourceMappingURL=NodeFileSystemSyncAccessHandle.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeFileSystemSyncAccessHandle.test.js","sourceRoot":"","sources":["../../../src/node-to-fsa/__tests__/NodeFileSystemSyncAccessHandle.test.ts"],"names":[],"mappings":"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"}
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const __1 = require("../..");
4
- const FileHandle_1 = require("../../node/FileHandle");
5
- const NodeFileSystemWritableFileStream_1 = require("../NodeFileSystemWritableFileStream");
6
- describe('createSwapFile()', () => {
7
- test('can create a swap file', async () => {
8
- const { fs, vol } = (0, __1.memfs)({
9
- '/file.txt': 'Hello, world!',
10
- }, '/');
11
- const [handle, path] = await (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/file.txt', false);
12
- expect(handle).toBeInstanceOf(FileHandle_1.FileHandle);
13
- expect(path).toBe('/file.txt.crswap');
14
- expect(vol.toJSON()).toStrictEqual({
15
- '/file.txt': 'Hello, world!',
16
- '/file.txt.crswap': '',
17
- });
18
- });
19
- test('can create a swap file at subfolder', async () => {
20
- const { fs, vol } = (0, __1.memfs)({
21
- '/foo/file.txt': 'Hello, world!',
22
- }, '/');
23
- const [handle, path] = await (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', false);
24
- expect(handle).toBeInstanceOf(FileHandle_1.FileHandle);
25
- expect(path).toBe('/foo/file.txt.crswap');
26
- expect(vol.toJSON()).toStrictEqual({
27
- '/foo/file.txt': 'Hello, world!',
28
- '/foo/file.txt.crswap': '',
29
- });
30
- });
31
- test('can create a swap file when the default swap file name is in use', async () => {
32
- const { fs, vol } = (0, __1.memfs)({
33
- '/foo/file.txt': 'Hello, world!',
34
- '/foo/file.txt.crswap': 'lala',
35
- }, '/');
36
- const [handle, path] = await (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', false);
37
- expect(handle).toBeInstanceOf(FileHandle_1.FileHandle);
38
- expect(path).toBe('/foo/file.txt.1.crswap');
39
- expect(vol.toJSON()).toStrictEqual({
40
- '/foo/file.txt': 'Hello, world!',
41
- '/foo/file.txt.crswap': 'lala',
42
- '/foo/file.txt.1.crswap': '',
43
- });
44
- });
45
- test('can create a swap file when the first two names are already taken', async () => {
46
- const { fs, vol } = (0, __1.memfs)({
47
- '/foo/file.txt': 'Hello, world!',
48
- '/foo/file.txt.crswap': 'lala',
49
- '/foo/file.txt.1.crswap': 'blah',
50
- }, '/');
51
- const [handle, path] = await (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', false);
52
- expect(handle).toBeInstanceOf(FileHandle_1.FileHandle);
53
- expect(path).toBe('/foo/file.txt.2.crswap');
54
- expect(vol.toJSON()).toStrictEqual({
55
- '/foo/file.txt': 'Hello, world!',
56
- '/foo/file.txt.crswap': 'lala',
57
- '/foo/file.txt.1.crswap': 'blah',
58
- '/foo/file.txt.2.crswap': '',
59
- });
60
- });
61
- test('can create a swap file when the first three names are already taken', async () => {
62
- const { fs, vol } = (0, __1.memfs)({
63
- '/foo/file.txt': 'Hello, world!',
64
- '/foo/file.txt.crswap': 'lala',
65
- '/foo/file.txt.1.crswap': 'blah',
66
- '/foo/file.txt.2.crswap': 'brawo',
67
- }, '/');
68
- const [handle, path] = await (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', false);
69
- expect(handle).toBeInstanceOf(FileHandle_1.FileHandle);
70
- expect(path).toBe('/foo/file.txt.3.crswap');
71
- expect(vol.toJSON()).toStrictEqual({
72
- '/foo/file.txt': 'Hello, world!',
73
- '/foo/file.txt.crswap': 'lala',
74
- '/foo/file.txt.1.crswap': 'blah',
75
- '/foo/file.txt.2.crswap': 'brawo',
76
- '/foo/file.txt.3.crswap': '',
77
- });
78
- });
79
- test('can copy existing data into the swap file', async () => {
80
- const { fs, vol } = (0, __1.memfs)({
81
- '/foo/file.txt': 'Hello, world!',
82
- '/foo/file.txt.crswap': 'lala',
83
- '/foo/file.txt.1.crswap': 'blah',
84
- '/foo/file.txt.2.crswap': 'brawo',
85
- }, '/');
86
- const [handle, path] = await (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', true);
87
- expect(handle).toBeInstanceOf(FileHandle_1.FileHandle);
88
- expect(path).toBe('/foo/file.txt.3.crswap');
89
- expect(vol.toJSON()).toStrictEqual({
90
- '/foo/file.txt': 'Hello, world!',
91
- '/foo/file.txt.crswap': 'lala',
92
- '/foo/file.txt.1.crswap': 'blah',
93
- '/foo/file.txt.2.crswap': 'brawo',
94
- '/foo/file.txt.3.crswap': 'Hello, world!',
95
- });
96
- });
97
- });
98
- //# sourceMappingURL=NodeFileSystemWritableFileStream.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeFileSystemWritableFileStream.test.js","sourceRoot":"","sources":["../../../src/node-to-fsa/__tests__/NodeFileSystemWritableFileStream.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const __1 = require("..");
4
- const __2 = require("../..");
5
- const util_1 = require("../../__tests__/util");
6
- (0, util_1.onlyOnNode20)('scenarios', () => {
7
- test('can init FSA from an arbitrary FS folder and execute operations', async () => {
8
- const { fs, vol } = (0, __2.memfs)({
9
- '/tmp': null,
10
- '/etc': null,
11
- '/bin': null,
12
- '/Users/kasper/Documents/shopping-list.txt': 'Milk, Eggs, Bread',
13
- });
14
- const dir = (0, __1.nodeToFsa)(fs, '/Users/kasper/Documents', { mode: 'readwrite' });
15
- const shoppingListFile = await dir.getFileHandle('shopping-list.txt');
16
- const shoppingList = await shoppingListFile.getFile();
17
- expect(await shoppingList.text()).toBe('Milk, Eggs, Bread');
18
- const backupsDir = await dir.getDirectoryHandle('backups', { create: true });
19
- const backupFile = await backupsDir.getFileHandle('shopping-list.txt', { create: true });
20
- const writable = await backupFile.createWritable();
21
- await writable.write(await shoppingList.arrayBuffer());
22
- await writable.close();
23
- const logsFileHandle = await dir.getFileHandle('logs.csv', { create: true });
24
- const logsWritable = await logsFileHandle.createWritable();
25
- await logsWritable.write('timestamp,level,message\n');
26
- await logsWritable.write({ type: 'write', data: '2021-01-01T00:00:00Z,INFO,Hello World\n' });
27
- await logsWritable.close();
28
- expect(vol.toJSON()).toStrictEqual({
29
- '/tmp': null,
30
- '/etc': null,
31
- '/bin': null,
32
- '/Users/kasper/Documents/shopping-list.txt': 'Milk, Eggs, Bread',
33
- '/Users/kasper/Documents/backups/shopping-list.txt': 'Milk, Eggs, Bread',
34
- '/Users/kasper/Documents/logs.csv': 'timestamp,level,message\n2021-01-01T00:00:00Z,INFO,Hello World\n',
35
- });
36
- });
37
- });
38
- //# sourceMappingURL=scenarios.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenarios.test.js","sourceRoot":"","sources":["../../../src/node-to-fsa/__tests__/scenarios.test.ts"],"names":[],"mappings":";;AAAA,0BAA+B;AAC/B,6BAA8B;AAC9B,+CAAoD;AAEpD,IAAA,mBAAY,EAAC,WAAW,EAAE,GAAG,EAAE;IAC7B,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAA,SAAK,EAAC;YACxB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,2CAA2C,EAAE,mBAAmB;SACjE,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,aAAS,EAAC,EAAE,EAAE,yBAAyB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5E,MAAM,gBAAgB,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;QACtD,MAAM,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,cAAc,EAAE,CAAC;QACnD,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvD,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC;QAC3D,MAAM,YAAY,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACtD,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC,CAAC;QAC7F,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC;YACjC,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,2CAA2C,EAAE,mBAAmB;YAChE,mDAAmD,EAAE,mBAAmB;YACxE,kCAAkC,EAAE,kEAAkE;SACvG,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const util_1 = require("../util");
4
- describe('basename()', () => {
5
- test('handles empty string', () => {
6
- expect((0, util_1.basename)('', '/')).toBe('');
7
- });
8
- test('return the same string if there is no nesting', () => {
9
- expect((0, util_1.basename)('scary.exe', '/')).toBe('scary.exe');
10
- });
11
- test('ignores slash, if it is the last char', () => {
12
- expect((0, util_1.basename)('scary.exe/', '/')).toBe('scary.exe');
13
- expect((0, util_1.basename)('/ab/c/scary.exe/', '/')).toBe('scary.exe');
14
- });
15
- test('returns last step in path', () => {
16
- expect((0, util_1.basename)('/gg/wp/hf/gl.txt', '/')).toBe('gl.txt');
17
- expect((0, util_1.basename)('gg/wp/hf/gl.txt', '/')).toBe('gl.txt');
18
- expect((0, util_1.basename)('/wp/hf/gl.txt', '/')).toBe('gl.txt');
19
- expect((0, util_1.basename)('wp/hf/gl.txt', '/')).toBe('gl.txt');
20
- expect((0, util_1.basename)('/hf/gl.txt', '/')).toBe('gl.txt');
21
- expect((0, util_1.basename)('hf/gl.txt', '/')).toBe('gl.txt');
22
- expect((0, util_1.basename)('/gl.txt', '/')).toBe('gl.txt');
23
- expect((0, util_1.basename)('gl.txt', '/')).toBe('gl.txt');
24
- });
25
- test('handles double slashes', () => {
26
- expect((0, util_1.basename)('/gg/wp/hf//gl.txt', '/')).toBe('gl.txt');
27
- expect((0, util_1.basename)('//gl.txt', '/')).toBe('gl.txt');
28
- });
29
- });
30
- //# sourceMappingURL=util.test.js.map