MCPcopy Create free account
hub / github.com/parse-community/parse-server / transformToParse

Function transformToParse

src/GraphQL/transformers/schemaFields.js:3–129  ·  view source on GitHub ↗
(graphQLSchemaFields, existingFields)

Source from the content-addressed store, hash-verified

1import Parse from 'parse/node';
2
3const transformToParse = (graphQLSchemaFields, existingFields) => {
4 if (!graphQLSchemaFields) {
5 return {};
6 }
7
8 let parseSchemaFields = {};
9
10 const reducerGenerator = type => (parseSchemaFields, field) => {
11 if (type === 'Remove') {
12 if (existingFields[field.name]) {
13 return {
14 ...parseSchemaFields,
15 [field.name]: {
16 __op: 'Delete',
17 },
18 };
19 } else {
20 return parseSchemaFields;
21 }
22 }
23 if (
24 graphQLSchemaFields.remove &&
25 graphQLSchemaFields.remove.find(removeField => removeField.name === field.name)
26 ) {
27 return parseSchemaFields;
28 }
29 if (parseSchemaFields[field.name] || (existingFields && existingFields[field.name])) {
30 throw new Parse.Error(Parse.Error.INVALID_KEY_NAME, `Duplicated field name: ${field.name}`);
31 }
32 if (type === 'Relation' || type === 'Pointer') {
33 return {
34 ...parseSchemaFields,
35 [field.name]: {
36 type,
37 targetClass: field.targetClassName,
38 },
39 };
40 }
41 return {
42 ...parseSchemaFields,
43 [field.name]: {
44 type,
45 },
46 };
47 };
48
49 if (graphQLSchemaFields.addStrings) {
50 parseSchemaFields = graphQLSchemaFields.addStrings.reduce(
51 reducerGenerator('String'),
52 parseSchemaFields
53 );
54 }
55 if (graphQLSchemaFields.addNumbers) {
56 parseSchemaFields = graphQLSchemaFields.addNumbers.reduce(
57 reducerGenerator('Number'),
58 parseSchemaFields
59 );
60 }

Callers 1

loadFunction · 0.90

Calls 1

reducerGeneratorFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…