From ec3fd22445c7d10ee983baf056ca2215511a4ea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81xel=20Costas=20Pena?= Date: Wed, 16 Sep 2015 17:05:54 +0200 Subject: [PATCH 1/3] Add simpleStorage type definitions. Add simpleStorage to CONTRIBUTORS.md. *NOTE file naming includes uppercase characters disregarding the Contribution guide Quality Criteria because of another different package named simplestorage already existing on npm.* --- CONTRIBUTORS.md | 1 + simpleStorage/simpleStorage.d.ts | 110 +++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 simpleStorage/simpleStorage.d.ts diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index d4a3000cb..0b6c2f714 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -1024,6 +1024,7 @@ This document generated by [dt-contributors-generator](https://github.com/vvakam * [:link:](signature_pad/signature_pad.d.ts) [signature_pad](https://github.com/szimek/signature_pad) by [Abubaker Bashir](https://github.com/AbubakerB) * [:link:](simple-cw-node/simple-cw-node.d.ts) [simple-cw-node](https://github.com/astronaughts/simple-cw-node) by [vvakame](https://github.com/vvakame) * [:link:](jquery.simplemodal/jquery.simplemodal.d.ts) [SimpleModal](http://www.ericmmartin.com/projects/simplemodal) by [Friedrich von Never](https://github.com/ForNeVeR) +* [:link:](simpleStorage/simpleStorage.d.ts) [simpleStorage](https://github.com/andris9/simpleStorage) by [Áxel Costas Pena](https://github.com/axelcostaspena) * [:link:](sinon/sinon.d.ts) [Sinon](http://sinonjs.org) by [William Sears](https://github.com/mrbigdog2u) * [:link:](sinon-chai/sinon-chai.d.ts) [sinon-chai](https://github.com/domenic/sinon-chai) by [Kazi Manzur Rashid](https://github.com/kazimanzurrashid), [Jed Mao](https://github.com/jedmao) * [:link:](sinon-chrome/sinon-chrome.d.ts) [Sinon-Chrome](https://github.com/vitalets/sinon-chrome) by [Tim Perry](https://github.com/pimterry) diff --git a/simpleStorage/simpleStorage.d.ts b/simpleStorage/simpleStorage.d.ts new file mode 100644 index 000000000..52c4f27ee --- /dev/null +++ b/simpleStorage/simpleStorage.d.ts @@ -0,0 +1,110 @@ +// Type definitions for simpleStorage v0.1.3 +// Project: https://github.com/andris9/simpleStorage +// Definitions by: Áxel Costas Pena +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module andris9_simpleStorage { + + /** + * {@link simpleStorage} API is a subset of {@link http://www.jstorage.info/|jStorage} with slight modifications, so for most cases it should work out of the box if you are converting from {@link http://www.jstorage.info/|jStorage}. Main difference is between return values - if an action failed because of an error (storage full, storage not available, invalid data used etc.), you get the error object as the return value. {@link http://www.jstorage.info/|jStorage} never indicated anything if an error occurred. + * @see https://github.com/andris9/simpleStorage#usage + */ + export interface SimpleStorage { + + version: string; + + /** + * Check if local storage can be used. + * Returns true if storage is available. + * @see https://github.com/andris9/simpleStorage#canuse + */ + canUse(): boolean; + + /** + * Store or update a value in local storage. + * Returns true if value was stored, false if value was not stored or {@link Error} object if value was not stored because of an error. + * @param key The key for the value. + * @param value Value to be stored (can be any JSONeable value). + * @param [options] Optional options object. + * @see https://github.com/andris9/simpleStorage#setkey-value-options + */ + set(key: string, value: any, options?: SetOptions): boolean|Error; + + /** + * Retrieve a value from local storage. + * Returns the value for a key or undefined if the key was not found. + * @param key The key to be retrieved. + * @see https://github.com/andris9/simpleStorage#getkey + */ + get(key: string): any; + + /** + * Removes a value from local storage. + * Returns true if the value was deleted, false if the value was not found or {@link Error} object if value was not deleted because of an error. + * @param key The key to be deleted. + * @see https://github.com/andris9/simpleStorage#deletekeykey + */ + deleteKey(key: string): boolean|Error; + + /** + * Set a millisecond timeout. When the timeout is reached, the key is removed automatically from local storage. + * Returns true if ttl was set, false if value was not found or {@link Error} object if ttl was not set because of an error. + * @param key The key to be updated. + * @param ttl Timeout in milliseconds. If the value is 0, timeout is cleared from the key. + * @see https://github.com/andris9/simpleStorage#setttlkey-ttl + */ + setTTL(key: string, ttl: number): boolean|Error; + + /** + * Retrieve remaining milliseconds for a key with TTL. + * Returns the finite number of remaining milliseconds, Infinity if TTL is not set for the selected key or false if the selected key does not exist or is expired. + * @param key The key to be checked. + * @see https://github.com/andris9/simpleStorage#getttlkey + */ + getTTL(key: string): number|boolean; + + /** + * Clear all values. + * Returns true if storage was flushed or {@link Error} object if storage was not flushed because of an error. + * @see https://github.com/andris9/simpleStorage#flush + */ + flush(): boolean|Error; + + /** + * Retrieve all used keys as an array. + * Returns an array of keys. + * @see https://github.com/andris9/simpleStorage#index + */ + index(): [string]|boolean; + + /** + * Get used storage in symbol count. + * @see https://github.com/andris9/simpleStorage#storagesize + */ + storageSize(): number; + } + + /** + * @see https://github.com/andris9/simpleStorage#setkey-value-options + */ + export interface SetOptions { + /** + * Sets the time-to-live (TTL) value in milliseconds for the given key/value. + */ + TTL?: number; + } + +} + +declare module "simpleStorage" { + export = simpleStorage; +} + +/** + * Cross-browser key-value store database to store data locally in the browser. + * {@link simpleStorage} is a fork of {@link http://www.jstorage.info/|jStorage} that only includes the minimal set of features. Basically it is a wrapper for native {@link JSON} + {@link WindowLocalStorage.localStorage|localStorage} with some TTL magic mixed in. + * The module has no dependencies, you can use it as a standalone script (introduces {@link simpleStorage} global) or as an AMD module. All modern browsers (including mobile) are supported, older browsers (IE7, Firefox 3) are not. + * {@link simpleStorage} is very small - about 1kB in size when minimized and gzipped. + * @see https://github.com/andris9/simpleStorage#simplestorage + */ +declare var simpleStorage:andris9_simpleStorage.SimpleStorage; From 2775004106418bd2eb92d8825aa02a893949d63f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81xel=20Costas=20Pena?= Date: Wed, 16 Sep 2015 17:06:25 +0200 Subject: [PATCH 2/3] Add simpleStorage tests. --- simpleStorage/simpleStorage-tests.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 simpleStorage/simpleStorage-tests.ts diff --git a/simpleStorage/simpleStorage-tests.ts b/simpleStorage/simpleStorage-tests.ts new file mode 100644 index 000000000..9ffcd1853 --- /dev/null +++ b/simpleStorage/simpleStorage-tests.ts @@ -0,0 +1,17 @@ +/// + +var versionTest: string = simpleStorage.version; +var canUseTest: boolean = simpleStorage.canUse(); +var simpleStorageTest1: boolean|Error = simpleStorage.set("string", 7); +var simpleStorageTest2: boolean|Error = simpleStorage.set("string", 7, {}); +var simpleStorageTest3: boolean|Error = simpleStorage.set("string", 7, { TTL: 7 }); +var simpleStorageTest4: boolean|Error = simpleStorage.set("string", undefined); +var simpleStorageTest5: boolean|Error = simpleStorage.set("string", undefined, {}); +var simpleStorageTest6: boolean|Error = simpleStorage.set("string", undefined, { TTL: 7 }); +var getTest: any = simpleStorage.get("string"); +var deleteKeyTest: boolean|Error = simpleStorage.deleteKey("string"); +var setTTLTest: boolean|Error = simpleStorage.setTTL("string", 7); +var getTTLTest: number|boolean = simpleStorage.getTTL("string"); +var flushTest: boolean|Error = simpleStorage.flush(); +var indexTest: [string]|boolean = simpleStorage.index(); +var storageSizeTest: number = simpleStorage.storageSize(); From d65b498c5ee7109c158584f1f2aef1f497be1f0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81xel?= Date: Mon, 19 Oct 2015 22:09:02 +0200 Subject: [PATCH 3/3] Rename simpleStorage files in order to match naming convention. Rename namespace including author name to a more convenient one. --- CONTRIBUTORS.md | 2 +- .../simplestorage.js-tests.ts | 2 +- .../simplestorage.js.d.ts | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) rename simpleStorage/simpleStorage-tests.ts => simplestorage.js/simplestorage.js-tests.ts (96%) rename simpleStorage/simpleStorage.d.ts => simplestorage.js/simplestorage.js.d.ts (98%) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 0b6c2f714..7ac38ce8a 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -1024,7 +1024,7 @@ This document generated by [dt-contributors-generator](https://github.com/vvakam * [:link:](signature_pad/signature_pad.d.ts) [signature_pad](https://github.com/szimek/signature_pad) by [Abubaker Bashir](https://github.com/AbubakerB) * [:link:](simple-cw-node/simple-cw-node.d.ts) [simple-cw-node](https://github.com/astronaughts/simple-cw-node) by [vvakame](https://github.com/vvakame) * [:link:](jquery.simplemodal/jquery.simplemodal.d.ts) [SimpleModal](http://www.ericmmartin.com/projects/simplemodal) by [Friedrich von Never](https://github.com/ForNeVeR) -* [:link:](simpleStorage/simpleStorage.d.ts) [simpleStorage](https://github.com/andris9/simpleStorage) by [Áxel Costas Pena](https://github.com/axelcostaspena) +* [:link:](simpleStorage/simplestorage.js.d.ts) [simpleStorage](https://github.com/andris9/simpleStorage) by [Áxel Costas Pena](https://github.com/axelcostaspena) * [:link:](sinon/sinon.d.ts) [Sinon](http://sinonjs.org) by [William Sears](https://github.com/mrbigdog2u) * [:link:](sinon-chai/sinon-chai.d.ts) [sinon-chai](https://github.com/domenic/sinon-chai) by [Kazi Manzur Rashid](https://github.com/kazimanzurrashid), [Jed Mao](https://github.com/jedmao) * [:link:](sinon-chrome/sinon-chrome.d.ts) [Sinon-Chrome](https://github.com/vitalets/sinon-chrome) by [Tim Perry](https://github.com/pimterry) diff --git a/simpleStorage/simpleStorage-tests.ts b/simplestorage.js/simplestorage.js-tests.ts similarity index 96% rename from simpleStorage/simpleStorage-tests.ts rename to simplestorage.js/simplestorage.js-tests.ts index 9ffcd1853..1e9f4202a 100644 --- a/simpleStorage/simpleStorage-tests.ts +++ b/simplestorage.js/simplestorage.js-tests.ts @@ -1,4 +1,4 @@ -/// +/// var versionTest: string = simpleStorage.version; var canUseTest: boolean = simpleStorage.canUse(); diff --git a/simpleStorage/simpleStorage.d.ts b/simplestorage.js/simplestorage.js.d.ts similarity index 98% rename from simpleStorage/simpleStorage.d.ts rename to simplestorage.js/simplestorage.js.d.ts index 52c4f27ee..bda285aac 100644 --- a/simpleStorage/simpleStorage.d.ts +++ b/simplestorage.js/simplestorage.js.d.ts @@ -3,7 +3,7 @@ // Definitions by: Áxel Costas Pena // Definitions: https://github.com/borisyankov/DefinitelyTyped -declare module andris9_simpleStorage { +declare module simplestoragejs { /** * {@link simpleStorage} API is a subset of {@link http://www.jstorage.info/|jStorage} with slight modifications, so for most cases it should work out of the box if you are converting from {@link http://www.jstorage.info/|jStorage}. Main difference is between return values - if an action failed because of an error (storage full, storage not available, invalid data used etc.), you get the error object as the return value. {@link http://www.jstorage.info/|jStorage} never indicated anything if an error occurred. @@ -107,4 +107,4 @@ declare module "simpleStorage" { * {@link simpleStorage} is very small - about 1kB in size when minimized and gzipped. * @see https://github.com/andris9/simpleStorage#simplestorage */ -declare var simpleStorage:andris9_simpleStorage.SimpleStorage; +declare var simpleStorage:simplestoragejs.SimpleStorage;