@zenfs/core 0.12.6 → 0.12.8

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.
@@ -20,6 +20,7 @@ declare const IndexFS_base: (abstract new (...args: any[]) => {
20
20
  linkSync(srcpath: string, dstpath: string, cred: Cred): void;
21
21
  sync(path: string, data: Uint8Array, stats: Readonly<Stats>): Promise<void>;
22
22
  syncSync(path: string, data: Uint8Array, stats: Readonly<Stats>): void;
23
+ _disableSync?: boolean | undefined;
23
24
  ready(): Promise<void>;
24
25
  stat(path: string, cred: Cred): Promise<Stats>;
25
26
  statSync(path: string, cred: Cred): Stats;
@@ -41,7 +41,6 @@ export declare class PortFile extends File {
41
41
  type FSMethods = ExtractProperties<FileSystem, (...args: any[]) => Promise<any> | FileSystemMetadata>;
42
42
  type FSMethod = keyof FSMethods;
43
43
  declare const PortFS_base: (abstract new (...args: any[]) => {
44
- _disableSync: boolean;
45
44
  _sync?: FileSystem | undefined;
46
45
  queueDone(): Promise<void>;
47
46
  metadata(): FileSystemMetadata;
@@ -56,16 +55,14 @@ declare const PortFS_base: (abstract new (...args: any[]) => {
56
55
  readdirSync(path: string, cred: Cred): string[];
57
56
  linkSync(srcpath: string, dstpath: string, cred: Cred): void;
58
57
  syncSync(path: string, data: Uint8Array, stats: Readonly<Stats>): void;
58
+ _disableSync?: boolean | undefined;
59
59
  rename(oldPath: string, newPath: string, cred: Cred): Promise<void>;
60
60
  stat(path: string, cred: Cred): Promise<Stats>;
61
61
  openFile(path: string, flag: string, cred: Cred): Promise<File>;
62
62
  createFile(path: string, flag: string, mode: number, cred: Cred): Promise<File>;
63
63
  unlink(path: string, cred: Cred): Promise<void>;
64
64
  rmdir(path: string, cred: Cred): Promise<void>;
65
- mkdir(path: string, mode: number, cred: Cred): Promise<void>; /**
66
- * Constructs a new PortFS instance that connects with ZenFS running on
67
- * the specified port.
68
- */
65
+ mkdir(path: string, mode: number, cred: Cred): Promise<void>;
69
66
  readdir(path: string, cred: Cred): Promise<string[]>;
70
67
  exists(path: string, cred: Cred): Promise<boolean>;
71
68
  existsSync(path: string, cred: Cred): boolean;
@@ -13,19 +13,19 @@ import type { Store, Transaction } from './store.js';
13
13
  * @internal
14
14
  */
15
15
  export declare class StoreFS<T extends Store = Store> extends FileSystem {
16
- private $store;
17
- protected get store(): T;
18
- protected _store?: T;
16
+ protected store: T;
19
17
  private _initialized;
20
18
  ready(): Promise<void>;
21
- constructor($store: T | Promise<T>);
19
+ constructor(store: T);
22
20
  metadata(): FileSystemMetadata;
23
21
  /**
24
22
  * Delete all contents stored in the file system.
23
+ * @deprecated
25
24
  */
26
25
  empty(): Promise<void>;
27
26
  /**
28
27
  * Delete all contents stored in the file system.
28
+ * @deprecated
29
29
  */
30
30
  emptySync(): void;
31
31
  /**
@@ -16,28 +16,20 @@ const maxInodeAllocTries = 5;
16
16
  * @internal
17
17
  */
18
18
  export class StoreFS extends FileSystem {
19
- get store() {
20
- if (!this._store) {
21
- throw new ErrnoError(Errno.ENODATA, 'No store attached');
22
- }
23
- return this._store;
24
- }
25
19
  async ready() {
26
- await super.ready();
27
20
  if (this._initialized) {
28
21
  return;
29
22
  }
23
+ await this.makeRootDirectory();
30
24
  this._initialized = true;
31
- this._store = await this.$store;
32
25
  }
33
- constructor($store) {
26
+ constructor(store) {
34
27
  super();
35
- this.$store = $store;
28
+ this.store = store;
36
29
  this._initialized = false;
37
- if (!($store instanceof Promise)) {
38
- this._store = $store;
39
- this._initialized = true;
30
+ if (!this._disableSync) {
40
31
  this.makeRootDirectorySync();
32
+ this._initialized = true;
41
33
  }
42
34
  }
43
35
  metadata() {
@@ -48,6 +40,7 @@ export class StoreFS extends FileSystem {
48
40
  }
49
41
  /**
50
42
  * Delete all contents stored in the file system.
43
+ * @deprecated
51
44
  */
52
45
  async empty() {
53
46
  await this.store.clear();
@@ -56,6 +49,7 @@ export class StoreFS extends FileSystem {
56
49
  }
57
50
  /**
58
51
  * Delete all contents stored in the file system.
52
+ * @deprecated
59
53
  */
60
54
  emptySync() {
61
55
  this.store.clearSync();
@@ -1,5 +1,5 @@
1
1
  import type { Ino } from '../../inode.js';
2
- import { type Store, SyncTransaction } from './store.js';
2
+ import { SyncTransaction, type Store } from './store.js';
3
3
  /**
4
4
  * An interface for simple synchronous stores that don't have special support for transactions and such.
5
5
  */
@@ -32,8 +32,7 @@ export declare abstract class SimpleAsyncStore implements SimpleSyncStore {
32
32
  * @see SimpleSyncStore
33
33
  * @see SimpleAsyncStore
34
34
  */
35
- export declare class SimpleTransaction extends SyncTransaction {
36
- protected store: SimpleSyncStore;
35
+ export declare class SimpleTransaction extends SyncTransaction<SimpleSyncStore> {
37
36
  /**
38
37
  * Stores data in the keys we modify prior to modifying them.
39
38
  * Allows us to roll back commits.
@@ -43,6 +42,7 @@ export declare class SimpleTransaction extends SyncTransaction {
43
42
  * List of keys modified in this transaction, if any.
44
43
  */
45
44
  protected modifiedKeys: Set<Ino>;
45
+ protected store: SimpleSyncStore;
46
46
  constructor(store: SimpleSyncStore);
47
47
  getSync(ino: Ino): Uint8Array;
48
48
  setSync(ino: Ino, data: Uint8Array): void;
@@ -44,8 +44,7 @@ export class SimpleAsyncStore {
44
44
  */
45
45
  export class SimpleTransaction extends SyncTransaction {
46
46
  constructor(store) {
47
- super();
48
- this.store = store;
47
+ super(store);
49
48
  /**
50
49
  * Stores data in the keys we modify prior to modifying them.
51
50
  * Allows us to roll back commits.
@@ -6,7 +6,7 @@ export interface Store {
6
6
  /**
7
7
  * The name of the store.
8
8
  */
9
- name: string;
9
+ readonly name: string;
10
10
  /**
11
11
  * Syncs the store
12
12
  */
@@ -25,9 +25,11 @@ export interface Store {
25
25
  transaction(): Transaction;
26
26
  }
27
27
  /**
28
- * A transaction for a synchronous store.
28
+ * A transaction for a store.
29
29
  */
30
- export declare abstract class Transaction {
30
+ export declare abstract class Transaction<T extends Store = Store> {
31
+ protected store: T;
32
+ constructor(store: T);
31
33
  protected aborted: boolean;
32
34
  /**
33
35
  * Retrieves the data at the given key.
@@ -91,7 +93,7 @@ export declare abstract class Transaction {
91
93
  /**
92
94
  * Transaction that implements asynchronous operations with synchronous ones
93
95
  */
94
- export declare abstract class SyncTransaction extends Transaction {
96
+ export declare abstract class SyncTransaction<T extends Store = Store> extends Transaction<T> {
95
97
  get(ino: Ino): Promise<Uint8Array>;
96
98
  set(ino: bigint, data: Uint8Array): Promise<void>;
97
99
  remove(ino: Ino): Promise<void>;
@@ -100,12 +102,11 @@ export declare abstract class SyncTransaction extends Transaction {
100
102
  }
101
103
  /**
102
104
  * Transaction that only supports asynchronous operations
103
- * @todo Add caching
104
105
  */
105
- export declare abstract class AsyncTransaction extends Transaction {
106
- getSync(ino: Ino): Uint8Array;
107
- setSync(ino: bigint, data: Uint8Array): void;
108
- removeSync(ino: bigint): void;
106
+ export declare abstract class AsyncTransaction<T extends Store = Store> extends Transaction<T> {
107
+ getSync(): Uint8Array;
108
+ setSync(): void;
109
+ removeSync(): void;
109
110
  commitSync(): void;
110
111
  abortSync(): void;
111
112
  }
@@ -1,9 +1,10 @@
1
1
  import { ErrnoError } from '../../error.js';
2
2
  /**
3
- * A transaction for a synchronous store.
3
+ * A transaction for a store.
4
4
  */
5
5
  export class Transaction {
6
- constructor() {
6
+ constructor(store) {
7
+ this.store = store;
7
8
  this.aborted = false;
8
9
  }
9
10
  async [Symbol.asyncDispose]() {
@@ -41,16 +42,15 @@ export class SyncTransaction extends Transaction {
41
42
  }
42
43
  /**
43
44
  * Transaction that only supports asynchronous operations
44
- * @todo Add caching
45
45
  */
46
46
  export class AsyncTransaction extends Transaction {
47
- getSync(ino) {
47
+ getSync() {
48
48
  throw ErrnoError.With('ENOSYS', undefined, 'AsyncTransaction.getSync');
49
49
  }
50
- setSync(ino, data) {
50
+ setSync() {
51
51
  throw ErrnoError.With('ENOSYS', undefined, 'AsyncTransaction.setSync');
52
52
  }
53
- removeSync(ino) {
53
+ removeSync() {
54
54
  throw ErrnoError.With('ENOSYS', undefined, 'AsyncTransaction.removeSync');
55
55
  }
56
56
  commitSync() {