UNPKG

nuclide-format-js

Version:

A collection of codemods to help auto format javascript

88 lines (72 loc) 5.31 kB
'use strict'; var _getDeclaredIdentifiers = require('./getDeclaredIdentifiers'); var _getDeclaredIdentifiers2 = _interopRequireDefault(_getDeclaredIdentifiers); var _getDeclaredTypes = require('./getDeclaredTypes'); var _getDeclaredTypes2 = _interopRequireDefault(_getDeclaredTypes); var _getNonDeclarationTypes = require('./getNonDeclarationTypes'); var _getNonDeclarationTypes2 = _interopRequireDefault(_getNonDeclarationTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * This will get a list of all types that are used but undeclared. */ function getUndeclaredTypes(root, options) { var declaredIdentifiers = (0, _getDeclaredIdentifiers2.default)(root, options); var declaredTypes = (0, _getDeclaredTypes2.default)(root, options); var undeclared = (0, _getNonDeclarationTypes2.default)(root); // now remove anything that was declared var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = declaredIdentifiers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var name = _step.value; undeclared.delete(name); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = declaredTypes[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var _name = _step2.value; undeclared.delete(_name); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } return undeclared; } /* * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the license found in the LICENSE file in * the root directory of this source tree. * * */ module.exports = getUndeclaredTypes; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vdXRpbHMvZ2V0VW5kZWNsYXJlZFR5cGVzLmpzIl0sIm5hbWVzIjpbImdldFVuZGVjbGFyZWRUeXBlcyIsInJvb3QiLCJvcHRpb25zIiwiZGVjbGFyZWRJZGVudGlmaWVycyIsImRlY2xhcmVkVHlwZXMiLCJ1bmRlY2xhcmVkIiwibmFtZSIsImRlbGV0ZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7O0FBYUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQTs7O0FBR0EsU0FBU0Esa0JBQVQsQ0FDRUMsSUFERixFQUVFQyxPQUZGLEVBR2U7QUFDYixNQUFNQyxzQkFBc0Isc0NBQXVCRixJQUF2QixFQUE2QkMsT0FBN0IsQ0FBNUI7QUFDQSxNQUFNRSxnQkFBZ0IsZ0NBQWlCSCxJQUFqQixFQUF1QkMsT0FBdkIsQ0FBdEI7O0FBRUEsTUFBTUcsYUFBYSxzQ0FBdUJKLElBQXZCLENBQW5CO0FBQ0E7QUFMYTtBQUFBO0FBQUE7O0FBQUE7QUFNYix5QkFBbUJFLG1CQUFuQiw4SEFBd0M7QUFBQSxVQUE3QkcsSUFBNkI7O0FBQ3RDRCxpQkFBV0UsTUFBWCxDQUFrQkQsSUFBbEI7QUFDRDtBQVJZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBU2IsMEJBQW1CRixhQUFuQixtSUFBa0M7QUFBQSxVQUF2QkUsS0FBdUI7O0FBQ2hDRCxpQkFBV0UsTUFBWCxDQUFrQkQsS0FBbEI7QUFDRDtBQVhZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBWWIsU0FBT0QsVUFBUDtBQUNELEMsQ0FwQ0Q7Ozs7Ozs7Ozs7QUFzQ0FHLE9BQU9DLE9BQVAsR0FBaUJULGtCQUFqQiIsImZpbGUiOiJnZXRVbmRlY2xhcmVkVHlwZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE1LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpblxuICogdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICogQGZsb3dcbiAqL1xuXG5pbXBvcnQgdHlwZSB7Q29sbGVjdGlvbn0gZnJvbSAnLi4vdHlwZXMvYXN0JztcbmltcG9ydCB0eXBlIHtTb3VyY2VPcHRpb25zfSBmcm9tICcuLi9vcHRpb25zL1NvdXJjZU9wdGlvbnMnO1xuXG5pbXBvcnQgZ2V0RGVjbGFyZWRJZGVudGlmaWVycyBmcm9tICcuL2dldERlY2xhcmVkSWRlbnRpZmllcnMnO1xuaW1wb3J0IGdldERlY2xhcmVkVHlwZXMgZnJvbSAnLi9nZXREZWNsYXJlZFR5cGVzJztcbmltcG9ydCBnZXROb25EZWNsYXJhdGlvblR5cGVzIGZyb20gJy4vZ2V0Tm9uRGVjbGFyYXRpb25UeXBlcyc7XG5cbi8qKlxuICogVGhpcyB3aWxsIGdldCBhIGxpc3Qgb2YgYWxsIHR5cGVzIHRoYXQgYXJlIHVzZWQgYnV0IHVuZGVjbGFyZWQuXG4gKi9cbmZ1bmN0aW9uIGdldFVuZGVjbGFyZWRUeXBlcyhcbiAgcm9vdDogQ29sbGVjdGlvbixcbiAgb3B0aW9uczogU291cmNlT3B0aW9ucyxcbik6IFNldDxzdHJpbmc+IHtcbiAgY29uc3QgZGVjbGFyZWRJZGVudGlmaWVycyA9IGdldERlY2xhcmVkSWRlbnRpZmllcnMocm9vdCwgb3B0aW9ucyk7XG4gIGNvbnN0IGRlY2xhcmVkVHlwZXMgPSBnZXREZWNsYXJlZFR5cGVzKHJvb3QsIG9wdGlvbnMpO1xuXG4gIGNvbnN0IHVuZGVjbGFyZWQgPSBnZXROb25EZWNsYXJhdGlvblR5cGVzKHJvb3QpO1xuICAvLyBub3cgcmVtb3ZlIGFueXRoaW5nIHRoYXQgd2FzIGRlY2xhcmVkXG4gIGZvciAoY29uc3QgbmFtZSBvZiBkZWNsYXJlZElkZW50aWZpZXJzKSB7XG4gICAgdW5kZWNsYXJlZC5kZWxldGUobmFtZSk7XG4gIH1cbiAgZm9yIChjb25zdCBuYW1lIG9mIGRlY2xhcmVkVHlwZXMpIHtcbiAgICB1bmRlY2xhcmVkLmRlbGV0ZShuYW1lKTtcbiAgfVxuICByZXR1cm4gdW5kZWNsYXJlZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXRVbmRlY2xhcmVkVHlwZXM7XG4iXX0=