From 8d4c567c55153774a604a331fbd583ad7585e591 Mon Sep 17 00:00:00 2001 From: Jonas Eriksson Date: Thu, 22 Aug 2013 12:47:47 +0200 Subject: [PATCH] Some adjustments + added tests --- amplifyjs/amplifyjs-tests.ts | 68 ++++++++++++++++++++++++++++++++++++ amplifyjs/amplifyjs.d.ts | 29 ++++++++++----- 2 files changed, 89 insertions(+), 8 deletions(-) create mode 100644 amplifyjs/amplifyjs-tests.ts diff --git a/amplifyjs/amplifyjs-tests.ts b/amplifyjs/amplifyjs-tests.ts new file mode 100644 index 0000000000..55a37836f6 --- /dev/null +++ b/amplifyjs/amplifyjs-tests.ts @@ -0,0 +1,68 @@ +// Subscribe and publish with no data + +amplify.subscribe("nodataexample", function () { + alert("nodataexample topic published!"); +}); + +// Subscribe and publish with data + +amplify.publish("nodataexample"); + +amplify.subscribe("dataexample", function (data) { + alert(data.foo); // bar +}); + + +amplify.publish("dataexample", { foo: "bar" }); + +amplify.subscribe("dataexample2", function (param1, param2) { + alert(param1 + param2); // barbaz +}); + +//... + +amplify.publish("dataexample2", "bar", "baz"); + +// Subscribe and publish with context and data + +amplify.subscribe("datacontextexample", $("p:first"), function (data) { + this.text(data.exampleText); // first p element would have "foo bar baz" as text +}); + +amplify.publish("datacontextexample", { exampleText: "foo bar baz" }); + +// Subscribe to a topic with high priority + +amplify.subscribe("priorityexample", function (data) { + alert(data.foo); +}); + +amplify.subscribe("priorityexample", function (data) { + if (data.foo === "oops") { + return false; + } +}, 1); + + +// Store data with amplify storage picking the default storage technology: + +amplify.publish("priorityexample", { foo: "bar" }); +amplify.publish("priorityexample", { foo: "oops" }); + +amplify.store("storeExample1", { foo: "bar" }); +amplify.store("storeExample2", "baz"); +// retrieve the data later via the key +var myStoredValue = amplify.store("storeExample1"), + myStoredValue2 = amplify.store("storeExample2"), + myStoredValues = amplify.store(); +myStoredValue.foo; // bar +myStoredValue2; // baz +myStoredValues.storeExample1.foo; // bar +myStoredValues.storeExample2; // baz + +// Store data explicitly with session storage + +amplify.store.sessionStorage("explicitExample", { foo2: "baz" }); +// retrieve the data later via the key +var myStoredValue2 = amplify.store.sessionStorage("explicitExample"); +myStoredValue2.foo2; // baz diff --git a/amplifyjs/amplifyjs.d.ts b/amplifyjs/amplifyjs.d.ts index db7ae49ec6..44ead1bcf4 100644 --- a/amplifyjs/amplifyjs.d.ts +++ b/amplifyjs/amplifyjs.d.ts @@ -5,7 +5,7 @@ interface amplifyRequestSettings { resourceId: string; - data?: Object; + data?: any; success?: Function; error?: Function; } @@ -18,7 +18,7 @@ interface amplifyRequest { * data: A set of key/value pairs of data to be sent to the resource. * callback: A function to invoke if the resource is retrieved successfully. */ - (resourceId: string, hash?: Object, callback?: Function): void; + (resourceId: string, hash?: any, callback?: Function): void; /*** * Request a resource. @@ -39,7 +39,7 @@ interface amplifyRequest { * cache: See the cache section for more details. * decoder: See the decoder section for more details. */ - define(resourceId: string, requestType: string, settings?: Object): void; + define(resourceId: string, requestType: string, settings?: any): void; /*** * Define a custom request. @@ -58,11 +58,24 @@ interface amplifySubscribe { /*** * Subscribe to a message. * topic: Name of the message to subscribe to. - * [context]: What this will be when the callback is invoked. + * callback: Function to invoke when the message is published. + */ + (topic: string, callback: Function): void; + /*** + * Subscribe to a message. + * topic: Name of the message to subscribe to. + * context: What this will be when the callback is invoked. * callback: Function to invoke when the message is published. * [priority]: Priority relative to other subscriptions for the same message. Lower values have higher priority. Default is 10. */ - (topic: string, context?: Object, callback?: Function, priority?: number): void; + (topic: string, context: any, callback: Function, priority?: number): void; + /*** + * Subscribe to a message. + * topic: Name of the message to subscribe to. + * callback: Function to invoke when the message is published. + * [priority]: Priority relative to other subscriptions for the same message. Lower values have higher priority. Default is 10. + */ + (topic: string, callback: Function, priority?: number): void; } interface amplifyStorageTypeStore { /*** @@ -72,17 +85,17 @@ interface amplifyStorageTypeStore { * value: The value to store. The value can be anything that can be serialized as JSON. * [options]: A set of key/value pairs that relate to settings for storing the value. */ - (key: string, value: Object, options?: Object): void; + (key: string, value: any, options?: any): void; /*** * Gets a stored value based on the key. */ - (key: string): Object; + (key: string): any; /*** * Gets a hash of all stored values. */ - (): Object; + (): any; } interface amplifyStore extends amplifyStorageTypeStore{