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

Function parseDefaultValue

resources/buildConfigDefinitions.js:192–258  ·  view source on GitHub ↗
(elt, value, t)

Source from the content-addressed store, hash-verified

190}
191
192function parseDefaultValue(elt, value, t) {
193 let literalValue;
194 if (t.isStringTypeAnnotation(elt)) {
195 if (value == '""' || value == "''") {
196 literalValue = t.stringLiteral('');
197 } else {
198 literalValue = t.stringLiteral(value);
199 }
200 } else if (t.isNumberTypeAnnotation(elt)) {
201 literalValue = t.numericLiteral(parsers.numberOrBoolParser('')(value));
202 } else if (t.isArrayTypeAnnotation(elt)) {
203 const array = parsers.objectParser(value);
204 literalValue = t.arrayExpression(
205 array.map(value => {
206 if (typeof value == 'string') {
207 return t.stringLiteral(value);
208 } else if (typeof value == 'number') {
209 return t.numericLiteral(value);
210 } else if (typeof value == 'object') {
211 const object = parsers.objectParser(value);
212 const props = Object.entries(object).map(([k, v]) => {
213 if (typeof v == 'string') {
214 return t.objectProperty(t.identifier(k), t.stringLiteral(v));
215 } else if (typeof v == 'number') {
216 return t.objectProperty(t.identifier(k), t.numericLiteral(v));
217 } else if (typeof v == 'boolean') {
218 return t.objectProperty(t.identifier(k), t.booleanLiteral(v));
219 }
220 });
221 return t.objectExpression(props);
222 } else {
223 throw new Error('Unable to parse array');
224 }
225 })
226 );
227 } else if (t.isAnyTypeAnnotation(elt)) {
228 literalValue = t.arrayExpression([]);
229 } else if (t.isBooleanTypeAnnotation(elt)) {
230 literalValue = t.booleanLiteral(parsers.booleanParser(value));
231 } else if (t.isGenericTypeAnnotation(elt)) {
232 const type = elt.typeAnnotation.id.name;
233 if (type == 'NumberOrBoolean') {
234 literalValue = t.numericLiteral(parsers.numberOrBoolParser('')(value));
235 }
236 if (type == 'NumberOrString') {
237 literalValue = t.numericLiteral(parsers.numberOrStringParser('')(value));
238 }
239
240 if (nestedOptionTypes.includes(type)) {
241 const object = parsers.objectParser(value);
242 const props = Object.keys(object).map(key => {
243 return t.objectProperty(key, object[value]);
244 });
245 literalValue = t.objectExpression(props);
246 }
247 if (type == 'ProtectedFields') {
248 const prop = t.objectProperty(
249 t.stringLiteral('_User'),

Callers 1

injectFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…