dirsql 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dirsql.node CHANGED
Binary file
package/dist/index.d.ts CHANGED
@@ -9,6 +9,29 @@ export interface TableDef {
9
9
  /** If true, reject rows with columns not declared in `ddl`. */
10
10
  strict?: boolean;
11
11
  }
12
+ /**
13
+ * Options accepted by the {@link DirSQL} constructor.
14
+ *
15
+ * At least one of `root` or `config` must be supplied. When both are set,
16
+ * the explicit `root` wins over any `[dirsql].root` declared in the config
17
+ * file (a warning is emitted by the native layer).
18
+ */
19
+ export interface DirSQLOptions {
20
+ /** Root directory to scan. */
21
+ root?: string;
22
+ /** Programmatic table definitions. Each table's `extract` runs in-process. */
23
+ tables?: TableDef[];
24
+ /** Glob patterns (relative to `root`) to ignore. */
25
+ ignore?: string[];
26
+ /**
27
+ * Path to a `.dirsql.toml` config file. Its `[[table]]` entries are
28
+ * appended to any programmatic `tables`; its `[dirsql].ignore` patterns
29
+ * are appended to any explicit `ignore`. If the config declares a
30
+ * `[dirsql].root` and no explicit `root` is given, it is resolved
31
+ * relative to the config file's parent directory.
32
+ */
33
+ config?: string;
34
+ }
12
35
  /** A row-level event emitted by the file watcher. */
