UNPKG

declarations

Version:

[![npm version](https://badge.fury.io/js/declarations.svg)](https://www.npmjs.com/package/declarations)

147 lines (129 loc) 4.3 kB
// Type definitions for pinterest-sdk // Project: https://assets.pinterest.com/sdk/sdk.js // Definitions by: Adam Burmister <https://github.com/adamburmister> // Definitions: https://github.com/adamburmister/DefinitelyTyped declare namespace PDK { enum OAuthScopes { 'read_public', 'write_public', 'read_relationships', 'write_relationships' } enum HttpMethod { 'get', 'put', 'post', 'delete' } type OauthSession = { accessToken?: string; scope?: string; error?: string; } interface LoginOptions { scope: string|OAuthScopes; method?: string; appId?: string; cookie?: boolean; logging?: boolean; session?: OauthSession; } interface OAuthRequestParams { accessToken?: string; data?: any; } interface InitOptions { /** Your application ID from developer.pinterest.com */ appId?: string; cookie?: boolean; logging?: boolean; session?: OauthSession; } /** * Get information on the currently authenticated user * @param cb the callback export function to handle the response */ export function me(callback: Function): void; /** * Get information on the currently authenticated user * @param path the url path * @param cb the callback export function to handle the response */ export function me(path: string, callback: Function): void; /** * Get information on the currently authenticated user * @param path the url path * @param params the parameters for the request * @param cb the callback export function to handle the response */ export function me(path: string, params: Object, callback: Function): void; /** * Make an API call to the server * * The path is the only required argument. * * @param path URL path * @param httpMethod HTTP verb */ export function request(path: string, httpMethod?: string|HttpMethod, params?: OAuthRequestParams, callback?: Function): void; /** * Show user login dialog, and save access token */ export function login(options: LoginOptions, callback: Function): void; /** * Remove the session of the current user. * * Need to call login to re-connect, unless session is saved on server. */ export function logout(callback?: (session: OauthSession) => any): void; /** * Get the active session for the current user */ export function getSession(): OauthSession; /** * Save the user specified session */ export function setSession(session: OauthSession, callback?: (session: OauthSession) => any): void; /** * Initialize the library. * * Typical initialization enabling all optional features: * ``` * <script src="pin-sdk.js"></script> * <script> * PDK.init({ * appId : 'YOUR APP ID', * cookie : true // enable cookies to allow the server to access the session * }); * </script> * ``` * The best place to put this code is right before the closing * `</body>` tag. * * - Asynchronous Loading - * * The library makes non-blocking loading of the script easy to use by * providing the `pAsyncInit` hook. If this global export function is defined, it * will be executed when the library is loaded: * ``` * <div id="p-root"></div> * <script> * window.pAsyncInit = function() { * PDK.init({ * appId : 'YOUR APP ID', * cookie : true // enable cookies to allow the server to access the session * }); * }; * * (function() { * var e = document.createElement('script'); * e.src = 'pin-sdk.js'; * e.async = true; * document.getElementById('p-root').appendChild(e); * }()); * </script> * ``` */ export function init(options: InitOptions): void; /** * Allow an unauthenticated user to pin using a popup * * @param imageUrl URL for image that you want to Pin. * @param note The Pin's description. * @param url The URL the Pin will link to when you click through. */ export function pin(imageUrl: string, note: string, url: string, callback: Function): void; } declare module 'pinterest-sdk' { export = PDK; }