diff --git a/ngkookies/ngkookies-tests.ts b/ngkookies/ngkookies-tests.ts new file mode 100644 index 000000000..a8c0366fe --- /dev/null +++ b/ngkookies/ngkookies-tests.ts @@ -0,0 +1,44 @@ +/// + +var app: any; + +app.controller('MainCtrl', function ($kookies: angular.kookies.IKookiesService) { + // 1. create session cookie + $kookies.set('name', 'value'); + + // 2. create expiring cookie + $kookies.set('name', 'value', {expires: 7}); + + // 3. Create expiring cookie, valid across entire site + $kookies.set('name', 'value', {expires: 7, path: '/'}); + + $kookies.set('name', 'value'); + + // read cookie + $kookies.get('name'); // "value" + $kookies.get('nothing'); // undefined + + // read all available cookies + $kookies.get(); + + $kookies.set('name', 'value'); + + // delete cookie + $kookies.remove('name'); // true + $kookies.remove('nothing'); // false + + $kookies.set('name', 'value', {path: '/'}); + + $kookies.remove('name'); // false + // use the same options (path, domain) as what the cookie was written with + $kookies.remove('name', {path: '/'}); // true + + var foo: number = $kookies.get('foo', Number); +}); + +app.config(['$kookiesProvider', + function ($kookiesProvider: angular.kookies.IKookiesProvider) { + $kookiesProvider.config.raw = true; + $kookiesProvider.config.json = true; + } +]); \ No newline at end of file diff --git a/ngkookies/ngkookies.ts b/ngkookies/ngkookies.ts new file mode 100644 index 000000000..92075d25d --- /dev/null +++ b/ngkookies/ngkookies.ts @@ -0,0 +1,34 @@ +// Type definitions for ngKookes 0.2.0 +// Project: https://github.com/voronianski/ngKookies +// Definitions by: Martin McWhorter https://github.com/martinmcwhorter +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module angular.kookies { + + type Options = { + expires?: number|Date, + path?: string, + domain?: string, + secure?: boolean + }; + + interface IKookiesService { + + set(name: string, value: string, optopns?: Options): void; + get(): any; + get(name: string): any; + get(name:string, converter: any): any; + get(name:string, converter: any): T; + remove(name: string, options?: Options): boolean; + } + + type Config = { raw?: boolean, json?: boolean } + + interface IKookiesProvider { + + config: Config; + setConfig(config: Config): void; + defaults: Options; + setDefaults(options: Options): void; + } +} \ No newline at end of file