memfs 4.1.0 → 4.2.0

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 (254) hide show
  1. package/README.md +10 -7
  2. package/demo/runkit.js +5 -0
  3. package/lib/Dirent.js +1 -0
  4. package/lib/Dirent.js.map +1 -0
  5. package/lib/Stats.js +2 -2
  6. package/lib/Stats.js.map +1 -0
  7. package/lib/__tests__/util.js +1 -0
  8. package/lib/__tests__/util.js.map +1 -0
  9. package/lib/cas/types.d.ts +10 -0
  10. package/lib/{node/types/callback.js → cas/types.js} +1 -0
  11. package/lib/cas/types.js.map +1 -0
  12. package/lib/constants.js +1 -0
  13. package/lib/constants.js.map +1 -0
  14. package/lib/consts/AMODE.js +1 -0
  15. package/lib/consts/AMODE.js.map +1 -0
  16. package/lib/consts/FLAG.d.ts +6 -0
  17. package/lib/consts/FLAG.js +1 -0
  18. package/lib/consts/FLAG.js.map +1 -0
  19. package/lib/crud/__tests__/matryoshka.test.d.ts +1 -0
  20. package/lib/crud/__tests__/matryoshka.test.js +69 -0
  21. package/lib/crud/__tests__/matryoshka.test.js.map +1 -0
  22. package/lib/crud/__tests__/testCrudfs.d.ts +6 -0
  23. package/lib/crud/__tests__/testCrudfs.js +278 -0
  24. package/lib/crud/__tests__/testCrudfs.js.map +1 -0
  25. package/lib/crud/types.d.ts +80 -0
  26. package/lib/{node/types/promises.js → crud/types.js} +1 -0
  27. package/lib/crud/types.js.map +1 -0
  28. package/lib/crud/util.d.ts +2 -0
  29. package/lib/crud/util.js +11 -0
  30. package/lib/crud/util.js.map +1 -0
  31. package/lib/crud-to-cas/CrudCas.d.ts +14 -0
  32. package/lib/crud-to-cas/CrudCas.js +57 -0
  33. package/lib/crud-to-cas/CrudCas.js.map +1 -0
  34. package/lib/crud-to-cas/__tests__/CrudCas.test.d.ts +1 -0
  35. package/lib/crud-to-cas/__tests__/CrudCas.test.js +38 -0
  36. package/lib/crud-to-cas/__tests__/CrudCas.test.js.map +1 -0
  37. package/lib/crud-to-cas/__tests__/testCasfs.d.ts +9 -0
  38. package/lib/crud-to-cas/__tests__/testCasfs.js +108 -0
  39. package/lib/crud-to-cas/__tests__/testCasfs.js.map +1 -0
  40. package/lib/crud-to-cas/index.d.ts +1 -0
  41. package/lib/crud-to-cas/index.js +6 -0
  42. package/lib/crud-to-cas/index.js.map +1 -0
  43. package/lib/crud-to-cas/util.d.ts +2 -0
  44. package/lib/crud-to-cas/util.js +13 -0
  45. package/lib/crud-to-cas/util.js.map +1 -0
  46. package/lib/encoding.js +1 -0
  47. package/lib/encoding.js.map +1 -0
  48. package/lib/fsa/types.js +1 -0
  49. package/lib/fsa/types.js.map +1 -0
  50. package/lib/fsa-to-crud/FsaCrud.d.ts +15 -0
  51. package/lib/fsa-to-crud/FsaCrud.js +191 -0
  52. package/lib/fsa-to-crud/FsaCrud.js.map +1 -0
  53. package/lib/fsa-to-crud/__tests__/FsaCrud.test.d.ts +1 -0
  54. package/lib/fsa-to-crud/__tests__/FsaCrud.test.js +17 -0
  55. package/lib/fsa-to-crud/__tests__/FsaCrud.test.js.map +1 -0
  56. package/lib/fsa-to-crud/index.d.ts +1 -0
  57. package/lib/fsa-to-crud/index.js +6 -0
  58. package/lib/fsa-to-crud/index.js.map +1 -0
  59. package/lib/fsa-to-crud/util.d.ts +5 -0
  60. package/lib/fsa-to-crud/util.js +12 -0
  61. package/lib/fsa-to-crud/util.js.map +1 -0
  62. package/lib/fsa-to-node/FsaNodeCore.d.ts +3 -2
  63. package/lib/fsa-to-node/FsaNodeCore.js +109 -87
  64. package/lib/fsa-to-node/FsaNodeCore.js.map +1 -0
  65. package/lib/fsa-to-node/FsaNodeDirent.js +1 -0
  66. package/lib/fsa-to-node/FsaNodeDirent.js.map +1 -0
  67. package/lib/fsa-to-node/FsaNodeFs.d.ts +14 -2
  68. package/lib/fsa-to-node/FsaNodeFs.js +156 -143
  69. package/lib/fsa-to-node/FsaNodeFs.js.map +1 -0
  70. package/lib/fsa-to-node/FsaNodeFsOpenFile.js +13 -25
  71. package/lib/fsa-to-node/FsaNodeFsOpenFile.js.map +1 -0
  72. package/lib/fsa-to-node/FsaNodeReadStream.js +14 -24
  73. package/lib/fsa-to-node/FsaNodeReadStream.js.map +1 -0
  74. package/lib/fsa-to-node/FsaNodeStats.js +1 -0
  75. package/lib/fsa-to-node/FsaNodeStats.js.map +1 -0
  76. package/lib/fsa-to-node/FsaNodeWriteStream.js +35 -47
  77. package/lib/fsa-to-node/FsaNodeWriteStream.js.map +1 -0
  78. package/lib/fsa-to-node/__tests__/FsaNodeFs.test.js +357 -348
  79. package/lib/fsa-to-node/__tests__/FsaNodeFs.test.js.map +1 -0
  80. package/lib/fsa-to-node/__tests__/util.test.js +4 -0
  81. package/lib/fsa-to-node/__tests__/util.test.js.map +1 -0
  82. package/lib/fsa-to-node/constants.js +1 -0
  83. package/lib/fsa-to-node/constants.js.map +1 -0
  84. package/lib/fsa-to-node/index.js +1 -0
  85. package/lib/fsa-to-node/index.js.map +1 -0
  86. package/lib/fsa-to-node/json.js +1 -0
  87. package/lib/fsa-to-node/json.js.map +1 -0
  88. package/lib/fsa-to-node/types.js +1 -0
  89. package/lib/fsa-to-node/types.js.map +1 -0
  90. package/lib/fsa-to-node/util.js +7 -13
  91. package/lib/fsa-to-node/util.js.map +1 -0
  92. package/lib/fsa-to-node/worker/FsaNodeSyncAdapterWorker.js +31 -41
  93. package/lib/fsa-to-node/worker/FsaNodeSyncAdapterWorker.js.map +1 -0
  94. package/lib/fsa-to-node/worker/FsaNodeSyncWorker.js +91 -105
  95. package/lib/fsa-to-node/worker/FsaNodeSyncWorker.js.map +1 -0
  96. package/lib/fsa-to-node/worker/SyncMessenger.js +4 -12
  97. package/lib/fsa-to-node/worker/SyncMessenger.js.map +1 -0
  98. package/lib/fsa-to-node/worker/constants.js +1 -0
  99. package/lib/fsa-to-node/worker/constants.js.map +1 -0
  100. package/lib/fsa-to-node/worker/types.js +1 -0
  101. package/lib/fsa-to-node/worker/types.js.map +1 -0
  102. package/lib/index.d.ts +4 -1
  103. package/lib/index.js +8 -6
  104. package/lib/index.js.map +1 -0
  105. package/lib/internal/buffer.js +1 -0
  106. package/lib/internal/buffer.js.map +1 -0
  107. package/lib/internal/errors.js +1 -0
  108. package/lib/internal/errors.js.map +1 -0
  109. package/lib/node/FileHandle.js +1 -0
  110. package/lib/node/FileHandle.js.map +1 -0
  111. package/lib/node/FsPromises.d.ts +86 -0
  112. package/lib/node/FsPromises.js +54 -0
  113. package/lib/node/FsPromises.js.map +1 -0
  114. package/lib/node/constants.js +2 -1
  115. package/lib/node/constants.js.map +1 -0
  116. package/lib/node/lists/fsCallbackApiList.d.ts +2 -0
  117. package/lib/node/lists/fsCallbackApiList.js +47 -0
  118. package/lib/node/lists/fsCallbackApiList.js.map +1 -0
  119. package/lib/node/lists/fsCommonObjectsList.d.ts +2 -0
  120. package/lib/node/lists/fsCommonObjectsList.js +19 -0
  121. package/lib/node/lists/fsCommonObjectsList.js.map +1 -0
  122. package/lib/node/lists/fsSynchronousApiList.d.ts +2 -0
  123. package/lib/node/lists/fsSynchronousApiList.js +46 -0
  124. package/lib/node/lists/fsSynchronousApiList.js.map +1 -0
  125. package/lib/node/options.js +1 -0
  126. package/lib/node/options.js.map +1 -0
  127. package/lib/node/types/{callback.d.ts → FsCallbackApi.d.ts} +49 -40
  128. package/lib/node/types/FsCallbackApi.js +3 -0
  129. package/lib/node/types/FsCallbackApi.js.map +1 -0
  130. package/lib/node/types/FsCommonObjects.d.ts +4 -4
  131. package/lib/node/types/FsCommonObjects.js +1 -0
  132. package/lib/node/types/FsCommonObjects.js.map +1 -0
  133. package/lib/node/types/{promises.d.ts → FsPromisesApi.d.ts} +11 -0
  134. package/lib/node/types/FsPromisesApi.js +3 -0
  135. package/lib/node/types/FsPromisesApi.js.map +1 -0
  136. package/lib/node/types/FsSynchronousApi.d.ts +64 -58
  137. package/lib/node/types/FsSynchronousApi.js +1 -0
  138. package/lib/node/types/FsSynchronousApi.js.map +1 -0
  139. package/lib/node/types/index.d.ts +2 -2
  140. package/lib/node/types/index.js +1 -0
  141. package/lib/node/types/index.js.map +1 -0
  142. package/lib/node/types/misc.d.ts +20 -0
  143. package/lib/node/types/misc.js +1 -0
  144. package/lib/node/types/misc.js.map +1 -0
  145. package/lib/node/types/options.d.ts +62 -0
  146. package/lib/node/types/options.js +1 -0
  147. package/lib/node/types/options.js.map +1 -0
  148. package/lib/node/util.d.ts +2 -1
  149. package/lib/node/util.js +30 -1
  150. package/lib/node/util.js.map +1 -0
  151. package/lib/node-to-crud/NodeCrud.d.ts +22 -0
  152. package/lib/node-to-crud/NodeCrud.js +233 -0
  153. package/lib/node-to-crud/NodeCrud.js.map +1 -0
  154. package/lib/node-to-crud/__tests__/FsaCrud.test.d.ts +1 -0
  155. package/lib/node-to-crud/__tests__/FsaCrud.test.js +18 -0
  156. package/lib/node-to-crud/__tests__/FsaCrud.test.js.map +1 -0
  157. package/lib/node-to-crud/index.d.ts +1 -0
  158. package/lib/node-to-crud/index.js +6 -0
  159. package/lib/node-to-crud/index.js.map +1 -0
  160. package/lib/node-to-fsa/NodeFileSystemDirectoryHandle.d.ts +3 -2
  161. package/lib/node-to-fsa/NodeFileSystemDirectoryHandle.js +112 -151
  162. package/lib/node-to-fsa/NodeFileSystemDirectoryHandle.js.map +1 -0
  163. package/lib/node-to-fsa/NodeFileSystemFileHandle.js +25 -36
  164. package/lib/node-to-fsa/NodeFileSystemFileHandle.js.map +1 -0
  165. package/lib/node-to-fsa/NodeFileSystemHandle.js +3 -13
  166. package/lib/node-to-fsa/NodeFileSystemHandle.js.map +1 -0
  167. package/lib/node-to-fsa/NodeFileSystemSyncAccessHandle.js +42 -62
  168. package/lib/node-to-fsa/NodeFileSystemSyncAccessHandle.js.map +1 -0
  169. package/lib/node-to-fsa/NodeFileSystemWritableFileStream.js +92 -116
  170. package/lib/node-to-fsa/NodeFileSystemWritableFileStream.js.map +1 -0
  171. package/lib/node-to-fsa/NodePermissionStatus.js +1 -0
  172. package/lib/node-to-fsa/NodePermissionStatus.js.map +1 -0
  173. package/lib/node-to-fsa/__tests__/NodeFileSystemDirectoryHandle.test.js +175 -234
  174. package/lib/node-to-fsa/__tests__/NodeFileSystemDirectoryHandle.test.js.map +1 -0
  175. package/lib/node-to-fsa/__tests__/NodeFileSystemFileHandle.test.js +91 -99
  176. package/lib/node-to-fsa/__tests__/NodeFileSystemFileHandle.test.js.map +1 -0
  177. package/lib/node-to-fsa/__tests__/NodeFileSystemHandle.test.js +10 -18
  178. package/lib/node-to-fsa/__tests__/NodeFileSystemHandle.test.js.map +1 -0
  179. package/lib/node-to-fsa/__tests__/NodeFileSystemSyncAccessHandle.test.js +70 -78
  180. package/lib/node-to-fsa/__tests__/NodeFileSystemSyncAccessHandle.test.js.map +1 -0
  181. package/lib/node-to-fsa/__tests__/NodeFileSystemWritableFileStream.test.js +31 -39
  182. package/lib/node-to-fsa/__tests__/NodeFileSystemWritableFileStream.test.js.map +1 -0
  183. package/lib/node-to-fsa/__tests__/scenarios.test.js +18 -26
  184. package/lib/node-to-fsa/__tests__/scenarios.test.js.map +1 -0
  185. package/lib/node-to-fsa/__tests__/util.test.js +5 -0
  186. package/lib/node-to-fsa/__tests__/util.test.js.map +1 -0
  187. package/lib/node-to-fsa/index.js +6 -18
  188. package/lib/node-to-fsa/index.js.map +1 -0
  189. package/lib/node-to-fsa/types.d.ts +5 -2
  190. package/lib/node-to-fsa/types.js +1 -0
  191. package/lib/node-to-fsa/types.js.map +1 -0
  192. package/lib/node-to-fsa/util.js +3 -0
  193. package/lib/node-to-fsa/util.js.map +1 -0
  194. package/lib/node.js +1 -0
  195. package/lib/node.js.map +1 -0
  196. package/lib/print/__tests__/index.test.d.ts +1 -0
  197. package/lib/print/__tests__/index.test.js +77 -0
  198. package/lib/print/__tests__/index.test.js.map +1 -0
  199. package/lib/print/index.d.ts +8 -0
  200. package/lib/print/index.js +33 -0
  201. package/lib/print/index.js.map +1 -0
  202. package/lib/process.js +1 -0
  203. package/lib/process.js.map +1 -0
  204. package/lib/setImmediate.js +1 -0
  205. package/lib/setImmediate.js.map +1 -0
  206. package/lib/setTimeoutUnref.js +1 -0
  207. package/lib/setTimeoutUnref.js.map +1 -0
  208. package/lib/snapshot/__tests__/async.test.d.ts +1 -0
  209. package/lib/snapshot/__tests__/async.test.js +63 -0
  210. package/lib/snapshot/__tests__/async.test.js.map +1 -0
  211. package/lib/snapshot/__tests__/binary.test.d.ts +1 -0
  212. package/lib/snapshot/__tests__/binary.test.js +59 -0
  213. package/lib/snapshot/__tests__/binary.test.js.map +1 -0
  214. package/lib/snapshot/__tests__/json.test.d.ts +1 -0
  215. package/lib/snapshot/__tests__/json.test.js +68 -0
  216. package/lib/snapshot/__tests__/json.test.js.map +1 -0
  217. package/lib/snapshot/__tests__/sync.test.d.ts +1 -0
  218. package/lib/snapshot/__tests__/sync.test.js +63 -0
  219. package/lib/snapshot/__tests__/sync.test.js.map +1 -0
  220. package/lib/snapshot/async.d.ts +3 -0
  221. package/lib/snapshot/async.js +59 -0
  222. package/lib/snapshot/async.js.map +1 -0
  223. package/lib/snapshot/binary.d.ts +6 -0
  224. package/lib/snapshot/binary.js +31 -0
  225. package/lib/snapshot/binary.js.map +1 -0
  226. package/lib/snapshot/constants.d.ts +5 -0
  227. package/lib/snapshot/constants.js +3 -0
  228. package/lib/snapshot/constants.js.map +1 -0
  229. package/lib/snapshot/index.d.ts +5 -0
  230. package/lib/snapshot/index.js +8 -0
  231. package/lib/snapshot/index.js.map +1 -0
  232. package/lib/snapshot/json.d.ts +10 -0
  233. package/lib/snapshot/json.js +31 -0
  234. package/lib/snapshot/json.js.map +1 -0
  235. package/lib/snapshot/shared.d.ts +2 -0
  236. package/lib/snapshot/shared.js +6 -0
  237. package/lib/snapshot/shared.js.map +1 -0
  238. package/lib/snapshot/sync.d.ts +3 -0
  239. package/lib/snapshot/sync.js +59 -0
  240. package/lib/snapshot/sync.js.map +1 -0
  241. package/lib/snapshot/types.d.ts +30 -0
  242. package/lib/snapshot/types.js +3 -0
  243. package/lib/snapshot/types.js.map +1 -0
  244. package/lib/volume-localstorage.js +1 -0
  245. package/lib/volume-localstorage.js.map +1 -0
  246. package/lib/volume.d.ts +18 -7
  247. package/lib/volume.js +25 -16
  248. package/lib/volume.js.map +1 -0
  249. package/lib/webfs/index.js +1 -0
  250. package/lib/webfs/index.js.map +1 -0
  251. package/package.json +67 -26
  252. package/lib/getBigInt.js +0 -5
  253. package/lib/node/promises.d.ts +0 -2
  254. package/lib/node/promises.js +0 -86
