UNPKG

1.17 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _babelTypes = require('babel-types');
8
9var _babelTypes2 = _interopRequireDefault(_babelTypes);
10
11function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
13/**
14 * Creates an AST representation of an InputObjectType shape object.
15 */
16const createObjectExpression = (t, object) => {
17 const properties = [];
18
19 for (const name of Object.keys(object)) {
20 const value = object[name];
21
22 let newValue;
23
24 // eslint-disable-next-line no-empty
25 if (t.isAnyTypeAnnotation(value)) {} else if (typeof value === 'string') {
26 newValue = t.stringLiteral(value);
27 } else if (typeof value === 'object') {
28 newValue = createObjectExpression(t, value);
29 } else if (typeof value === 'boolean') {
30 newValue = t.booleanLiteral(value);
31 } else {
32 throw new TypeError('Unexpected type: ' + typeof value);
33 }
34
35 properties.push(t.objectProperty(t.stringLiteral(name), newValue));
36 }
37
38 return t.objectExpression(properties);
39};
40
41exports.default = createObjectExpression;
42//# sourceMappingURL=createObjectExpression.js.map
\No newline at end of file