@visorcraft/mongreldb 0.20.1 → 0.22.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.
package/README.md CHANGED
@@ -29,6 +29,13 @@ class Database {
29
29
  createTable(name: string, schema: SchemaSpec): bigint
30
30
  table(name: string): TableHandle
31
31
  begin(): Transaction
32
+ createProcedure(spec: ProcedureSpec): bigint
33
+ createOrReplaceProcedure(spec: ProcedureSpec): bigint
34
+ dropProcedure(name: string): void
35
+ procedures(): ProcedureInfo[]
36
+ procedure(name: string): ProcedureInfo | null
37
+ callProcedure(name: string, opts?: ProcedureCallOptions): ProcedureCallResult
38
+ callProcedureAsync(name: string, opts?: ProcedureCallOptions): Promise<ProcedureCallResult>
32
39
  sql(sql: string): Promise<Buffer>
33
40
  close(): void
34
41
  }
Binary file
package/native.d.ts CHANGED
@@ -64,6 +64,27 @@ export interface SchemaSpec {
64
64
  columns: Array<ColumnSpec>
65
65
  indexes: Array<IndexSpec>
66
66
  }
67
+ export interface ProcedureSpec {
68
+ json: string
69
+ }
70
+ export interface ProcedureInfo {
71
+ json: string
72
+ }
73
+ export interface TriggerSpec {
74
+ json: string
75
+ idempotencyKey?: string
76
+ }
77
+ export interface TriggerInfo {
78
+ json: string
79
+ }
80
+ export interface ProcedureCallOptions {
81
+ argsJson?: string
82
+ idempotencyKey?: string
83
+ }
84
+ export interface ProcedureCallResult {
85
+ epoch?: bigint
86
+ resultJson: string
87
+ }
67
88
  /**
68
89
  * A single cell value. Only the field matching the column type is read; the
69
90
  * rest are ignored. `bytes` is raw; `text` is UTF-8 (use for `Bytes` columns
@@ -198,6 +219,18 @@ export declare class Database {
198
219
  snapshotEpoch(): bigint
199
220
  /** List all live table names. */
200
221
  tableNames(): Array<string>
222
+ createProcedure(spec: ProcedureSpec): bigint
223
+ createOrReplaceProcedure(spec: ProcedureSpec): bigint
224
+ dropProcedure(name: string): void
225
+ procedures(): Array<ProcedureInfo>
226
+ procedure(name: string): ProcedureInfo | null
227
+ createTrigger(spec: TriggerSpec): bigint
228
+ createOrReplaceTrigger(spec: TriggerSpec): bigint
229
+ dropTrigger(name: string): void
230
+ triggers(): Array<TriggerInfo>
231
+ trigger(name: string): TriggerInfo | null
232
+ callProcedure(name: string, opts?: ProcedureCallOptions | undefined | null): ProcedureCallResult
233
+ callProcedureAsync(name: string, opts?: ProcedureCallOptions | undefined | null): Promise<ProcedureCallResult>
201
234
  /**
202
235
  * Return the column names of a table as it exists in the **database**
203
236
  * (not the code-defined schema). Lets migrations check whether a column
@@ -440,4 +473,12 @@ export declare class RemoteDatabase {
440
473
  count(table: string): number
441
474
  sql(sql: string): Buffer
442
475
  commit(table: string): bigint
476
+ createProcedure(spec: ProcedureSpec): string
477
+ dropProcedure(name: string): void
478
+ createTrigger(spec: TriggerSpec): string
479
+ replaceTrigger(name: string, spec: TriggerSpec): string
480
+ dropTrigger(name: string): void
481
+ triggers(): string
482
+ trigger(name: string): string
483
+ callProcedure(name: string, opts?: ProcedureCallOptions | undefined | null): string
443
484
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visorcraft/mongreldb",
3
- "version": "0.20.1",
3
+ "version": "0.22.0",
4
4
  "description": "High-performance Node.js bindings for MongrelDB with native in-process storage, sub-ms writes, and hybrid indexing.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",