From d679eeac2f803286b3dc0cee4afcb01c0f3cc9bd Mon Sep 17 00:00:00 2001 From: Will Binns-Smith Date: Wed, 15 Nov 2017 10:31:23 -0800 Subject: [PATCH] Add libdefs for idb-keyval (#1537) --- .../flow_v0.34.x-/idb-keyval_v2.x.x.js | 22 +++++++++++++++ .../test_idb-keyval-v2.x.x.js | 27 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 definitions/npm/idb-keyval_v2.x.x/flow_v0.34.x-/idb-keyval_v2.x.x.js create mode 100644 definitions/npm/idb-keyval_v2.x.x/test_idb-keyval-v2.x.x.js diff --git a/definitions/npm/idb-keyval_v2.x.x/flow_v0.34.x-/idb-keyval_v2.x.x.js b/definitions/npm/idb-keyval_v2.x.x/flow_v0.34.x-/idb-keyval_v2.x.x.js new file mode 100644 index 0000000000..38d41b86a8 --- /dev/null +++ b/definitions/npm/idb-keyval_v2.x.x/flow_v0.34.x-/idb-keyval_v2.x.x.js @@ -0,0 +1,22 @@ +// Derived from TS typings at https://github.com/jakearchibald/idb-keyval/blob/b49b4e9fbf2f5deb63598f9cf0d9899d2f89dc95/typings.d.ts + +declare module 'idb-keyval' { + declare interface IDBKeyVal { + /** Add a new value or update an existing one */ + set(key: Key, value: Value): Promise, + + /** Get a value by key */ + get(key: Key): Promise, + + /** Get all keys in the database */ + keys(): Promise>, + + /** Delete an entry in the database by key */ + delete(key: Key): Promise, + + /** Delete all entries in the database */ + clear(): Promise, + } + + declare module.exports: IDBKeyVal; +} diff --git a/definitions/npm/idb-keyval_v2.x.x/test_idb-keyval-v2.x.x.js b/definitions/npm/idb-keyval_v2.x.x/test_idb-keyval-v2.x.x.js new file mode 100644 index 0000000000..b85da0d34f --- /dev/null +++ b/definitions/npm/idb-keyval_v2.x.x/test_idb-keyval-v2.x.x.js @@ -0,0 +1,27 @@ +// Derived from the usage docs: +// https://github.com/jakearchibald/idb-keyval/blob/b49b4e9fbf2f5deb63598f9cf0d9899d2f89dc95/README.md + +import idbKeyval from 'idb-keyval'; + +async function test() { + idbKeyval.set('hello', 'world'); + (idbKeyval.set('foo', 'bar'): Promise); + + await idbKeyval.set('baz', 'foo'); + + idbKeyval.set('hello', 'world') + .then(() => console.log('It worked!')) + .catch(err => console.log('It failed!', err)); + + idbKeyval.get('hello').then(val => (val: any)); + + const baz = await idbKeyval.get('baz'); + + // $ExpectError + await idbKeyval.get(); + + idbKeyval.keys().then(keys => keys.map(k => k.toUpperCase())); + + idbKeyval.delete('hello'); + idbKeyval.clear(); +}