@@ -1,183 +1,175 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  const __1 = require("../..");
13
4
  const NodeFileSystemDirectoryHandle_1 = require("../NodeFileSystemDirectoryHandle");
14
5
  const NodeFileSystemSyncAccessHandle_1 = require("../NodeFileSystemSyncAccessHandle");
15
6
  const util_1 = require("../../__tests__/util");
16
7
  const setup = (json = {}) => {
17
- const fs = (0, __1.memfs)(json, '/');
8
+ const { fs } = (0, __1.memfs)(json, '/');
18
9
  const dir = new NodeFileSystemDirectoryHandle_1.NodeFileSystemDirectoryHandle(fs, '/', { syncHandleAllowed: true, mode: 'readwrite' });
19
10
  return { dir, fs };
20
11
  };
21
12
  (0, util_1.onlyOnNode20)('NodeFileSystemSyncAccessHandle', () => {
22
13
  describe('.close()', () => {
23
- test('can close the file', () => __awaiter(void 0, void 0, void 0, function* () {
14
+ test('can close the file', async () => {
24
15
  const { dir } = setup({
25
16
  'file.txt': 'Hello, world!',
26
17
  });
27
- const entry = yield dir.getFileHandle('file.txt');
28
- const sync = yield entry.createSyncAccessHandle();
18
+ const entry = await dir.getFileHandle('file.txt');
19
+ const sync = await entry.createSyncAccessHandle();
29
20
  expect(sync).toBeInstanceOf(NodeFileSystemSyncAccessHandle_1.NodeFileSystemSyncAccessHandle);
30
- yield sync.close();
21
+ await sync.close();
31
22
  // ...
32
- }));
23
+ });
33
24
  });
34
25
  describe('.flush()', () => {
35
- test('can flush', () => __awaiter(void 0, void 0, void 0, function* () {
26
+ test('can flush', async () => {
36
27
  const { dir } = setup({
37
28
  'file.txt': 'Hello, world!',
38
29
  });
39
- const entry = yield dir.getFileHandle('file.txt');
40
- const sync = yield entry.createSyncAccessHandle();
41
- yield sync.flush();
42
- }));
30
+ const entry = await dir.getFileHandle('file.txt');
31
+ const sync = await entry.createSyncAccessHandle();
32
+ await sync.flush();
33
+ });
43
34
  });
44
35
  describe('.getSize()', () => {
45
- test('can get file size', () => __awaiter(void 0, void 0, void 0, function* () {
36
+ test('can get file size', async () => {
46
37
  const { dir } = setup({
47
38
  'file.txt': 'Hello, world!',
48
39
  });
49
- const entry = yield dir.getFileHandle('file.txt');
50
- const sync = yield entry.createSyncAccessHandle();
51
- const size = yield sync.getSize();
40
+ const entry = await dir.getFileHandle('file.txt');
41
+ const sync = await entry.createSyncAccessHandle();
42
+ const size = await sync.getSize();
52
43
  expect(size).toBe(13);
53
- }));
44
+ });
54
45
  });
55
46
  describe('.getSize()', () => {
56
- test('can get file size', () => __awaiter(void 0, void 0, void 0, function* () {
47
+ test('can get file size', async () => {
57
48
  const { dir } = setup({
58
49
  'file.txt': 'Hello, world!',
59
50
  });
60
- const entry = yield dir.getFileHandle('file.txt');
61
- const sync = yield entry.createSyncAccessHandle();
62
- const size = yield sync.getSize();
51
+ const entry = await dir.getFileHandle('file.txt');
52
+ const sync = await entry.createSyncAccessHandle();
53
+ const size = await sync.getSize();
63
54
  expect(size).toBe(13);
64
- }));
55
+ });
65
56
  });
66
57
  describe('.read()', () => {
67
- test('can read from beginning', () => __awaiter(void 0, void 0, void 0, function* () {
58
+ test('can read from beginning', async () => {
68
59
  const { dir } = setup({
69
60
  'file.txt': '0123456789',
70
61
  });
71
- const entry = yield dir.getFileHandle('file.txt');
72
- const sync = yield entry.createSyncAccessHandle();
62
+ const entry = await dir.getFileHandle('file.txt');
63
+ const sync = await entry.createSyncAccessHandle();
73
64
  const buf = new Uint8Array(5);
74
- const size = yield sync.read(buf);
65
+ const size = await sync.read(buf);
75
66
  expect(size).toBe(5);
76
67
  expect(Buffer.from(buf).toString()).toBe('01234');
77
- }));
78
- test('can read at offset', () => __awaiter(void 0, void 0, void 0, function* () {
68
+ });
69
+ test('can read at offset', async () => {
79
70
  const { dir } = setup({
80
71
  'file.txt': '0123456789',
81
72
  });
82
- const entry = yield dir.getFileHandle('file.txt');
83
- const sync = yield entry.createSyncAccessHandle();
73
+ const entry = await dir.getFileHandle('file.txt');
74
+ const sync = await entry.createSyncAccessHandle();
84
75
  const buf = new Uint8Array(3);
85
- const size = yield sync.read(buf, { at: 3 });
76
+ const size = await sync.read(buf, { at: 3 });
86
77
  expect(size).toBe(3);
87
78
  expect(Buffer.from(buf).toString()).toBe('345');
88
- }));
89
- test('can read into buffer larger than file', () => __awaiter(void 0, void 0, void 0, function* () {
79
+ });
80
+ test('can read into buffer larger than file', async () => {
90
81
  const { dir } = setup({
91
82
  'file.txt': '0123456789',
92
83
  });
93
- const entry = yield dir.getFileHandle('file.txt');
94
- const sync = yield entry.createSyncAccessHandle();
84
+ const entry = await dir.getFileHandle('file.txt');
85
+ const sync = await entry.createSyncAccessHandle();
95
86
  const buf = new Uint8Array(25);
96
- const size = yield sync.read(buf);
87
+ const size = await sync.read(buf);
97
88
  expect(size).toBe(10);
98
89
  expect(Buffer.from(buf).slice(0, 10).toString()).toBe('0123456789');
99
- }));
100
- test('throws "InvalidStateError" DOMException if handle is closed', () => __awaiter(void 0, void 0, void 0, function* () {
90
+ });
91
+ test('throws "InvalidStateError" DOMException if handle is closed', async () => {
101
92
  const { dir } = setup({
102
93
  'file.txt': '0123456789',
103
94
  });
104
- const entry = yield dir.getFileHandle('file.txt');
105
- const sync = yield entry.createSyncAccessHandle();
106
- yield sync.close();
95
+ const entry = await dir.getFileHandle('file.txt');
96
+ const sync = await entry.createSyncAccessHandle();
97
+ await sync.close();
107
98
  const buf = new Uint8Array(25);
108
99
  try {
109
- const size = yield sync.read(buf);
100
+ const size = await sync.read(buf);
110
101
  throw new Error('No error was thrown');
111
102
  }
112
103
  catch (error) {
113
104
  expect(error).toBeInstanceOf(DOMException);
114
105
  expect(error.name).toBe('InvalidStateError');
115
106
  }
116
- }));
107
+ });
117
108
  });
118
109
  describe('.truncate()', () => {
119
- test('can read from beginning', () => __awaiter(void 0, void 0, void 0, function* () {
110
+ test('can read from beginning', async () => {
120
111
  const { dir } = setup({
121
112
  'file.txt': '0123456789',
122
113
  });
123
- const entry = yield dir.getFileHandle('file.txt');
124
- const sync = yield entry.createSyncAccessHandle();
125
- const res = yield sync.truncate(5);
114
+ const entry = await dir.getFileHandle('file.txt');
115
+ const sync = await entry.createSyncAccessHandle();
116
+ const res = await sync.truncate(5);
126
117
  expect(res).toBe(undefined);
127
- }));
118
+ });
128
119
  });
129
120
  describe('.write()', () => {
130
- test('can write to the file', () => __awaiter(void 0, void 0, void 0, function* () {
121
+ test('can write to the file', async () => {
131
122
  const { dir, fs } = setup({
132
123
  'file.txt': '0123456789',
133
124
  });
134
- const entry = yield dir.getFileHandle('file.txt');
135
- const sync = yield entry.createSyncAccessHandle();
136
- const res = yield sync.write(Buffer.from('Hello'));
125
+ const entry = await dir.getFileHandle('file.txt');
126
+ const sync = await entry.createSyncAccessHandle();
127
+ const res = await sync.write(Buffer.from('Hello'));
137
128
  expect(res).toBe(5);
138
129
  expect(fs.readFileSync('/file.txt', 'utf8')).toBe('Hello56789');
139
- }));
140
- test('can write at an offset', () => __awaiter(void 0, void 0, void 0, function* () {
130
+ });
131
+ test('can write at an offset', async () => {
141
132
  const { dir, fs } = setup({
142
133
  'file.txt': '0123456789',
143
134
  });
144
- const entry = yield dir.getFileHandle('file.txt');
145
- const sync = yield entry.createSyncAccessHandle();
146
- const res = yield sync.write(Buffer.from('Hello'), { at: 7 });
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 });
147
138
  expect(res).toBe(5);
148
139
  expect(fs.readFileSync('/file.txt', 'utf8')).toBe('0123456Hello');
149
- }));
150
- test('throws "InvalidStateError" DOMException if file descriptor is already closed', () => __awaiter(void 0, void 0, void 0, function* () {
140
+ });
141
+ test('throws "InvalidStateError" DOMException if file descriptor is already closed', async () => {
151
142
  const { dir, fs } = setup({
152
143
  'file.txt': '0123456789',
153
144
  });
154
- const entry = yield dir.getFileHandle('file.txt');
155
- const sync = yield entry.createSyncAccessHandle();
156
- yield sync.write(Buffer.from('a'));
157
- yield sync.close();
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();
158
149
  try {
159
- yield sync.write(Buffer.from('b'));
150
+ await sync.write(Buffer.from('b'));
160
151
  throw new Error('No error was thrown');
161
152
  }
162
153
  catch (error) {
163
154
  expect(error).toBeInstanceOf(DOMException);
164
155
  expect(error.name).toBe('InvalidStateError');
165
156
  }
166
- }));
157
+ });
167
158
  // TODO: Need to find out what is the correct behavior here.
168
- xtest('writing at offset past file size', () => __awaiter(void 0, void 0, void 0, function* () {
159
+ xtest('writing at offset past file size', async () => {
169
160
  const { dir, fs } = setup({
170
161
  'file.txt': '0123456789',
171
162
  });
172
- const entry = yield dir.getFileHandle('file.txt');
173
- const sync = yield entry.createSyncAccessHandle();
163
+ const entry = await dir.getFileHandle('file.txt');
164
+ const sync = await entry.createSyncAccessHandle();
174
165
  try {
175
- yield sync.write(Buffer.from('a'), { at: 100 });
166
+ await sync.write(Buffer.from('a'), { at: 100 });
176
167
  // ?
177
168
  }
178
169
  catch (error) {
179
170
  // ?
180
171
  }
181
- }));
172
+ });
182
173
  });
