From e714e43f06cd24acf7066b41ed0941b2b2a20960 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Santiago=20Aguilar=20Hern=C3=A1ndez?= Date: Mon, 12 Nov 2018 03:36:03 -0500 Subject: [PATCH 1/2] * Renamed property according with docs * Moved types to other file --- types/better-sqlite3/better-sqlite3-tests.ts | 2 + types/better-sqlite3/index.d.ts | 84 +------------------- types/better-sqlite3/tsconfig.json | 1 + types/better-sqlite3/types.d.ts | 80 +++++++++++++++++++ 4 files changed, 86 insertions(+), 81 deletions(-) create mode 100644 types/better-sqlite3/types.d.ts diff --git a/types/better-sqlite3/better-sqlite3-tests.ts b/types/better-sqlite3/better-sqlite3-tests.ts index 34ee6808c3..5d8b95ecf7 100644 --- a/types/better-sqlite3/better-sqlite3-tests.ts +++ b/types/better-sqlite3/better-sqlite3-tests.ts @@ -1,7 +1,9 @@ import Database = require('better-sqlite3'); +import { RunResult } from 'better-sqlite3/types'; const integer = Database.Integer(1); const err = new Database.SqliteError('ok', 'ok'); +const result: RunResult = { changes: 1, lastInsertRowid: 1 }; let db = Database('.'); db = new Database('.', {memory: true}); diff --git a/types/better-sqlite3/index.d.ts b/types/better-sqlite3/index.d.ts index 899a85a2e2..d120209765 100644 --- a/types/better-sqlite3/index.d.ts +++ b/types/better-sqlite3/index.d.ts @@ -1,89 +1,11 @@ -// Type definitions for better-sqlite3 3.1 +// Type definitions for better-sqlite3 5.0 // Project: http://github.com/JoshuaWise/better-sqlite3 // Definitions by: Ben Davies // Mathew Rumsey +// Santiago Aguilar // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -import Integer = require('integer'); - -interface RunResult { - changes: number; - lastInsertROWID: Integer.IntLike; -} - -declare class Statement { - database: Database; - source: string; - returnsData: boolean; - constructor(db: Database, sources: string[]); - - run(...params: any[]): RunResult; - get(...params: any[]): any; - all(...params: any[]): any[]; - each(params: any, cb: (row: any) => void): void; - each(cb: (row: any) => void): void; - each(...params: any[]): void; - pluck(toggleState?: boolean): this; - bind(...params: any[]): this; - safeIntegers(toggleState?: boolean): this; -} - -declare class Transaction { - database: Database; - source: string; - constructor(db: Database, sources: string[]); - - run(...params: any[]): RunResult; - bind(...params: any[]): this; - safeIntegers(toggleState?: boolean): this; -} - -interface DatabaseOptions { - memory?: boolean; - readonly?: boolean; - fileMustExist?: boolean; -} - -interface RegistrationOptions { - name?: string; - varargs?: boolean; - deterministic?: boolean; - safeIntegers?: boolean; -} - -interface Database { - memory: boolean; - readonly: boolean; - name: string; - open: boolean; - inTransaction: boolean; - - prepare(source: string): Statement; - transaction(sources: string[]): Transaction; - exec(source: string): this; - pragma(source: string, simplify?: boolean): any; - checkpoint(databaseName?: string): this; - register(cb: (...params: any[]) => any): this; - register(options: RegistrationOptions, cb: (...params: any[]) => any): this; - close(): this; - defaultSafeIntegers(toggleState?: boolean): this; -} - -declare class SqliteError implements Error { - name: string; - message: string; - code: string; - constructor(message: string, code: string); -} - -interface DatabaseConstructor { - new(filename: string, options?: DatabaseOptions): Database; - (filename: string, options?: DatabaseOptions): Database; - prototype: Database; - - Integer: typeof Integer; - SqliteError: typeof SqliteError; -} +import { DatabaseConstructor } from "./types"; declare const Database: DatabaseConstructor; export = Database; diff --git a/types/better-sqlite3/tsconfig.json b/types/better-sqlite3/tsconfig.json index 30a480355b..891afa0aad 100644 --- a/types/better-sqlite3/tsconfig.json +++ b/types/better-sqlite3/tsconfig.json @@ -18,6 +18,7 @@ }, "files": [ "index.d.ts", + "types.d.ts", "better-sqlite3-tests.ts" ] } \ No newline at end of file diff --git a/types/better-sqlite3/types.d.ts b/types/better-sqlite3/types.d.ts new file mode 100644 index 0000000000..61f376b0bf --- /dev/null +++ b/types/better-sqlite3/types.d.ts @@ -0,0 +1,80 @@ +import Integer = require("integer"); + +export interface RunResult { + changes: number; + lastInsertRowid: Integer.IntLike; +} + +export class Statement { + database: Database; + source: string; + returnsData: boolean; + constructor(db: Database, sources: string[]); + + run(...params: any[]): RunResult; + get(...params: any[]): any; + all(...params: any[]): any[]; + each(params: any, cb: (row: any) => void): void; + each(cb: (row: any) => void): void; + each(...params: any[]): void; + pluck(toggleState?: boolean): this; + bind(...params: any[]): this; + safeIntegers(toggleState?: boolean): this; +} + +export class Transaction { + database: Database; + source: string; + constructor(db: Database, sources: string[]); + + run(...params: any[]): RunResult; + bind(...params: any[]): this; + safeIntegers(toggleState?: boolean): this; +} + +export interface DatabaseOptions { + memory?: boolean; + readonly?: boolean; + fileMustExist?: boolean; +} + +export interface RegistrationOptions { + name?: string; + varargs?: boolean; + deterministic?: boolean; + safeIntegers?: boolean; +} + +export interface Database { + memory: boolean; + readonly: boolean; + name: string; + open: boolean; + inTransaction: boolean; + + prepare(source: string): Statement; + transaction(sources: string[]): Transaction; + exec(source: string): this; + pragma(source: string, simplify?: boolean): any; + checkpoint(databaseName?: string): this; + register(cb: (...params: any[]) => any): this; + register(options: RegistrationOptions, cb: (...params: any[]) => any): this; + close(): this; + defaultSafeIntegers(toggleState?: boolean): this; +} + +export class SqliteError implements Error { + name: string; + message: string; + code: string; + constructor(message: string, code: string); +} + +export interface DatabaseConstructor { + new (filename: string, options?: DatabaseOptions): Database; + (filename: string, options?: DatabaseOptions): Database; + prototype: Database; + + Integer: typeof Integer; + SqliteError: typeof SqliteError; +} From aa086a84c1eb3b2499f77d0d075f91a672f11573 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Santiago=20Aguilar=20Hern=C3=A1ndez?= Date: Mon, 26 Nov 2018 19:16:28 -0500 Subject: [PATCH 2/2] * Applied better practices --- types/better-sqlite3/better-sqlite3-tests.ts | 22 +++-- types/better-sqlite3/index.d.ts | 86 +++++++++++++++++++- types/better-sqlite3/tsconfig.json | 1 - types/better-sqlite3/types.d.ts | 80 ------------------ 4 files changed, 99 insertions(+), 90 deletions(-) delete mode 100644 types/better-sqlite3/types.d.ts diff --git a/types/better-sqlite3/better-sqlite3-tests.ts b/types/better-sqlite3/better-sqlite3-tests.ts index 5d8b95ecf7..7272d88f7e 100644 --- a/types/better-sqlite3/better-sqlite3-tests.ts +++ b/types/better-sqlite3/better-sqlite3-tests.ts @@ -1,27 +1,33 @@ import Database = require('better-sqlite3'); -import { RunResult } from 'better-sqlite3/types'; const integer = Database.Integer(1); const err = new Database.SqliteError('ok', 'ok'); -const result: RunResult = { changes: 1, lastInsertRowid: 1 }; +const result: Database.RunResult = { changes: 1, lastInsertRowid: 1 }; +const options: Database.Options = { fileMustExist: true, memory: true, readonly: true }; +const registrationOptions: Database.RegistrationOptions = { + deterministic: true, + name: '', + safeIntegers: true, + varargs: true +}; let db = Database('.'); -db = new Database('.', {memory: true}); +db = new Database('.', { memory: true }); db.exec('CREATE TABLE test (id INTEGER PRIMARY KEY NOT NULL, name TEXT NOT NULL);'); db.exec('INSERT INTO test(name) VALUES("name");'); db.pragma('data_version', true); db.checkpoint(); db.checkpoint('main'); -db.register(() => {}); -db.register({name: 'noop', deterministic: true, varargs: true}, () => {}); +db.register(() => { }); +db.register({ name: 'noop', deterministic: true, varargs: true }, () => { }); db.defaultSafeIntegers(); db.defaultSafeIntegers(true); const stmt = db.prepare('SELECT * FROM test WHERE name == ?;'); stmt.get(['name']); -stmt.all({name: 'name'}); -stmt.each('name', (row: {name: string}) => {}); -stmt.each((row: {name: string}) => {}); +stmt.all({ name: 'name' }); +stmt.each('name', (row: { name: string }) => { }); +stmt.each((row: { name: string }) => { }); stmt.pluck(); stmt.pluck(true); stmt.bind('name'); diff --git a/types/better-sqlite3/index.d.ts b/types/better-sqlite3/index.d.ts index d120209765..5a4859e21f 100644 --- a/types/better-sqlite3/index.d.ts +++ b/types/better-sqlite3/index.d.ts @@ -5,7 +5,91 @@ // Santiago Aguilar // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -import { DatabaseConstructor } from "./types"; +import Integer = require("integer"); + +declare class Statement { + database: Database; + source: string; + returnsData: boolean; + constructor(db: Database, sources: string[]); + + run(...params: any[]): Database.RunResult; + get(...params: any[]): any; + all(...params: any[]): any[]; + each(params: any, cb: (row: any) => void): void; + each(cb: (row: any) => void): void; + each(...params: any[]): void; + pluck(toggleState?: boolean): this; + bind(...params: any[]): this; + safeIntegers(toggleState?: boolean): this; +} + +declare class Transaction { + database: Database; + source: string; + constructor(db: Database, sources: string[]); + + run(...params: any[]): Database.RunResult; + bind(...params: any[]): this; + safeIntegers(toggleState?: boolean): this; +} + +interface Database { + memory: boolean; + readonly: boolean; + name: string; + open: boolean; + inTransaction: boolean; + + prepare(source: string): Statement; + transaction(sources: string[]): Transaction; + exec(source: string): this; + pragma(source: string, simplify?: boolean): any; + checkpoint(databaseName?: string): this; + register(cb: (...params: any[]) => any): this; + register( + options: Database.RegistrationOptions, + cb: (...params: any[]) => any + ): this; + close(): this; + defaultSafeIntegers(toggleState?: boolean): this; +} + +declare class SqliteError implements Error { + name: string; + message: string; + code: string; + constructor(message: string, code: string); +} + +interface DatabaseConstructor { + new (filename: string, options?: Database.Options): Database; + (filename: string, options?: Database.Options): Database; + prototype: Database; + + Integer: typeof Integer; + SqliteError: typeof SqliteError; +} + +declare namespace Database { + interface RunResult { + changes: number; + lastInsertRowid: Integer.IntLike; + } + + interface Options { + memory?: boolean; + readonly?: boolean; + fileMustExist?: boolean; + } + + interface RegistrationOptions { + name?: string; + varargs?: boolean; + deterministic?: boolean; + safeIntegers?: boolean; + } +} declare const Database: DatabaseConstructor; export = Database; diff --git a/types/better-sqlite3/tsconfig.json b/types/better-sqlite3/tsconfig.json index 891afa0aad..30a480355b 100644 --- a/types/better-sqlite3/tsconfig.json +++ b/types/better-sqlite3/tsconfig.json @@ -18,7 +18,6 @@ }, "files": [ "index.d.ts", - "types.d.ts", "better-sqlite3-tests.ts" ] } \ No newline at end of file diff --git a/types/better-sqlite3/types.d.ts b/types/better-sqlite3/types.d.ts deleted file mode 100644 index 61f376b0bf..0000000000 --- a/types/better-sqlite3/types.d.ts +++ /dev/null @@ -1,80 +0,0 @@ -import Integer = require("integer"); - -export interface RunResult { - changes: number; - lastInsertRowid: Integer.IntLike; -} - -export class Statement { - database: Database; - source: string; - returnsData: boolean; - constructor(db: Database, sources: string[]); - - run(...params: any[]): RunResult; - get(...params: any[]): any; - all(...params: any[]): any[]; - each(params: any, cb: (row: any) => void): void; - each(cb: (row: any) => void): void; - each(...params: any[]): void; - pluck(toggleState?: boolean): this; - bind(...params: any[]): this; - safeIntegers(toggleState?: boolean): this; -} - -export class Transaction { - database: Database; - source: string; - constructor(db: Database, sources: string[]); - - run(...params: any[]): RunResult; - bind(...params: any[]): this; - safeIntegers(toggleState?: boolean): this; -} - -export interface DatabaseOptions { - memory?: boolean; - readonly?: boolean; - fileMustExist?: boolean; -} - -export interface RegistrationOptions { - name?: string; - varargs?: boolean; - deterministic?: boolean; - safeIntegers?: boolean; -} - -export interface Database { - memory: boolean; - readonly: boolean; - name: string; - open: boolean; - inTransaction: boolean; - - prepare(source: string): Statement; - transaction(sources: string[]): Transaction; - exec(source: string): this; - pragma(source: string, simplify?: boolean): any; - checkpoint(databaseName?: string): this; - register(cb: (...params: any[]) => any): this; - register(options: RegistrationOptions, cb: (...params: any[]) => any): this; - close(): this; - defaultSafeIntegers(toggleState?: boolean): this; -} - -export class SqliteError implements Error { - name: string; - message: string; - code: string; - constructor(message: string, code: string); -} - -export interface DatabaseConstructor { - new (filename: string, options?: DatabaseOptions): Database; - (filename: string, options?: DatabaseOptions): Database; - prototype: Database; - - Integer: typeof Integer; - SqliteError: typeof SqliteError; -}