From f05cda287f2daec33125112655e59ef3fe93a958 Mon Sep 17 00:00:00 2001 From: Crevil Date: Sun, 27 Mar 2016 14:00:36 +0200 Subject: [PATCH] Add ng-facebook typings --- ng-facebook/ng-facebook-tests.ts | 51 ++++++++++++++++++++++++++++++++ ng-facebook/ng-facebook.d.ts | 46 ++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 ng-facebook/ng-facebook-tests.ts create mode 100644 ng-facebook/ng-facebook.d.ts diff --git a/ng-facebook/ng-facebook-tests.ts b/ng-facebook/ng-facebook-tests.ts new file mode 100644 index 000000000..9aace5d14 --- /dev/null +++ b/ng-facebook/ng-facebook-tests.ts @@ -0,0 +1,51 @@ +/// + +{ + let $facebookProvider: angular.ngFacebook.IFacebookProvider; + + $facebookProvider + .setAppId("764262530321266") + .setPermissions(["email", "user_friends"]) + .setPermissions("user_friends") + .setCustomInit({ + xfbml: true + }) + .setVersion("v2.2"); + + let appId: string = $facebookProvider.getAppId(); + let version: string = $facebookProvider.getVersion(); + let permissions: string = $facebookProvider.getPermissions(); + let customInit: any = $facebookProvider.getCustomInit(); +} + +{ + let $facebook: angular.ngFacebook.IFacebookService; + + let customInit: FBInitParams = $facebook.config("customInit"); + let version: string = $facebook.config("version"); + let appId: string = $facebook.config("appId"); + + $facebook.init(); + + $facebook.setCache("key1", 123); + $facebook.setCache<{ prop1: number }>("key2", { prop1: 456 }); + let cache: number = $facebook.getCache("key"); + $facebook.clearCache(); + + let isConnected: boolean = $facebook.isConnected(); + + let authResponse: {} = $facebook.getAuthResponse(); + + $facebook.getLoginStatus().then(status => { }); + $facebook.getLoginStatus(true).then(status => { }); + + $facebook.logout().then(() => { }); + $facebook.login().then(() => { }); + + $facebook.api("/me").then(user => { }); + $facebook.api("/me", "get"); + $facebook.api("/me", { param: 1 }); + $facebook.api("/me", "get", { param: 1 }); + + $facebook.cachedApi("'/me/friends").then(friends => { }); +} diff --git a/ng-facebook/ng-facebook.d.ts b/ng-facebook/ng-facebook.d.ts new file mode 100644 index 000000000..dc2adc883 --- /dev/null +++ b/ng-facebook/ng-facebook.d.ts @@ -0,0 +1,46 @@ +// Type definitions for ng-facebook +// Project: https://github.com/GoDisco/ngFacebook +// Definitions by: Crevil +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// +/// + +declare namespace angular.ngFacebook { + interface IFacebookProvider { + setAppId(appId: string): IFacebookProvider; + getAppId(): string; + + setVersion(version: string): IFacebookProvider; + getVersion(): string; + + setPermissions(permissions: string|Array): IFacebookProvider; + getPermissions(): string; + + setCustomInit(customInit: FBInitParams): IFacebookProvider; + getCustomInit(): FBInitParams; + } + + interface IFacebookService { + config(property: string): T; + init(): void; + + setCache(attr: string, val: T): void; + getCache(attr: string): T; + clearCache(): void; + + isConnected(): boolean; + getAuthResponse(): {}; + getLoginStatus(force?: boolean): angular.IPromise<{}>; + login(permissions?: string, rerequest?: boolean): angular.IPromise<{}>; + logout(): angular.IPromise; + + ui(params: FBUIParams): angular.IPromise; + api(path: string): angular.IPromise<{}>; + api(path: string, method: string): angular.IPromise<{}>; + api(path: string, params: Object): angular.IPromise<{}>; + api(path: string, method: string, params: Object): angular.IPromise<{}>; + + cachedApi(path: string): angular.IPromise; + } +}