183
174
  });
175
+ //# sourceMappingURL=NodeFileSystemSyncAccessHandle.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeFileSystemSyncAccessHandle.test.js","sourceRoot":"","sources":["../../../src/node-to-fsa/__tests__/NodeFileSystemSyncAccessHandle.test.ts"],"names":[],"mappings":"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"}
@@ -1,106 +1,98 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  const __1 = require("../..");
13
4
  const FileHandle_1 = require("../../node/FileHandle");
14
5
  const NodeFileSystemWritableFileStream_1 = require("../NodeFileSystemWritableFileStream");
15
6
  describe('createSwapFile()', () => {
16
- test('can create a swap file', () => __awaiter(void 0, void 0, void 0, function* () {
17
- const fs = (0, __1.memfs)({
7
+ test('can create a swap file', async () => {
8
+ const { fs, vol } = (0, __1.memfs)({
18
9
  '/file.txt': 'Hello, world!',
19
10
  }, '/');
20
- const [handle, path] = yield (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/file.txt', false);
11
+ const [handle, path] = await (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/file.txt', false);
21
12
  expect(handle).toBeInstanceOf(FileHandle_1.FileHandle);
22
13
  expect(path).toBe('/file.txt.crswap');
23
- expect(fs.__vol.toJSON()).toStrictEqual({
14
+ expect(vol.toJSON()).toStrictEqual({
24
15
  '/file.txt': 'Hello, world!',
25
16
  '/file.txt.crswap': '',
26
17
  });
27
- }));
28
- test('can create a swap file at subfolder', () => __awaiter(void 0, void 0, void 0, function* () {
29
- const fs = (0, __1.memfs)({
18
+ });
19
+ test('can create a swap file at subfolder', async () => {
20
+ const { fs, vol } = (0, __1.memfs)({
30
21
  '/foo/file.txt': 'Hello, world!',
31
22
  }, '/');
32
- const [handle, path] = yield (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', false);
23
+ const [handle, path] = await (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', false);
33
24
  expect(handle).toBeInstanceOf(FileHandle_1.FileHandle);
34
25
  expect(path).toBe('/foo/file.txt.crswap');
35
- expect(fs.__vol.toJSON()).toStrictEqual({
26
+ expect(vol.toJSON()).toStrictEqual({
36
27
  '/foo/file.txt': 'Hello, world!',
37
28
  '/foo/file.txt.crswap': '',
38
29
  });
39
- }));
40
- test('can create a swap file when the default swap file name is in use', () => __awaiter(void 0, void 0, void 0, function* () {
41
- const fs = (0, __1.memfs)({
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)({
42
33
  '/foo/file.txt': 'Hello, world!',
43
34
  '/foo/file.txt.crswap': 'lala',
44
35
  }, '/');
45
- const [handle, path] = yield (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', false);
36
+ const [handle, path] = await (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', false);
46
37
  expect(handle).toBeInstanceOf(FileHandle_1.FileHandle);
47
38
  expect(path).toBe('/foo/file.txt.1.crswap');
48
- expect(fs.__vol.toJSON()).toStrictEqual({
39
+ expect(vol.toJSON()).toStrictEqual({
49
40
  '/foo/file.txt': 'Hello, world!',
50
41
  '/foo/file.txt.crswap': 'lala',
51
42
  '/foo/file.txt.1.crswap': '',
52
43
  });
53
- }));
54
- test('can create a swap file when the first two names are already taken', () => __awaiter(void 0, void 0, void 0, function* () {
55
- const fs = (0, __1.memfs)({
44
+ });
45
+ test('can create a swap file when the first two names are already taken', async () => {
46
+ const { fs, vol } = (0, __1.memfs)({
56
47
  '/foo/file.txt': 'Hello, world!',
57
48
  '/foo/file.txt.crswap': 'lala',
58
49
  '/foo/file.txt.1.crswap': 'blah',
59
50
  }, '/');
60
- const [handle, path] = yield (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', false);
51
+ const [handle, path] = await (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', false);
61
52
  expect(handle).toBeInstanceOf(FileHandle_1.FileHandle);
62
53
  expect(path).toBe('/foo/file.txt.2.crswap');
63
- expect(fs.__vol.toJSON()).toStrictEqual({
54
+ expect(vol.toJSON()).toStrictEqual({
64
55
  '/foo/file.txt': 'Hello, world!',
65
56
  '/foo/file.txt.crswap': 'lala',
66
57
  '/foo/file.txt.1.crswap': 'blah',
67
58
  '/foo/file.txt.2.crswap': '',
68
59
  });
69
- }));
70
- test('can create a swap file when the first three names are already taken', () => __awaiter(void 0, void 0, void 0, function* () {
71
- const fs = (0, __1.memfs)({
60
+ });
61
+ test('can create a swap file when the first three names are already taken', async () => {
62
+ const { fs, vol } = (0, __1.memfs)({
72
63
  '/foo/file.txt': 'Hello, world!',
73
64
  '/foo/file.txt.crswap': 'lala',
74
65
  '/foo/file.txt.1.crswap': 'blah',
75
66
  '/foo/file.txt.2.crswap': 'brawo',
76
67
  }, '/');
77
- const [handle, path] = yield (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', false);
68
+ const [handle, path] = await (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', false);
78
69
  expect(handle).toBeInstanceOf(FileHandle_1.FileHandle);
79
70
  expect(path).toBe('/foo/file.txt.3.crswap');
80
- expect(fs.__vol.toJSON()).toStrictEqual({
71
+ expect(vol.toJSON()).toStrictEqual({
81
72
  '/foo/file.txt': 'Hello, world!',
82
73
  '/foo/file.txt.crswap': 'lala',
83
74
  '/foo/file.txt.1.crswap': 'blah',
84
75
  '/foo/file.txt.2.crswap': 'brawo',
85
76
  '/foo/file.txt.3.crswap': '',
86
77
  });
87
- }));
88
- test('can copy existing data into the swap file', () => __awaiter(void 0, void 0, void 0, function* () {
89
- const fs = (0, __1.memfs)({
78
+ });
79
+ test('can copy existing data into the swap file', async () => {
80
+ const { fs, vol } = (0, __1.memfs)({
90
81
  '/foo/file.txt': 'Hello, world!',
91
82
  '/foo/file.txt.crswap': 'lala',
92
83
  '/foo/file.txt.1.crswap': 'blah',
93
84
  '/foo/file.txt.2.crswap': 'brawo',
94
85
  }, '/');
95
- const [handle, path] = yield (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', true);
86
+ const [handle, path] = await (0, NodeFileSystemWritableFileStream_1.createSwapFile)(fs, '/foo/file.txt', true);
96
87
  expect(handle).toBeInstanceOf(FileHandle_1.FileHandle);
97
88
  expect(path).toBe('/foo/file.txt.3.crswap');
98
- expect(fs.__vol.toJSON()).toStrictEqual({
89
+ expect(vol.toJSON()).toStrictEqual({
99
90
  '/foo/file.txt': 'Hello, world!',
100
91
  '/foo/file.txt.crswap': 'lala',
101
92
  '/foo/file.txt.1.crswap': 'blah',
102
93
  '/foo/file.txt.2.crswap': 'brawo',
103
94
  '/foo/file.txt.3.crswap': 'Hello, world!',
104
95
  });
105
- }));
96
+ });
106
97
  });
98
+ //# sourceMappingURL=NodeFileSystemWritableFileStream.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeFileSystemWritableFileStream.test.js","sourceRoot":"","sources":["../../../src/node-to-fsa/__tests__/NodeFileSystemWritableFileStream.test.ts"],"names":[],"mappings":"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"}
@@ -1,40 +1,31 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  const __1 = require("..");
13
4
  const __2 = require("../..");
14
5
  const util_1 = require("../../__tests__/util");
15
6
  (0, util_1.onlyOnNode20)('scenarios', () => {
16
- test('can init FSA from an arbitrary FS folder and execute operations', () => __awaiter(void 0, void 0, void 0, function* () {
17
- const fs = (0, __2.memfs)({
7
+ test('can init FSA from an arbitrary FS folder and execute operations', async () => {
8
+ const { fs, vol } = (0, __2.memfs)({
18
9
  '/tmp': null,
19
10
  '/etc': null,
20
11
  '/bin': null,
21
12
  '/Users/kasper/Documents/shopping-list.txt': 'Milk, Eggs, Bread',
22
13
  });
23
14
  const dir = (0, __1.nodeToFsa)(fs, '/Users/kasper/Documents', { mode: 'readwrite' });
24
- const shoppingListFile = yield dir.getFileHandle('shopping-list.txt');
25
- const shoppingList = yield shoppingListFile.getFile();
26
- expect(yield shoppingList.text()).toBe('Milk, Eggs, Bread');
27
- const backupsDir = yield dir.getDirectoryHandle('backups', { create: true });
28
- const backupFile = yield backupsDir.getFileHandle('shopping-list.txt', { create: true });
29
- const writable = yield backupFile.createWritable();
30
- yield writable.write(yield shoppingList.arrayBuffer());
31
- yield writable.close();
32
- const logsFileHandle = yield dir.getFileHandle('logs.csv', { create: true });
33
- const logsWritable = yield logsFileHandle.createWritable();
34
- yield logsWritable.write('timestamp,level,message\n');
35
- yield logsWritable.write({ type: 'write', data: '2021-01-01T00:00:00Z,INFO,Hello World\n' });
36
- yield logsWritable.close();
37
- expect(fs.__vol.toJSON()).toStrictEqual({
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({
38
29
  '/tmp': null,
39
30
  '/etc': null,
40
31
  '/bin': null,
@@ -42,5 +33,6 @@ const util_1 = require("../../__tests__/util");
42
33
  '/Users/kasper/Documents/backups/shopping-list.txt': 'Milk, Eggs, Bread',
43
34
  '/Users/kasper/Documents/logs.csv': 'timestamp,level,message\n2021-01-01T00:00:00Z,INFO,Hello World\n',
44
35
  });
45
- }));
36
+ });
46
37
  });
38
+ //# sourceMappingURL=scenarios.test.js.map
@@ -0,0 +1 @@
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"}
@@ -8,6 +8,10 @@ describe('basename()', () => {
8
8
  test('return the same string if there is no nesting', () => {
9
9
  expect((0, util_1.basename)('scary.exe', '/')).toBe('scary.exe');
10
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
+ });
11
15
  test('returns last step in path', () => {
12
16
  expect((0, util_1.basename)('/gg/wp/hf/gl.txt', '/')).toBe('gl.txt');
13
17
  expect((0, util_1.basename)('gg/wp/hf/gl.txt', '/')).toBe('gl.txt');
@@ -23,3 +27,4 @@ describe('basename()', () => {
23
27
  expect((0, util_1.basename)('//gl.txt', '/')).toBe('gl.txt');
24
28
  });
25
29
  });
30
+ //# sourceMappingURL=util.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.test.js","sourceRoot":"","sources":["../../../src/node-to-fsa/__tests__/util.test.ts"],"names":[],"mappings":";;AAAA,kCAAmC;AAEnC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,IAAA,eAAQ,EAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,IAAA,eAAQ,EAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,IAAA,eAAQ,EAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,CAAC,IAAA,eAAQ,EAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,IAAA,eAAQ,EAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,CAAC,IAAA,eAAQ,EAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,CAAC,IAAA,eAAQ,EAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,IAAA,eAAQ,EAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,CAAC,IAAA,eAAQ,EAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,CAAC,IAAA,eAAQ,EAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,CAAC,IAAA,eAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,IAAA,eAAQ,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,IAAA,eAAQ,EAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAA,eAAQ,EAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,26 +1,14 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
3
  exports.nodeToFsa = void 0;
4
+ const tslib_1 = require("tslib");
18
5
  const NodeFileSystemDirectoryHandle_1 = require("./NodeFileSystemDirectoryHandle");
19
- __exportStar(require("./types"), exports);
20
- __exportStar(require("./NodeFileSystemHandle"), exports);
21
- __exportStar(require("./NodeFileSystemDirectoryHandle"), exports);
22
- __exportStar(require("./NodeFileSystemFileHandle"), exports);
6
+ tslib_1.__exportStar(require("./types"), exports);
7
+ tslib_1.__exportStar(require("./NodeFileSystemHandle"), exports);
8
+ tslib_1.__exportStar(require("./NodeFileSystemDirectoryHandle"), exports);
9
+ tslib_1.__exportStar(require("./NodeFileSystemFileHandle"), exports);
23
10
  const nodeToFsa = (fs, dirPath, ctx) => {
24
11
  return new NodeFileSystemDirectoryHandle_1.NodeFileSystemDirectoryHandle(fs, dirPath, ctx);
25
12
  };
26
13
  exports.nodeToFsa = nodeToFsa;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node-to-fsa/index.ts"],"names":[],"mappings":";;;;AAAA,mFAAgF;AAGhF,kDAAwB;AACxB,iEAAuC;AACvC,0EAAgD;AAChD,qEAA2C;AAEpC,MAAM,SAAS,GAAG,CACvB,EAAa,EACb,OAAe,EACf,GAA6B,EACE,EAAE;IACjC,OAAO,IAAI,6DAA6B,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AAC7D,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB"}
@@ -1,8 +1,11 @@
1
- import type { IFs } from '..';
1
+ import type { FsPromisesApi, FsSynchronousApi } from '../node/types';
2
+ import type { FsCommonObjects } from '../node/types/FsCommonObjects';
2
3
  /**
3
4
  * Required Node.js `fs` module functions for File System Access API.
4
5
  */
5
- export type NodeFsaFs = Pick<IFs, 'promises' | 'constants' | 'openSync' | 'fsyncSync' | 'statSync' | 'closeSync' | 'readSync' | 'truncateSync' | 'writeSync'>;
6
+ export type NodeFsaFs = Pick<FsCommonObjects, 'constants'> & {
7
+ promises: FsPromisesApi;
8
+ } & Pick<FsSynchronousApi, 'openSync' | 'fsyncSync' | 'statSync' | 'closeSync' | 'readSync' | 'truncateSync' | 'writeSync'>;
6
9
  export interface NodeFsaContext {
7
10
  separator: '/' | '\\';
8
11
  /** Whether synchronous file handles are allowed. */
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/node-to-fsa/types.ts"],"names":[],"mappings":""}
@@ -9,6 +9,8 @@ const ctx = (partial = {}) => {
9
9
  };
10
10
  exports.ctx = ctx;
11
11
  const basename = (path, separator) => {
12
+ if (path[path.length - 1] === separator)
13
+ path = path.slice(0, -1);
12
14
  const lastSlashIndex = path.lastIndexOf(separator);
13
15
  return lastSlashIndex === -1 ? path : path.slice(lastSlashIndex + 1);
14
16
  };
@@ -31,3 +33,4 @@ const newTypeMismatchError = () => new DOMException('The path supplied exists, b
31
33
  exports.newTypeMismatchError = newTypeMismatchError;
32
34
  const newNotAllowedError = () => new DOMException('Permission not granted.', 'NotAllowedError');
33
35
  exports.newNotAllowedError = newNotAllowedError;
36
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/node-to-fsa/util.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACI,MAAM,GAAG,GAAG,CAAC,UAAmC,EAAE,EAAkB,EAAE;IAC3E,uBACE,SAAS,EAAE,GAAG,EACd,iBAAiB,EAAE,KAAK,EACxB,IAAI,EAAE,MAAM,IACT,OAAO,EACV;AACJ,CAAC,CAAC;AAPW,QAAA,GAAG,OAOd;AAEK,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,SAAiB,EAAE,EAAE;IAC1D,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS;QAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACnD,OAAO,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC;AAJW,QAAA,QAAQ,YAInB;AAEF,MAAM,SAAS,GAAG,2BAA2B,CAAC;AAEvC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,KAAa,EAAE,EAAE;IACxE,MAAM,SAAS,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,SAAS;QAAE,MAAM,IAAI,SAAS,CAAC,sBAAsB,MAAM,SAAS,KAAK,yBAAyB,CAAC,CAAC;AAC1G,CAAC,CAAC;AAHW,QAAA,UAAU,cAGrB;AAEK,MAAM,cAAc,GAAG,CAAC,IAA0B,EAAE,EAAE;IAC3D,IAAI,IAAI,KAAK,WAAW;QACtB,MAAM,IAAI,YAAY,CACpB,sFAAsF,EACtF,iBAAiB,CAClB,CAAC;AACN,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEK,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,IAAI,YAAY,CACd,0FAA0F,EAC1F,eAAe,CAChB,CAAC;AAJS,QAAA,gBAAgB,oBAIzB;AAEG,MAAM,oBAAoB,GAAG,GAAG,EAAE,CACvC,IAAI,YAAY,CAAC,mEAAmE,EAAE,mBAAmB,CAAC,CAAC;AADhG,QAAA,oBAAoB,wBAC4E;AAEtG,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,IAAI,YAAY,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAC;AAA1F,QAAA,kBAAkB,sBAAwE"}
package/lib/node.js CHANGED
@@ -428,3 +428,4 @@ class File {
428
428
  }
429
429
  }
430
430
  exports.File = File;
431
+ //# sourceMappingURL=node.js.map