Skip to content

Commit 1de3fa4

Browse files
committed
fix
1 parent 59169ba commit 1de3fa4

File tree

7 files changed

+27
-17
lines changed

7 files changed

+27
-17
lines changed

src/GraphQL/loaders/functionsMutations.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { GraphQLNonNull, GraphQLEnumType } from 'graphql';
22

33
import { mutationWithClientMutationId } from 'graphql-relay';
4+
import { cloneArgs } from '../parseGraphQLUtils';
45
import { FunctionsRouter } from '../../Routers/FunctionsRouter';
56
import * as defaultGraphQLTypes from './defaultGraphQLTypes';
67

@@ -44,7 +45,7 @@ const load = parseGraphQLSchema => {
4445
},
4546
mutateAndGetPayload: async (args, context) => {
4647
try {
47-
const { functionName, params } = structuredClone(args);
48+
const { functionName, params } = cloneArgs(args);
4849
const { config, auth, info } = context;
4950

5051
return {

src/GraphQL/loaders/parseClassMutations.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { fromGlobalId, mutationWithClientMutationId } from 'graphql-relay';
33
import getFieldNames from 'graphql-list-fields';
44

55
import * as defaultGraphQLTypes from './defaultGraphQLTypes';
6-
import { extractKeysAndInclude, getParseClassMutationConfig } from '../parseGraphQLUtils';
6+
import { extractKeysAndInclude, getParseClassMutationConfig, cloneArgs } from '../parseGraphQLUtils';
77
import * as objectsMutations from '../helpers/objectsMutations';
88
import * as objectsQueries from '../helpers/objectsQueries';
99
import { ParseGraphQLClassConfig } from '../../Controllers/ParseGraphQLController';
@@ -75,7 +75,7 @@ const load = function (parseGraphQLSchema, parseClass, parseClassConfig: ?ParseG
7575
},
7676
mutateAndGetPayload: async (args, context, mutationInfo) => {
7777
try {
78-
let { fields } = structuredClone(args);
78+
let { fields } = cloneArgs(args);
7979
if (!fields) { fields = {}; }
8080
const { config, auth, info } = context;
8181

@@ -178,7 +178,7 @@ const load = function (parseGraphQLSchema, parseClass, parseClassConfig: ?ParseG
178178
},
179179
mutateAndGetPayload: async (args, context, mutationInfo) => {
180180
try {
181-
let { id, fields } = structuredClone(args);
181+
let { id, fields } = cloneArgs(args);
182182
if (!fields) { fields = {}; }
183183
const { config, auth, info } = context;
184184

@@ -284,7 +284,7 @@ const load = function (parseGraphQLSchema, parseClass, parseClassConfig: ?ParseG
284284
},
285285
mutateAndGetPayload: async (args, context, mutationInfo) => {
286286
try {
287-
let { id } = structuredClone(args);
287+
let { id } = cloneArgs(args);
288288
const { config, auth, info } = context;
289289

290290
const globalIdObject = fromGlobalId(id);

src/GraphQL/loaders/parseClassQueries.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import * as defaultGraphQLTypes from './defaultGraphQLTypes';
77
import * as objectsQueries from '../helpers/objectsQueries';
88
import { ParseGraphQLClassConfig } from '../../Controllers/ParseGraphQLController';
99
import { transformClassNameToGraphQL } from '../transformers/className';
10-
import { extractKeysAndInclude } from '../parseGraphQLUtils';
10+
import { extractKeysAndInclude, cloneArgs } from '../parseGraphQLUtils';
1111

1212
const getParseClassQueryConfig = function (parseClassConfig: ?ParseGraphQLClassConfig) {
1313
return (parseClassConfig && parseClassConfig.query) || {};
@@ -75,7 +75,7 @@ const load = function (parseGraphQLSchema, parseClass, parseClassConfig: ?ParseG
7575
return await getQuery(
7676
parseClass,
7777
_source,
78-
structuredClone(args),
78+
cloneArgs(args),
7979
context,
8080
queryInfo,
8181
parseGraphQLSchema.parseClasses
@@ -99,7 +99,7 @@ const load = function (parseGraphQLSchema, parseClass, parseClassConfig: ?ParseG
9999
async resolve(_source, args, context, queryInfo) {
100100
try {
101101
// Deep copy args to avoid internal re assign issue
102-
const { where, order, skip, first, after, last, before, options } = structuredClone(args);
102+
const { where, order, skip, first, after, last, before, options } = cloneArgs(args);
103103
const { readPreference, includeReadPreference, subqueryReadPreference } = options || {};
104104
const { config, auth, info } = context;
105105
const selectedFields = getFieldNames(queryInfo);

src/GraphQL/loaders/schemaMutations.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { GraphQLNonNull } from 'graphql';
44
import { mutationWithClientMutationId } from 'graphql-relay';
55
import * as schemaTypes from './schemaTypes';
66
import { transformToParse, transformToGraphQL } from '../transformers/schemaFields';
7-
import { enforceMasterKeyAccess } from '../parseGraphQLUtils';
7+
import { enforceMasterKeyAccess, cloneArgs } from '../parseGraphQLUtils';
88
import { getClass } from './schemaQueries';
99
import { createSanitizedError } from '../../Error';
1010

@@ -28,7 +28,7 @@ const load = parseGraphQLSchema => {
2828
},
2929
mutateAndGetPayload: async (args, context) => {
3030
try {
31-
const { name, schemaFields } = structuredClone(args);
31+
const { name, schemaFields } = cloneArgs(args);
3232
const { config, auth } = context;
3333

3434
enforceMasterKeyAccess(auth, config);
@@ -78,7 +78,7 @@ const load = parseGraphQLSchema => {
7878
},
7979
mutateAndGetPayload: async (args, context) => {
8080
try {
81-
const { name, schemaFields } = structuredClone(args);
81+
const { name, schemaFields } = cloneArgs(args);
8282
const { config, auth } = context;
8383

8484
enforceMasterKeyAccess(auth, config);
@@ -130,7 +130,7 @@ const load = parseGraphQLSchema => {
130130
},
131131
mutateAndGetPayload: async (args, context) => {
132132
try {
133-
const { name } = structuredClone(args);
133+
const { name } = cloneArgs(args);
134134
const { config, auth } = context;
135135

136136
enforceMasterKeyAccess(auth, config);

src/GraphQL/loaders/schemaQueries.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import Parse from 'parse/node';
33
import { GraphQLNonNull, GraphQLList } from 'graphql';
44
import { transformToGraphQL } from '../transformers/schemaFields';
55
import * as schemaTypes from './schemaTypes';
6-
import { enforceMasterKeyAccess } from '../parseGraphQLUtils';
6+
import { enforceMasterKeyAccess, cloneArgs } from '../parseGraphQLUtils';
77

88
const getClass = async (name, schema) => {
99
try {
@@ -28,7 +28,7 @@ const load = parseGraphQLSchema => {
2828
type: new GraphQLNonNull(schemaTypes.CLASS),
2929
resolve: async (_source, args, context) => {
3030
try {
31-
const { name } = structuredClone(args);
31+
const { name } = cloneArgs(args);
3232
const { config, auth } = context;
3333

3434
enforceMasterKeyAccess(auth, config);

src/GraphQL/loaders/usersMutations.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { GraphQLNonNull, GraphQLString, GraphQLBoolean, GraphQLInputObjectType } from 'graphql';
22
import { mutationWithClientMutationId } from 'graphql-relay';
33

4+
import { cloneArgs } from '../parseGraphQLUtils';
45
import UsersRouter from '../../Routers/UsersRouter';
56
import * as objectsMutations from '../helpers/objectsMutations';
67
import { OBJECT } from './defaultGraphQLTypes';
@@ -32,7 +33,7 @@ const load = parseGraphQLSchema => {
3233
},
3334
mutateAndGetPayload: async (args, context, mutationInfo) => {
3435
try {
35-
const { fields } = structuredClone(args);
36+
const { fields } = cloneArgs(args);
3637
const { config, auth, info } = context;
3738

3839
const parseFields = await transformTypes('create', fields, {
@@ -109,7 +110,7 @@ const load = parseGraphQLSchema => {
109110
},
110111
mutateAndGetPayload: async (args, context, mutationInfo) => {
111112
try {
112-
const { fields, authData } = structuredClone(args);
113+
const { fields, authData } = cloneArgs(args);
113114
const { config, auth, info } = context;
114115

115116
const parseFields = await transformTypes('create', fields, {
@@ -173,7 +174,7 @@ const load = parseGraphQLSchema => {
173174
},
174175
mutateAndGetPayload: async (args, context, mutationInfo) => {
175176
try {
176-
const { username, password, authData } = structuredClone(args);
177+
const { username, password, authData } = cloneArgs(args);
177178
const { config, auth, info } = context;
178179

179180
const { sessionToken, objectId, authDataResponse } = (

src/GraphQL/parseGraphQLUtils.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,11 @@ export const extractKeysAndInclude = selectedFields => {
5555
export const getParseClassMutationConfig = function (parseClassConfig) {
5656
return (parseClassConfig && parseClassConfig.mutation) || {};
5757
};
58+
59+
export function cloneArgs(args) {
60+
try {
61+
return structuredClone(args);
62+
} catch {
63+
return JSON.parse(JSON.stringify(args));
64+
}
65+
}

0 commit comments

Comments
 (0)