diff --git a/cozo-lib-nodejs/index.d.ts b/cozo-lib-nodejs/index.d.ts new file mode 100644 index 00000000..a0c305dd --- /dev/null +++ b/cozo-lib-nodejs/index.d.ts @@ -0,0 +1,73 @@ +declare module "cozo-node" { + export class CozoDb { + /** + * Constructor + * + * @param engine: defaults to 'mem', the in-memory non-persistent engine. + * 'sqlite', 'rocksdb' and maybe others are available, + * depending on compile time flags. + * @param path: path to store the data on disk, defaults to 'data.db', + * may not be applicable for some engines such as 'mem' + * @param options: defaults to {}, ignored by all the engines in the published NodeJS artefact + */ + constructor(engine?: string, path?: string, options?: object); + + /** + * You must call this method for any database you no longer want to use: + * otherwise the native resources associated with it may linger for as + * long as your program runs. Simply `delete` the variable is not enough. + */ + close(): void; + + /** + * Runs a query + * + * @param script: the query + * @param params: the parameters as key-value pairs, defaults to {} + */ + run(script: string, params?: Record): Promise; + + /** + * Export several relations + * + * @param relations: names of relations to export, in an array. + */ + exportRelations(relations: Array): Promise; + + /** + * Import several relations. + * + * Note that triggers are _not_ run for the relations, if any exists. + * If you need to activate triggers, use queries with parameters. + * + * @param data: in the same form as returned by `exportRelations`. The relations + * must already exist in the database. + */ + importRelations(data: object): Promise; + + /** + * Backup database + * + * @param path: path to file to store the backup. + */ + backup(path: string): Promise; + + /** + * Restore from a backup. Will fail if the current database already contains data. + * + * @param path: path to the backup file. + */ + restore(path: string): Promise; + + /** + * Import several relations from a backup. The relations must already exist in the database. + * + * Note that triggers are _not_ run for the relations, if any exists. + * If you need to activate triggers, use queries with parameters. + * + * @param path: path to the backup file. + * @param rels: the relations to import. + */ + importRelationsFromBackup(path: string, rels: Array): Promise; + } +}