13
36
  export interface RowEvent {
14
37
  /**
@@ -29,8 +52,7 @@ interface NativeDirSQL {
29
52
  pollEvents(timeoutMs: number): Promise<RowEvent[]>;
30
53
  }
31
54
  interface NativeDirSQLConstructor {
32
- new (root: string, tables: TableDef[], ignore?: string[]): NativeDirSQL;
33
- fromConfig(configPath: string): NativeDirSQL;
55
+ openAsync(root: string | null, tables: TableDef[] | null, ignore: string[] | null, config: string | null): Promise<NativeDirSQL>;
34
56
  }
35
57
  interface CoreModule {
36
58
  DirSQL: NativeDirSQLConstructor;
@@ -47,61 +69,70 @@ export declare function __setCoreForTesting(fake: CoreModule | null): void;
47
69
  /**
48
70
  * Ephemeral SQL index over a local directory.
49
71
  *
50
- * Constructing a `DirSQL` scans `root`, matches files against each
51
- * {@link TableDef}'s `glob`, extracts rows via `extract`, and builds an
52
- * in-memory SQLite database. {@link query} runs on a worker thread and
53
- * returns a Promise; {@link ready} and {@link watch} expose the same
54
- * surface in an async-idiomatic shape so TypeScript consumers don't
55
- * need a separate `AsyncDirSQL` class.
72
+ * The constructor is overloaded: pass a config-file path directly, or an
73
+ * options object with any combination of `root`, `tables`, `ignore`, and
74
+ * `config`.
75
+ *
76
+ * Constructing a `DirSQL` returns immediately; the directory scan, file
77
+ * reads, and initial row extraction run asynchronously. `db.ready`
78
+ * resolves once construction has completed, and every method (including
79
+ * {@link query}, {@link startWatcher}, {@link pollEvents}, and
80
+ * {@link watch}) transparently awaits `ready` before doing any work, so
81
+ * callers can start using the instance immediately:
56
82
  *
57
83
  * ```ts
58
- * const db = new DirSQL(root, tables);
59
- * await db.ready;
84
+ * // From a config file:
85
+ * const db = new DirSQL("./my-config.toml");
86
+ *
87
+ * // Programmatic:
88
+ * const db2 = new DirSQL({ root: "./data", tables: [...] });
89
+ *
90
+ * await db.ready; // optional: wait for the initial scan explicitly
60
91
  * const rows = await db.query("SELECT ...");
61
92
  * for await (const event of db.watch()) { ... }
62
93
  * ```
94
+ *
95
+ * The scan runs on the libuv threadpool, so constructing a `DirSQL` does
96
+ * not block the JS event loop even for large directories.
63
97
  */
64
98
  export declare class DirSQL {
65
99
  /**
66
- * Resolves once the initial directory scan has completed. Scanning
67
- * runs synchronously inside the constructor, so this Promise is
68
- * already resolved by the time the constructor returns; construction
69
- * failures throw synchronously rather than surfacing here. Exposed
70
- * as a Promise purely so consumers can write async-style code
71
- * uniformly across SDKs.
100
+ * Resolves once the initial directory scan + row extraction have
101
+ * completed, or rejects if construction failed. Every other method on
102
+ * this class implicitly awaits `ready`, so awaiting it explicitly is
103
+ * only necessary when a caller needs to observe construction errors
104
+ * synchronously (without issuing a query first).
72
105
  */
73
106
  readonly ready: Promise<void>;
74
107
  private _inner;
75
- constructor(root: string, tables: TableDef[], ignore?: string[]);
76
- /**
77
- * Load a {@link DirSQL} instance from a `.dirsql.toml` config file.
78
- *
79
- * The root directory is derived from the config file's parent. Tables
80
- * are parsed using the built-in parser for each format declared in the
81
- * config. No JS `extract` callback is required.
82
- */
83
- static fromConfig(configPath: string): DirSQL;
108
+ /** Construct from a `.dirsql.toml` config-file path. */
109
+ constructor(configPath: string);
110
+ /** Construct from structured options. */
111
+ constructor(options: DirSQLOptions);
84
112
  /**
85
113
  * Execute a SQL query and return results as an array of row objects.
86
114
  *
87
- * The query runs on the libuv threadpool, so the JS event loop stays
88
- * responsive even for large result sets or long-running queries.
115
+ * Awaits the initial scan if it has not yet finished, then runs the
116
+ * query on the libuv threadpool, so the JS event loop stays responsive
117
+ * even for large result sets or long-running queries.
89
118
  */
90
119
  query(sql: string): Promise<Record<string, unknown>[]>;
91
120
  /**
92
121
  * Start the file watcher. Must be called before {@link pollEvents}.
93
122
  * Idempotent — safe to call multiple times.
94
123
  *
95
- * Runs on the libuv threadpool, so the JS event loop stays responsive
96
- * while the watcher is being initialized.
124
+ * Awaits the initial scan if it has not yet finished, then runs on the
125
+ * libuv threadpool so the JS event loop stays responsive while the
126
+ * watcher is being initialized.
97
127
  */
98
128
  startWatcher(): Promise<void>;
99
129
  /**
100
130
  * Poll for file change events, blocking up to `timeoutMs` for the first
101
131
  * event. Returns all events observed in the window (possibly empty).
102
132
  *
103
- * Runs on the libuv threadpool, so the JS event loop stays responsive
104
- * for the duration of the poll timeout.
133
+ * Awaits the initial scan if it has not yet finished, then runs on the
134
+ * libuv threadpool so the JS event loop stays responsive for the
135
+ * duration of the poll timeout.
105
136
  */
106
137
  pollEvents(timeoutMs: number): Promise<RowEvent[]>;
107
138
  /**
@@ -111,9 +142,9 @@ export declare class DirSQL {
111
142
  * for await (const event of db.watch()) { ... }
112
143
  * ```
113
144
  *
114
- * Starts the underlying watcher on first iteration, then awaits a
115
- * bounded native poll each cycle. The iterator runs indefinitely; break
116
- * out of the `for await` loop to stop.
145
+ * Awaits the initial scan on first iteration, starts the underlying
146
+ * watcher, then awaits a bounded native poll each cycle. The iterator
147
+ * runs indefinitely; break out of the `for await` loop to stop.
117
148
  */
118
149
  watch(): AsyncGenerator<RowEvent, void, unknown>;
119
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAiBA,iEAAiE;AACjE,MAAM,WAAW,QAAQ;IACvB,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC1E,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qDAAqD;AACrD,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAGD,UAAU,YAAY;IACpB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACvD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CACpD;AAED,UAAU,uBAAuB;IAC/B,KAAK,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IACxE,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAAC;CAC9C;AAID,UAAU,UAAU;IAClB,MAAM,EAAE,uBAAuB,CAAC;CACjC;AA0BD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAEjE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,MAAM;IACjB;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B,OAAO,CAAC,MAAM,CAAe;gBAEjB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE;IAS/D;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAW7C;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAItD;;;;;;OAMG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;;;;;OAMG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIlD;;;;;;;;;;OAUG;IACI,KAAK,IAAI,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;CAYxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAiBA,iEAAiE;AACjE,MAAM,WAAW,QAAQ;IACvB,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC1E,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qDAAqD;AACrD,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAGD,UAAU,YAAY;IACpB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACvD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CACpD;AAED,UAAU,uBAAuB;IAC/B,SAAS,CACP,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EACzB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EACvB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B;AAID,UAAU,UAAU;IAClB,MAAM,EAAE,uBAAuB,CAAC;CACjC;AA0BD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAEjE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,MAAM;IACjB;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAG9B,OAAO,CAAC,MAAM,CAAgB;IAE9B,wDAAwD;gBAC5C,UAAU,EAAE,MAAM;IAC9B,yCAAyC;gBAC7B,OAAO,EAAE,aAAa;IAgBlC;;;;;;OAMG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAK5D;;;;;;;OAOG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAKnC;;;;;;;OAOG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKxD;;;;;;;;;;OAUG;IACI,KAAK,IAAI,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;CAaxD"}
package/dist/index.js CHANGED
@@ -48,80 +48,84 @@ export function __setCoreForTesting(fake) {
48
48
  /**
49
49
  * Ephemeral SQL index over a local directory.
50
50
  *
51
- * Constructing a `DirSQL` scans `root`, matches files against each
52
- * {@link TableDef}'s `glob`, extracts rows via `extract`, and builds an
53
- * in-memory SQLite database. {@link query} runs on a worker thread and
54
- * returns a Promise; {@link ready} and {@link watch} expose the same
55
- * surface in an async-idiomatic shape so TypeScript consumers don't
56
- * need a separate `AsyncDirSQL` class.
51
+ * The constructor is overloaded: pass a config-file path directly, or an
52
+ * options object with any combination of `root`, `tables`, `ignore`, and
53
+ * `config`.
54
+ *
55
+ * Constructing a `DirSQL` returns immediately; the directory scan, file
56
+ * reads, and initial row extraction run asynchronously. `db.ready`
57
+ * resolves once construction has completed, and every method (including
58
+ * {@link query}, {@link startWatcher}, {@link pollEvents}, and
59
+ * {@link watch}) transparently awaits `ready` before doing any work, so
60
+ * callers can start using the instance immediately:
57
61
  *
58
62
  * ```ts
59
- * const db = new DirSQL(root, tables);
60
- * await db.ready;
63
+ * // From a config file:
64
+ * const db = new DirSQL("./my-config.toml");
65
+ *
66
+ * // Programmatic:
67
+ * const db2 = new DirSQL({ root: "./data", tables: [...] });
68
+ *
69
+ * await db.ready; // optional: wait for the initial scan explicitly
61
70
  * const rows = await db.query("SELECT ...");
62
71
  * for await (const event of db.watch()) { ... }
63
72
  * ```
73
+ *
74
+ * The scan runs on the libuv threadpool, so constructing a `DirSQL` does
75
+ * not block the JS event loop even for large directories.
64
76
  */
65
77
  export class DirSQL {
66
78
  /**
67
- * Resolves once the initial directory scan has completed. Scanning
68
- * runs synchronously inside the constructor, so this Promise is
69
- * already resolved by the time the constructor returns; construction
70
- * failures throw synchronously rather than surfacing here. Exposed
71
- * as a Promise purely so consumers can write async-style code
72
- * uniformly across SDKs.
79
+ * Resolves once the initial directory scan + row extraction have
80
+ * completed, or rejects if construction failed. Every other method on
81
+ * this class implicitly awaits `ready`, so awaiting it explicitly is
82
+ * only necessary when a caller needs to observe construction errors
83
+ * synchronously (without issuing a query first).
73
84
  */
74
85
  ready;
86
+ // Initialized by `ready`. Do NOT touch before awaiting `ready`.
75
87
  _inner;
76
- constructor(root, tables, ignore) {
88
+ constructor(arg) {
89
+ const options = typeof arg === "string" ? { config: arg } : arg;
77
90
  const Ctor = getCore().DirSQL;
78
- this._inner =
79
- ignore === undefined
80
- ? new Ctor(root, tables)
81
- : new Ctor(root, tables, ignore);
82
- this.ready = Promise.resolve();
83
- }
84
- /**
85
- * Load a {@link DirSQL} instance from a `.dirsql.toml` config file.
86
- *
87
- * The root directory is derived from the config file's parent. Tables
88
- * are parsed using the built-in parser for each format declared in the
89
- * config. No JS `extract` callback is required.
90
- */
91
- static fromConfig(configPath) {
92
- const instance = Object.create(DirSQL.prototype);
93
- const writable = instance;
94
- writable._inner = getCore().DirSQL.fromConfig(configPath);
95
- writable.ready = Promise.resolve();
96
- return instance;
91
+ const openPromise = Ctor.openAsync(options.root ?? null, options.tables ?? null, options.ignore ?? null, options.config ?? null);
92
+ this.ready = openPromise.then((inner) => {
93
+ this._inner = inner;
94
+ });
97
95
  }
98
96
  /**
99
97
  * Execute a SQL query and return results as an array of row objects.
100
98
  *
101
- * The query runs on the libuv threadpool, so the JS event loop stays
102
- * responsive even for large result sets or long-running queries.
99
+ * Awaits the initial scan if it has not yet finished, then runs the
100
+ * query on the libuv threadpool, so the JS event loop stays responsive
101
+ * even for large result sets or long-running queries.
103
102
  */
104
- query(sql) {
103
+ async query(sql) {
104
+ await this.ready;
105
105
  return this._inner.query(sql);
106
106
  }
107
107
  /**
108
108
  * Start the file watcher. Must be called before {@link pollEvents}.
109
109
  * Idempotent — safe to call multiple times.
110
110
  *
111
- * Runs on the libuv threadpool, so the JS event loop stays responsive
112
- * while the watcher is being initialized.
111
+ * Awaits the initial scan if it has not yet finished, then runs on the
112
+ * libuv threadpool so the JS event loop stays responsive while the
113
+ * watcher is being initialized.
113
114
  */
114
- startWatcher() {
115
+ async startWatcher() {
116
+ await this.ready;
115
117
  return this._inner.startWatcher();
116
118
  }
117
119
  /**
118
120
  * Poll for file change events, blocking up to `timeoutMs` for the first
119
121
  * event. Returns all events observed in the window (possibly empty).
120
122
  *
121
- * Runs on the libuv threadpool, so the JS event loop stays responsive
122
- * for the duration of the poll timeout.
123
+ * Awaits the initial scan if it has not yet finished, then runs on the
124
+ * libuv threadpool so the JS event loop stays responsive for the
125
+ * duration of the poll timeout.
123
126
  */
124
- pollEvents(timeoutMs) {
127
+ async pollEvents(timeoutMs) {
128
+ await this.ready;
125
129
  return this._inner.pollEvents(timeoutMs);
126
130
  }
127
131
  /**
@@ -131,11 +135,12 @@ export class DirSQL {
131
135
  * for await (const event of db.watch()) { ... }
132
136
  * ```
133
137
  *
134
- * Starts the underlying watcher on first iteration, then awaits a
135
- * bounded native poll each cycle. The iterator runs indefinitely; break
136
- * out of the `for await` loop to stop.
138
+ * Awaits the initial scan on first iteration, starts the underlying
139
+ * watcher, then awaits a bounded native poll each cycle. The iterator
140
+ * runs indefinitely; break out of the `for await` loop to stop.
137
141
  */
138
142
  async *watch() {
143
+ await this.ready;
139
144
  await this._inner.startWatcher();
140
145
  while (true) {
141
146
  // Native `pollEvents` now runs on the libuv threadpool and returns a
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dirsql",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Ephemeral SQL index over a local directory",
5
5
  "license": "MIT",
6
6
  "repository": "https://github.com/thekevinscott/dirsql",