feat: Deprecate LiveQuery fields option in favor of keys for semantic consistency (#8388)

This commit is contained in:
Daniel
2023-02-17 23:24:33 +11:00
committed by GitHub
parent 992b3c79f5
commit a49e323d5a
5 changed files with 110 additions and 14 deletions

View File

@@ -23,6 +23,7 @@ import LRU from 'lru-cache';
import UserRouter from '../Routers/UsersRouter';
import DatabaseController from '../Controllers/DatabaseController';
import { isDeepStrictEqual } from 'util';
import Deprecator from '../Deprecator/Deprecator';
class ParseLiveQueryServer {
clients: Map;
@@ -850,9 +851,6 @@ class ParseLiveQueryServer {
await runTrigger(trigger, `beforeSubscribe.${className}`, request, auth);
const query = request.query.toJSON();
if (query.keys) {
query.fields = query.keys.split(',');
}
request.query = query;
}
@@ -901,8 +899,17 @@ class ParseLiveQueryServer {
subscription: subscription,
};
// Add selected fields, sessionToken and installationId for this subscription if necessary
if (request.query.keys) {
subscriptionInfo.keys = Array.isArray(request.query.keys)
? request.query.keys
: request.query.keys.split(',');
}
if (request.query.fields) {
subscriptionInfo.fields = request.query.fields;
subscriptionInfo.keys = request.query.fields;
Deprecator.logRuntimeDeprecation({
usage: `Subscribing using fields parameter`,
solution: `Subscribe using "keys" instead.`,
});
}
if (request.query.watch) {
subscriptionInfo.watch = request.query.watch;