diff --git a/node-persist/node-persist-tests.ts b/node-persist/node-persist-tests.ts new file mode 100644 index 0000000000..a4e2af1ed9 --- /dev/null +++ b/node-persist/node-persist-tests.ts @@ -0,0 +1,47 @@ +/// +// node-persist tests +// compile with --module=common + +import nodePersist = require("node-persist"); + +var opts = Node +nodePersist.init({ + dir: __dirname + "/test", + continuous: false +}); +nodePersist.setItem("someArray", [1,2,3], (err)=> { + nodePersist.getItem("someArray", (err: any, value: any)=> { + nodePersist.removeItem("someArray", (err) => err); + }); +}); +nodePersist.setItem("someString", "foo") + .then(() => nodePersist.getItem("someString")) + .then(() => nodePersist.removeItem("someString")) + .then(() => nodePersist.clear()) + .then(() => null); + +interface TestObject { + foo: string; + two: number; +} +nodePersist.clear((err) => { + var testObject: TestObject = {foo: "bar", two: 2}; + nodePersist.setItemSync("someObject", testObject); + testObject = nodePersist.getItemSync("someObject"); + nodePersist.removeItem("someObject"); + nodePersist.clearSync(); +}); + +var values: Array = nodePersist.values(); +var valuesWithKeyMatch: Array = nodePersist.valuesWithKeyMatch("some"); +var keys: Array = nodePersist.keys(); +var size: number = nodePersist.length(); +nodePersist.forEach((val) => {}); +try { + nodePersist.persist((err) => err); + nodePersist.persist().then(() => null); + nodePersist.persistSync; + nodePersist.persistKey("this", (err) => null); + nodePersist.persistKey("this").then(() => null); + nodePersist.persistKeySync("this"); +} catch(anyError){} diff --git a/node-persist/node-persist.d.ts b/node-persist/node-persist.d.ts new file mode 100644 index 0000000000..23c86bd5cb --- /dev/null +++ b/node-persist/node-persist.d.ts @@ -0,0 +1,44 @@ +// Type definitions for node-persist +// Project: https://github.com/simonlast/node-persist +// Definitions by: Spencer Williams +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// +/// + +declare module "node-persist" { + type milliseconds = number; + module NodePersist { + export interface InitOptions { + dir?: string; + stringify?: (toSerialize: any)=>string; + parse?: (serialized: string)=>any; + encoding?: string; + logging?: boolean|Function; + continuous?: boolean; + interval?: milliseconds|boolean; + ttl?: milliseconds|boolean; + } + export function init(options?: InitOptions, callback?: Function): Q.Promise; + export function initSync(options?: InitOptions): void; + export function getItem(key: string, callback?: (err: any, value: any)=>any): Q.Promise; + export function getItemSync(key: string): any; + export function setItem(key: string, value: any, callback?: (err: any)=>any): Q.Promise; + export function setItemSync(key: string, value: any): void; + export function removeItem(key: string, callback?: (err: any)=>any): Q.Promise; + export function removeItemSync(key: string): void; + export function clear(callback?: (err: any)=>any): Q.Promise; + export function clearSync(): void; + export function values(): Array; + export function valuesWithKeyMatch(match: string): Array; + export function keys(): Array; + export function length(): number; + export function forEach(callback: (key: string, value: any)=>void): void; + + export function persist(callback?: (err: any)=>any): Q.Promise; + export function persistSync(): void; + export function persistKey(key: string, callback?: (err: any)=>any): Q.Promise; + export function persistKeySync(key: string): void; + } + export = NodePersist; +}