(elt, value, t)
| 190 | } |
| 191 | |
| 192 | function 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'), |
no outgoing calls
no test coverage detected
searching dependent graphs…