mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-04 14:57:10 +00:00
Merge pull request #32011 from AlexandreHetu/parse-cloudcode-promise
[parse] Update cloud code definitions for Parse server 3.X
This commit is contained in:
Vendored
+13
-30
@@ -7,6 +7,7 @@
|
||||
// Wes Grimes <https://github.com/wesleygrimes>
|
||||
// Otherwise SAS <https://github.com/owsas>
|
||||
// Andrew Goldis <https://github.com/agoldis>
|
||||
// Alexandre Hétu Rivard <https://github.com/AlexandreHetu>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.4
|
||||
|
||||
@@ -490,7 +491,7 @@ declare namespace Parse {
|
||||
|
||||
/**
|
||||
* Represents a LiveQuery Subscription.
|
||||
*
|
||||
*
|
||||
* @see https://docs.parseplatform.org/js/guide/#live-queries
|
||||
* @see NodeJS.EventEmitter
|
||||
*
|
||||
@@ -556,7 +557,7 @@ subscription.on('close', () => {});
|
||||
class LiveQuerySubscription extends NodeJS.EventEmitter {
|
||||
/**
|
||||
* Creates an instance of LiveQuerySubscription.
|
||||
*
|
||||
*
|
||||
* @param {string} id
|
||||
* @param {string} query
|
||||
* @param {string} [sessionToken]
|
||||
@@ -692,12 +693,7 @@ subscription.on('close', () => {});
|
||||
|
||||
interface JobRequest {
|
||||
params: any;
|
||||
}
|
||||
|
||||
interface JobStatus {
|
||||
error?: (response: any) => void;
|
||||
message?: (response: any) => void;
|
||||
success?: (response: any) => void;
|
||||
message: (response: any) => void;
|
||||
}
|
||||
|
||||
interface FunctionRequest {
|
||||
@@ -707,12 +703,6 @@ subscription.on('close', () => {});
|
||||
user?: User;
|
||||
}
|
||||
|
||||
interface FunctionResponse {
|
||||
success: (response: any) => void;
|
||||
error (code: number, response: any): void;
|
||||
error (response: any): void;
|
||||
}
|
||||
|
||||
interface Cookie {
|
||||
name?: string;
|
||||
options?: CookieOptions;
|
||||
@@ -734,11 +724,7 @@ subscription.on('close', () => {});
|
||||
interface AfterSaveRequest extends TriggerRequest { }
|
||||
interface AfterDeleteRequest extends TriggerRequest { }
|
||||
interface BeforeDeleteRequest extends TriggerRequest { }
|
||||
interface BeforeDeleteResponse extends FunctionResponse { }
|
||||
interface BeforeSaveRequest extends TriggerRequest { }
|
||||
interface BeforeSaveResponse extends FunctionResponse {
|
||||
success: () => void;
|
||||
}
|
||||
|
||||
// Read preference describes how MongoDB driver route read operations to the members of a replica set.
|
||||
enum ReadPreferenceOption {
|
||||
@@ -760,19 +746,16 @@ subscription.on('close', () => {});
|
||||
objects: Object[]
|
||||
}
|
||||
|
||||
interface AfterFindResponse extends FunctionResponse {
|
||||
success: (objects: Object[]) => void;
|
||||
}
|
||||
|
||||
function afterDelete(arg1: any, func?: (request: AfterDeleteRequest) => void): void;
|
||||
function afterSave(arg1: any, func?: (request: AfterSaveRequest) => void): void;
|
||||
function beforeDelete(arg1: any, func?: (request: BeforeDeleteRequest, response: BeforeDeleteResponse) => void): void;
|
||||
function beforeSave(arg1: any, func?: (request: BeforeSaveRequest, response: BeforeSaveResponse) => void): void;
|
||||
function beforeFind(arg1: any, func?: (request: BeforeFindRequest) => void): void;
|
||||
function afterFind(arg1: any, func?: (request: AfterFindRequest, response: AfterFindResponse) => void): void;
|
||||
function define(name: string, func?: (request: FunctionRequest, response: FunctionResponse) => void): void;
|
||||
function afterDelete(arg1: any, func?: (request: AfterDeleteRequest) => Promise<void> | void): void;
|
||||
function afterSave(arg1: any, func?: (request: AfterSaveRequest) => Promise<void> | void): void;
|
||||
function beforeDelete(arg1: any, func?: (request: BeforeDeleteRequest) => Promise<void> | void): void;
|
||||
function beforeSave(arg1: any, func?: (request: BeforeSaveRequest) => Promise<void> | void): void;
|
||||
function beforeFind(arg1: any, func?: (request: BeforeFindRequest) => Promise<void> | void): void;
|
||||
function beforeFind(arg1: any, func?: (request: BeforeFindRequest) => Promise<Query> | Query): void;
|
||||
function afterFind(arg1: any, func?: (request: AfterFindRequest) => Promise<any> | any): void;
|
||||
function define(name: string, func?: (request: FunctionRequest) => Promise<any> | any): void;
|
||||
function httpRequest(options: HTTPOptions): Promise<HttpResponse>;
|
||||
function job(name: string, func?: (request: JobRequest, status: JobStatus) => void): HttpResponse;
|
||||
function job(name: string, func?: (request: JobRequest) => Promise<void> | void): HttpResponse;
|
||||
function run(name: string, data?: any, options?: RunOptions): Promise<any>;
|
||||
function useMasterKey(): void;
|
||||
|
||||
|
||||
+34
-10
@@ -126,7 +126,7 @@ function test_query() {
|
||||
// Find objects with distinct key
|
||||
query.distinct('name');
|
||||
|
||||
const testQuery = Parse.Query.or(query, query);
|
||||
const testQuery = Parse.Query.or(query, query);
|
||||
}
|
||||
|
||||
async function test_query_promise() {
|
||||
@@ -348,30 +348,30 @@ function test_cloud_functions() {
|
||||
// result
|
||||
});
|
||||
|
||||
Parse.Cloud.beforeDelete('MyCustomClass', (request: Parse.Cloud.BeforeDeleteRequest,
|
||||
response: Parse.Cloud.BeforeDeleteResponse) => {
|
||||
Parse.Cloud.beforeDelete('MyCustomClass', (request: Parse.Cloud.BeforeDeleteRequest) => {
|
||||
// result
|
||||
});
|
||||
|
||||
Parse.Cloud.beforeDelete('MyCustomClass', async (request: Parse.Cloud.BeforeDeleteRequest) => {
|
||||
// result
|
||||
});
|
||||
|
||||
const CUSTOM_ERROR_INVALID_CONDITION = 1001
|
||||
const CUSTOM_ERROR_IMMUTABLE_FIELD = 1002
|
||||
|
||||
Parse.Cloud.beforeSave('MyCustomClass', (request: Parse.Cloud.BeforeSaveRequest,
|
||||
response: Parse.Cloud.BeforeSaveResponse) => {
|
||||
|
||||
Parse.Cloud.beforeSave('MyCustomClass', async (request: Parse.Cloud.BeforeSaveRequest) => {
|
||||
if (request.object.isNew()) {
|
||||
if (!request.object.has('immutable')) return response.error('Field immutable is required')
|
||||
if (!request.object.has('immutable')) throw new Error('Field immutable is required')
|
||||
} else {
|
||||
const original = request.original;
|
||||
if (original == null) { // When the object is not new, request.original must be defined
|
||||
return response.error(CUSTOM_ERROR_INVALID_CONDITION, 'Original must me defined for an existing object')
|
||||
throw new Parse.Error(CUSTOM_ERROR_INVALID_CONDITION, 'Original must me defined for an existing object')
|
||||
}
|
||||
|
||||
if (original.get('immutable') !== request.object.get('immutable')) {
|
||||
return response.error(CUSTOM_ERROR_IMMUTABLE_FIELD, 'This field cannot be changed')
|
||||
throw new Parse.Error(CUSTOM_ERROR_IMMUTABLE_FIELD, 'This field cannot be changed')
|
||||
}
|
||||
}
|
||||
response.success()
|
||||
});
|
||||
|
||||
Parse.Cloud.beforeFind('MyCustomClass', (request: Parse.Cloud.BeforeFindRequest) => {
|
||||
@@ -388,6 +388,30 @@ function test_cloud_functions() {
|
||||
request.readPreference = Parse.Cloud.ReadPreferenceOption.SecondaryPreferred
|
||||
request.readPreference = Parse.Cloud.ReadPreferenceOption.Nearest
|
||||
});
|
||||
|
||||
Parse.Cloud.beforeFind('MyCustomClass', (request: Parse.Cloud.BeforeFindRequest) => {
|
||||
let query = request.query; // the Parse.Query
|
||||
|
||||
return new Parse.Query("QueryMe!");
|
||||
});
|
||||
|
||||
Parse.Cloud.beforeFind('MyCustomClass', async (request: Parse.Cloud.BeforeFindRequest) => {
|
||||
let query = request.query; // the Parse.Query
|
||||
|
||||
return new Parse.Query("QueryMe, IN THE FUTURE!");
|
||||
});
|
||||
|
||||
Parse.Cloud.afterFind('MyCustomClass', async (request: Parse.Cloud.AfterFindRequest) => {
|
||||
return new Parse.Object('MyCustomClass');
|
||||
});
|
||||
|
||||
Parse.Cloud.define('AFunc', (request: Parse.Cloud.FunctionRequest) => {
|
||||
return 'Some result';
|
||||
});
|
||||
|
||||
Parse.Cloud.job('AJob', (request: Parse.Cloud.JobRequest) => {
|
||||
request.message('Message to associate with this job run');
|
||||
});
|
||||
}
|
||||
|
||||
class PlaceObject extends Parse.Object { }
|
||||
|
||||
Reference in New Issue
Block a user