Encapsulated interfaces, made typings more precise according to documentation, removed 'ParseDefaultOptions' in 'parse'.

This commit is contained in:
Daniel Rosenwasser
2015-08-21 13:07:36 -07:00
parent 2df5e8ac4f
commit e4eed4a208

294
parse/parse.d.ts vendored
View File

@@ -15,53 +15,37 @@ declare module Parse {
var serverURL: string;
var VERSION: string;
interface ParseDefaultOptions {
wait?: boolean;
silent?: boolean;
interface SuccessOption {
success?: Function;
}
interface ErrorOption {
error?: Function;
}
interface BackboneStyleOptions extends SuccessOption, ErrorOption {
}
interface WaitOption {
/**
* Set to true to wait for the server to confirm success
* before triggering an event.
*/
wait?: boolean;
}
interface UseMasterKeyOption {
/**
* In Cloud Code and Node only, causes the Master Key to be used for this request.
*/
useMasterKey?: boolean;
}
interface CollectionOptions {
model?: Object;
query?: Query;
comparator?: string;
}
interface CollectionAddOptions {
at?: number;
}
interface RouterOptions {
routes: any;
}
interface NavigateOptions {
trigger?: boolean;
}
interface ViewOptions {
model?: any;
collection?: any;
el?: any;
id?: string;
className?: string;
tagName?: string;
attributes?: any[];
}
interface PushData {
channels?: string[];
push_time?: Date;
expiration_time?: Date;
expiration_interval?: number;
where?: Query;
data?: any;
alert?: string;
badge?: string;
sound?: string;
title?: string;
interface SilentOption {
/**
* Set to true to avoid firing the event.
*/
silent?: boolean;
}
/**
@@ -199,7 +183,7 @@ declare module Parse {
constructor(name: string, data: any, type?: string);
name(): string;
url(): string;
save<T>(options?: ParseDefaultOptions): Promise<T>;
save<T>(options?: BackboneStyleOptions): Promise<T>;
}
@@ -233,7 +217,7 @@ declare module Parse {
constructor(arg1?: any, arg2?: any);
current(options?: ParseDefaultOptions): GeoPoint;
current(options?: BackboneStyleOptions): GeoPoint;
radiansTo(point: GeoPoint): number;
kilometersTo(point: GeoPoint): number;
milesTo(point: GeoPoint): number;
@@ -332,10 +316,10 @@ declare module Parse {
constructor(attributes?: string[], options?: any);
static extend(className: string, protoProps?: any, classProps?: any): any;
static fetchAll<T>(list: Object[], options: ParseDefaultOptions): Promise<T>;
static fetchAllIfNeeded<T>(list: Object[], options: ParseDefaultOptions): Promise<T>;
static destroyAll<T>(list: Object[], options?: ParseDefaultOptions): Promise<T>;
static saveAll<T>(list: Object[], options?: ParseDefaultOptions): Promise<T>;
static fetchAll<T>(list: Object[], options: BackboneStyleOptions): Promise<T>;
static fetchAllIfNeeded<T>(list: Object[], options: BackboneStyleOptions): Promise<T>;
static destroyAll<T>(list: Object[], options?: Object.DestroyAllOptions): Promise<T>;
static saveAll<T>(list: Object[], options?: Object.SaveAllOptions): Promise<T>;
initialize(): void;
add(attr: string, item: any): Object;
@@ -344,12 +328,12 @@ declare module Parse {
changedAttributes(diff: any): boolean;
clear(options: any): any;
clone(): Object;
destroy<T>(options?: ParseDefaultOptions): Promise<T>;
destroy<T>(options?: Object.DestroyOptions): Promise<T>;
dirty(attr: String): boolean;
dirtyKeys(): string[];
escape(attr: string): string;
existed(): boolean;
fetch<T>(options?: ParseDefaultOptions): Promise<T>;
fetch<T>(options?: Object.FetchOptions): Promise<T>;
get(attr: string): any;
getACL(): ACL;
has(attr: string): boolean;
@@ -361,12 +345,27 @@ declare module Parse {
previousAttributes(): any;
relation(attr: string): Relation;
remove(attr: string, item: any): any;
save<T>(options?: ParseDefaultOptions, arg2?: any, arg3?: any): Promise<T>;
set(key: string, value: any, options?: ParseDefaultOptions): boolean;
setACL(acl: ACL, options?: ParseDefaultOptions): boolean;
save<T>(options?: Object.SaveOptions, arg2?: any, arg3?: any): Promise<T>;
set(key: string, value: any, options?: Object.SetOptions): boolean;
setACL(acl: ACL, options?: BackboneStyleOptions): boolean;
unset(attr: string, options?: any): any;
validate(attrs: any, options?: ParseDefaultOptions): boolean;
validate(attrs: any, options?: BackboneStyleOptions): boolean;
}
namespace Object {
interface DestroyOptions extends BackboneStyleOptions, WaitOption, UseMasterKeyOption { }
interface DestroyAllOptions extends BackboneStyleOptions, UseMasterKeyOption { }
interface FetchOptions extends BackboneStyleOptions, UseMasterKeyOption { }
interface SaveOptions extends BackboneStyleOptions, SilentOption, UseMasterKeyOption, WaitOption { }
interface SaveAllOptions extends BackboneStyleOptions, UseMasterKeyOption { }
interface SetOptions extends ErrorOption, SilentOption {
promise?: any;
}
}
/**
@@ -420,24 +419,49 @@ declare module Parse {
query: Query;
comparator: (object: Object) => any;
constructor(models?: Object[], options?: CollectionOptions);
constructor(models?: Object[], options?: Collection.Options);
static extend(instanceProps: any, classProps: any): any;
initialize(): void;
add(models: any[], options?: CollectionAddOptions): Collection<T>;
add(models: any[], options?: Collection.AddOptions): Collection<T>;
at(index: number): Object;
chain(): _Chain<Collection<T>>;
fetch(options?: ParseDefaultOptions): Promise<T>;
create(model: Object, options?: ParseDefaultOptions): Object;
fetch(options?: Collection.FetchOptions): Promise<T>;
create(model: Object, options?: Collection.CreateOptions): Object;
get(id: string): Object;
getByCid(cid: any): any;
pluck(attr: string): any[];
remove(model: any, options?: ParseDefaultOptions): Collection<T>;
remove(models: any[], options?: ParseDefaultOptions): Collection<T>;
reset(models: any[], options?: ParseDefaultOptions): Collection<T>;
sort(options?: ParseDefaultOptions): Collection<T>;
remove(model: any, options?: Collection.RemoveOptions): Collection<T>;
remove(models: any[], options?: Collection.RemoveOptions): Collection<T>;
reset(models: any[], options?: Collection.ResetOptions): Collection<T>;
sort(options?: Collection.SortOptions): Collection<T>;
toJSON(): any;
}
namespace Collection {
interface Options {
model?: Object;
query?: Query;
comparator?: string;
}
interface AddOptions extends SilentOption {
/**
* The index at which to add the models.
*/
at?: number;
}
interface CreateOptions extends BackboneStyleOptions, WaitOption, SilentOption, UseMasterKeyOption {
}
interface FetchOptions extends BackboneStyleOptions, SilentOption, UseMasterKeyOption { }
interface RemoveOptions extends SilentOption { }
interface ResetOptions extends SilentOption { }
interface SortOptions extends SilentOption { }
}
/**
@@ -549,23 +573,23 @@ declare module Parse {
addDescending(key: string[]): Query;
ascending(key: string): Query;
ascending(key: string[]): Query;
collection(items?: Object[], options?: ParseDefaultOptions): Collection<Object>;
collection(items?: Object[], options?: Collection.Options): Collection<Object>;
containedIn(key: string, values: any[]): Query;
contains(key: string, substring: string): Query;
containsAll(key: string, values: any[]): Query;
count<T>(options?: ParseDefaultOptions): Promise<T>;
count<T>(options?: Query.CountOptions): Promise<T>;
descending(key: string): Query;
descending(key: string[]): Query;
doesNotExist(key: string): Query;
doesNotMatchKeyInQuery(key: string, queryKey: string, query: Query): Query;
doesNotMatchQuery(key: string, query: Query): Query;
each<T>(callback: Function, options?: ParseDefaultOptions): Promise<T>;
each<T>(callback: Function, options?: BackboneStyleOptions): Promise<T>;
endsWith(key: string, suffix: string): Query;
equalTo(key: string, value: any): Query;
exists(key: string): Query;
find<T>(options?: ParseDefaultOptions): Promise<T>;
first<T>(options?: ParseDefaultOptions): Promise<T>;
get(objectId: string, options?: ParseDefaultOptions): Promise<any>;
find<T>(options?: Query.FindOptions): Promise<T>;
first<T>(options?: Query.FirstOptions): Promise<T>;
get(objectId: string, options?: Query.GetOptions): Promise<any>;
greaterThan(key: string, value: any): Query;
greaterThanOrEqualTo(key: string, value: any): Query;
include(key: string): Query;
@@ -588,6 +612,13 @@ declare module Parse {
withinRadians(key: string, point: GeoPoint, maxDistance: number): Query;
}
namespace Query {
interface CountOptions extends BackboneStyleOptions, UseMasterKeyOption { }
interface FindOptions extends BackboneStyleOptions, UseMasterKeyOption { }
interface FirstOptions extends BackboneStyleOptions, UseMasterKeyOption { }
interface GetOptions extends BackboneStyleOptions, UseMasterKeyOption { }
}
/**
* Represents a Role on the Parse server. Roles represent groupings of
* Users for the purposes of granting permissions (e.g. specifying an ACL
@@ -608,7 +639,7 @@ declare module Parse {
getRoles(): Relation;
getUsers(): Relation;
getName(): string;
setName(name: string, options?: ParseDefaultOptions): any;
setName(name: string, options?: BackboneStyleOptions): any;
}
/**
@@ -624,17 +655,31 @@ declare module Parse {
*/
class Router extends Events {
routes: any[];
routes: Router.RouteMap;
constructor(options?: RouterOptions);
constructor(options?: Router.Options);
static extend(instanceProps: any, classProps: any): any;
initialize(): void;
navigate(fragment: string, options?: NavigateOptions): Router;
navigate(fragment: string, options?: Router.NavigateOptions): Router;
navigate(fragment: string, trigger?: boolean): Router;
route(route: string, name: string, callback: Function): Router;
}
namespace Router {
interface Options {
routes: RouteMap;
}
interface RouteMap {
[url: string]: string;
}
interface NavigateOptions {
trigger?: boolean;
}
}
/**
* @class
*
@@ -647,27 +692,27 @@ declare module Parse {
class User extends Object {
static current(): User;
static signUp<T>(username: string, password: string, attrs: any, options?: ParseDefaultOptions): Promise<T>;
static logIn<T>(username: string, password: string, options?: ParseDefaultOptions): Promise<T>;
static signUp<T>(username: string, password: string, attrs: any, options?: BackboneStyleOptions): Promise<T>;
static logIn<T>(username: string, password: string, options?: BackboneStyleOptions): Promise<T>;
static logOut<T>(): Promise<T>;
static allowCustomUserClass(isAllowed: boolean): void;
static become<T>(sessionToken: string, options?: ParseDefaultOptions): Promise<T>;
static requestPasswordReset<T>(email: string, options?: ParseDefaultOptions): Promise<T>;
static become<T>(sessionToken: string, options?: BackboneStyleOptions): Promise<T>;
static requestPasswordReset<T>(email: string, options?: BackboneStyleOptions): Promise<T>;
signUp<T>(attrs: any, options?: ParseDefaultOptions): Promise<T>;
logIn<T>(options?: ParseDefaultOptions): Promise<T>;
fetch<T>(options?: ParseDefaultOptions): Promise<T>;
signUp<T>(attrs: any, options?: BackboneStyleOptions): Promise<T>;
logIn<T>(options?: BackboneStyleOptions): Promise<T>;
fetch<T>(options?: BackboneStyleOptions): Promise<T>;
save<T>(arg1: any, arg2: any, arg3: any): Promise<T>;
authenticated(): boolean;
isCurrent(): boolean;
getEmail(): string;
setEmail(email: string, options: ParseDefaultOptions): boolean;
setEmail(email: string, options: BackboneStyleOptions): boolean;
getUsername(): string;
setUsername(username: string, options?: ParseDefaultOptions): boolean;
setUsername(username: string, options?: BackboneStyleOptions): boolean;
setPassword(password: string, options?: ParseDefaultOptions): boolean;
setPassword(password: string, options?: BackboneStyleOptions): boolean;
getSessionToken(): string;
}
@@ -695,7 +740,7 @@ declare module Parse {
$el: JQuery;
attributes: any;
constructor(options?: ViewOptions);
constructor(options?: View.Options);
static extend(properties: any, classProperties?: any): any;
@@ -704,12 +749,28 @@ declare module Parse {
setElement(element: JQuery, delegate?: boolean): View<T>;
render(): View<T>;
remove(): View<T>;
make(tagName: any, attributes?: any, content?: any): any;
make(tagName: any, attributes?: View.Attribute[], content?: any): any;
delegateEvents(events?: any): any;
undelegateEvents(): any;
}
namespace View {
interface Options {
model?: any;
collection?: any;
el?: any;
id?: string;
className?: string;
tagName?: string;
attributes?: Attribute[];
}
interface Attribute {
[attributeName: string]: string | number | boolean;
}
}
module Analytics {
function track<T>(name: string, dimensions: any):Promise<T>;
@@ -724,9 +785,9 @@ declare module Parse {
function init(options?: any): void;
function isLinked(user: User): boolean;
function link(user: User, permissions: any, options?: ParseDefaultOptions): void;
function logIn(permissions: any, options?: ParseDefaultOptions): void;
function unlink(user: User, options?: ParseDefaultOptions): void;
function link(user: User, permissions: any, options?: BackboneStyleOptions): void;
function logIn(permissions: any, options?: BackboneStyleOptions): void;
function unlink(user: User, options?: BackboneStyleOptions): void;
}
/**
@@ -796,10 +857,46 @@ declare module Parse {
function beforeDelete(arg1: any, func?: (request: BeforeDeleteRequest, response: BeforeDeleteResponse) => void): void;
function beforeSave(arg1: any, func?: (request: BeforeSaveRequest, response: BeforeSaveResponse) => void): void;
function define(name: string, func?: (request: FunctionRequest, response: FunctionResponse) => void): void;
function httpRequest<T>(options: ParseDefaultOptions): Promise<HttpResponse>;
function httpRequest<T>(options: HTTPOptions): Promise<HttpResponse>;
function job(name: string, func?: (request: JobRequest, status: JobStatus) => void): HttpResponse;
function run<T>(name: string, data?: any, options?: ParseDefaultOptions): Promise<T>;
function run<T>(name: string, data?: any, options?: BackboneStyleOptions): Promise<T>;
function useMasterKey(): void;
/**
* To use this Cloud Module in Cloud Code, you must require 'buffer' in your JavaScript file.
*
* import Buffer = require("buffer").Buffer;
*/
let HTTPOptions: {
new (): HTTPOptions;
};
interface HTTPOptions extends FunctionResponse {
/**
* The body of the request.
* If it is a JSON object, then the Content-Type set in the headers must be application/x-www-form-urlencoded or application/json.
* You can also set this to a Buffer object to send raw bytes.
* If you use a Buffer, you should also set the Content-Type header explicitly to describe what these bytes represent.
*/
body?: string | Buffer | Object;
/**
* Defaults to 'false'.
*/
followRedirects?: boolean;
/**
* The headers for the request.
*/
headers?: {
[headerName: string]: string | number | boolean;
};
/**
*The method of the request (i.e GET, POST, etc).
*/
method?: string;
/**
* The url to send the request to.
*/
url: string;
}
}
@@ -919,8 +1016,25 @@ declare module Parse {
* @namespace
*/
module Push {
function send<T>(data: PushData, options?: SendOptions): Promise<T>;
function send<T>(data: PushData, options?: ParseDefaultOptions):Promise<T>;
interface PushData {
channels?: string[];
push_time?: Date;
expiration_time?: Date;
expiration_interval?: number;
where?: Query;
data?: any;
alert?: string;
badge?: string;
sound?: string;
title?: string;
}
interface SendOptions {
success?: () => void;
error?: (error: Error) => void;
}
}
/**