diff --git a/.eslintrc b/.eslintrc index cc8c9cdb..4f698c23 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,294 +1,16 @@ { - "root": true, - - "parser": "babel-eslint", - - "env": { - "es6": true, - "jest/globals": true - }, - - "plugins": [ - "eslint-comments", - "flowtype", - "prettier", - "react", - "react-hooks", - "react-native", - "jest" - ], - - // Map from global var to bool specifying if it can be redefined + "extends": "@react-native-community", "globals": { - "__DEV__": true, - "__dirname": false, - "__fbBatchedBridgeConfig": false, - "alert": false, - "cancelAnimationFrame": false, - "cancelIdleCallback": false, - "clearImmediate": true, - "clearInterval": false, - "clearTimeout": false, - "console": false, - "document": false, - "escape": false, - "Event": false, - "EventTarget": false, - "exports": false, - "fetch": false, - "FormData": false, - "global": false, - "Map": true, - "module": false, - "navigator": false, - "process": false, - "Promise": true, - "requestAnimationFrame": true, - "requestIdleCallback": true, - "require": false, - "Set": true, - "setImmediate": true, - "setInterval": false, - "setTimeout": false, - "window": false, - "XMLHttpRequest": false, - "device": true, + "it": true, + "expect": true, "element": true, - "by": true - }, - - "rules": { - // General - "comma-dangle": [1, "always-multiline"], // allow or disallow trailing commas - "no-cond-assign": 1, // disallow assignment in conditional expressions - "no-console": 0, // disallow use of console (off by default in the node environment) - "no-const-assign": 2, // disallow assignment to const-declared variables - "no-constant-condition": 0, // disallow use of constant expressions in conditions - "no-control-regex": 1, // disallow control characters in regular expressions - "no-debugger": 1, // disallow use of debugger - "no-dupe-class-members": 2, // Disallow duplicate name in class members - "no-dupe-keys": 2, // disallow duplicate keys when creating object literals - "no-empty": 0, // disallow empty statements - "no-ex-assign": 1, // disallow assigning to the exception in a catch block - "no-extra-boolean-cast": 1, // disallow double-negation boolean casts in a boolean context - "no-extra-parens": 0, // disallow unnecessary parentheses (off by default) - "no-extra-semi": 1, // disallow unnecessary semicolons - "no-func-assign": 1, // disallow overwriting functions written as function declarations - "no-inner-declarations": 0, // disallow function or variable declarations in nested blocks - "no-invalid-regexp": 1, // disallow invalid regular expression strings in the RegExp constructor - "no-negated-in-lhs": 1, // disallow negation of the left operand of an in expression - "no-obj-calls": 1, // disallow the use of object properties of the global object (Math and JSON) as functions - "no-regex-spaces": 1, // disallow multiple spaces in a regular expression literal - "no-reserved-keys": 0, // disallow reserved words being used as object literal keys (off by default) - "no-sparse-arrays": 1, // disallow sparse arrays - "no-unreachable": 2, // disallow unreachable statements after a return, throw, continue, or break statement - "use-isnan": 1, // disallow comparisons with the value NaN - "valid-jsdoc": 0, // Ensure JSDoc comments are valid (off by default) - "valid-typeof": 1, // Ensure that the results of typeof are compared against a valid string - - // Best Practices - // These are rules designed to prevent you from making mistakes. They either prescribe a better way of doing something or help you avoid footguns. - - "block-scoped-var": 0, // treat var statements as if they were block scoped (off by default) - "complexity": 0, // specify the maximum cyclomatic complexity allowed in a program (off by default) - "consistent-return": 0, // require return statements to either always or never specify values - "curly": 1, // specify curly brace conventions for all control statements - "default-case": 0, // require default case in switch statements (off by default) - "dot-notation": 1, // encourages use of dot notation whenever possible - "eqeqeq": [1, "allow-null"], // require the use of === and !== - "guard-for-in": 0, // make sure for-in loops have an if statement (off by default) - "no-alert": 1, // disallow the use of alert, confirm, and prompt - "no-caller": 1, // disallow use of arguments.caller or arguments.callee - "no-div-regex": 1, // disallow division operators explicitly at beginning of regular expression (off by default) - "no-else-return": 0, // disallow else after a return in an if (off by default) - "no-eq-null": 0, // disallow comparisons to null without a type-checking operator (off by default) - "no-eval": 2, // disallow use of eval() - "no-extend-native": 1, // disallow adding to native types - "no-extra-bind": 1, // disallow unnecessary function binding - "no-fallthrough": 1, // disallow fallthrough of case statements - "no-floating-decimal": 1, // disallow the use of leading or trailing decimal points in numeric literals (off by default) - "no-implied-eval": 1, // disallow use of eval()-like methods - "no-labels": 1, // disallow use of labeled statements - "no-iterator": 1, // disallow usage of __iterator__ property - "no-lone-blocks": 1, // disallow unnecessary nested blocks - "no-loop-func": 0, // disallow creation of functions within loops - "no-multi-str": 0, // disallow use of multiline strings - "no-native-reassign": 0, // disallow reassignments of native objects - "no-new": 1, // disallow use of new operator when not part of the assignment or comparison - "no-new-func": 2, // disallow use of new operator for Function object - "no-new-wrappers": 1, // disallows creating new instances of String,Number, and Boolean - "no-octal": 1, // disallow use of octal literals - "no-octal-escape": 1, // disallow use of octal escape sequences in string literals, such as var foo = "Copyright \251"; - "no-proto": 1, // disallow usage of __proto__ property - "no-redeclare": 0, // disallow declaring the same variable more then once - "no-return-assign": 1, // disallow use of assignment in return statement - "no-script-url": 1, // disallow use of javascript: urls. - "no-self-compare": 1, // disallow comparisons where both sides are exactly the same (off by default) - "no-sequences": 1, // disallow use of comma operator - "no-unused-expressions": 0, // disallow usage of expressions in statement position - "no-void": 1, // disallow use of void operator (off by default) - "no-warning-comments": 0, // disallow usage of configurable warning terms in comments": 1, // e.g. TODO or FIXME (off by default) - "no-with": 1, // disallow use of the with statement - "radix": 1, // require use of the second argument for parseInt() (off by default) - "semi-spacing": 1, // require a space after a semi-colon - "vars-on-top": 0, // requires to declare all vars on top of their containing scope (off by default) - "wrap-iife": 0, // require immediate function invocation to be wrapped in parentheses (off by default) - "yoda": 1, // require or disallow Yoda conditions - - // Variables - // These rules have to do with variable declarations. - - "no-catch-shadow": 1, // disallow the catch clause parameter name being the same as a variable in the outer scope (off by default in the node environment) - "no-delete-var": 1, // disallow deletion of variables - "no-label-var": 1, // disallow labels that share a name with a variable - "no-shadow": 1, // disallow declaration of variables already declared in the outer scope - "no-shadow-restricted-names": 1, // disallow shadowing of names such as arguments - "no-undef": 2, // disallow use of undeclared variables unless mentioned in a /*global */ block - "no-undefined": 0, // disallow use of undefined variable (off by default) - "no-undef-init": 1, // disallow use of undefined when initializing variables - "no-unused-vars": [1, {"vars": "all", "args": "none", ignoreRestSiblings: true}], // disallow declaration of variables that are not used in the code - "no-use-before-define": 0, // disallow use of variables before they are defined - - // Node.js - // These rules are specific to JavaScript running on Node.js. - - "handle-callback-err": 1, // enforces error handling in callbacks (off by default) (on by default in the node environment) - "no-mixed-requires": 1, // disallow mixing regular variable and require declarations (off by default) (on by default in the node environment) - "no-new-require": 1, // disallow use of new operator with the require function (off by default) (on by default in the node environment) - "no-path-concat": 1, // disallow string concatenation with __dirname and __filename (off by default) (on by default in the node environment) - "no-process-exit": 0, // disallow process.exit() (on by default in the node environment) - "no-restricted-modules": 1, // restrict usage of specified node modules (off by default) - "no-sync": 0, // disallow use of synchronous methods (off by default) - - // ESLint Comments Plugin - // The following rules are made available via `eslint-plugin-eslint-comments` - "eslint-comments/no-aggregating-enable": 1, // disallows eslint-enable comments for multiple eslint-disable comments - "eslint-comments/no-unlimited-disable": 1, // disallows eslint-disable comments without rule names - "eslint-comments/no-unused-disable": 1, // disallow disables that don't cover any errors - "eslint-comments/no-unused-enable": 1, // // disallow enables that don't enable anything or enable rules that weren't disabled - - // Flow Plugin - // The following rules are made available via `eslint-plugin-flowtype` - "flowtype/define-flow-type": 1, - "flowtype/use-flow-type": 1, - - // Prettier Plugin - // https://github.com/prettier/eslint-plugin-prettier - "prettier/prettier": "error", - - // Stylistic Issues - // These rules are purely matters of style and are quite subjective. - - "key-spacing": 0, - "keyword-spacing": 1, // enforce spacing before and after keywords - "jsx-quotes": [1, "prefer-double"], // enforces the usage of double quotes for all JSX attribute values which doesn’t contain a double quote - "comma-spacing": 0, - "no-multi-spaces": 0, - "brace-style": 0, // enforce one true brace style (off by default) - "camelcase": 0, // require camel case names - "consistent-this": 1, // enforces consistent naming when capturing the current execution context (off by default) - "eol-last": 1, // enforce newline at the end of file, with no multiple empty lines - "func-names": 0, // require function expressions to have a name (off by default) - "func-style": 0, // enforces use of function declarations or expressions (off by default) - "new-cap": 0, // require a capital letter for constructors - "new-parens": 1, // disallow the omission of parentheses when invoking a constructor with no arguments - "no-nested-ternary": 0, // disallow nested ternary expressions (off by default) - "no-array-constructor": 1, // disallow use of the Array constructor - "no-empty-character-class": 1, // disallow the use of empty character classes in regular expressions - "no-lonely-if": 0, // disallow if as the only statement in an else block (off by default) - "no-new-object": 1, // disallow use of the Object constructor - "no-spaced-func": 1, // disallow space between function identifier and application - "no-ternary": 0, // disallow the use of ternary operators (off by default) - "no-trailing-spaces": 1, // disallow trailing whitespace at the end of lines - "no-underscore-dangle": 0, // disallow dangling underscores in identifiers - "no-mixed-spaces-and-tabs": 1, // disallow mixed spaces and tabs for indentation - "quotes": [1, "single", "avoid-escape"], // specify whether double or single quotes should be used - "quote-props": 0, // require quotes around object literal property names (off by default) - "semi": 1, // require or disallow use of semicolons instead of ASI - "sort-vars": 0, // sort variables within the same declaration block (off by default) - "space-in-brackets": 0, // require or disallow spaces inside brackets (off by default) - "space-in-parens": 0, // require or disallow spaces inside parentheses (off by default) - "space-infix-ops": 1, // require spaces around operators - "space-unary-ops": [1, { "words": true, "nonwords": false }], // require or disallow spaces before/after unary operators (words on by default, nonwords off by default) - "max-nested-callbacks": 0, // specify the maximum depth callbacks can be nested (off by default) - "one-var": 0, // allow just one var statement per function (off by default) - "wrap-regex": 0, // require regex literals to be wrapped in parentheses (off by default) - - // Legacy - // The following rules are included for compatibility with JSHint and JSLint. While the names of the rules may not match up with the JSHint/JSLint counterpart, the functionality is the same. - - "max-depth": 0, // specify the maximum depth that blocks can be nested (off by default) - "max-len": 0, // specify the maximum length of a line in your program (off by default) - "max-params": 0, // limits the number of parameters that can be used in the function declaration. (off by default) - "max-statements": 0, // specify the maximum number of statement allowed in a function (off by default) - "no-bitwise": 1, // disallow use of bitwise operators (off by default) - "no-plusplus": 0, // disallow use of unary operators, ++ and -- (off by default) - - // React Plugin - // The following rules are made available via `eslint-plugin-react`. - - "react/display-name": 0, - "react/jsx-boolean-value": 0, - "react/jsx-no-comment-textnodes": 1, - "react/jsx-no-duplicate-props": 2, - "react/jsx-no-undef": 2, - "react/jsx-sort-props": 0, - "react/jsx-uses-react": 1, - "react/jsx-uses-vars": 1, - "react/no-did-mount-set-state": 1, - "react/no-did-update-set-state": 1, - "react/no-multi-comp": 0, - "react/no-string-refs": 1, - "react/no-unknown-property": 0, - "react/prop-types": 0, - "react/react-in-jsx-scope": 1, - "react/self-closing-comp": 1, - "react/wrap-multilines": 0, - - // React-Hooks Plugin - // The following rules are made available via `eslint-plugin-react-hooks` - "react-hooks/rules-of-hooks": "error", - - // React-Native Plugin - // The following rules are made available via `eslint-plugin-react-native` - - "react-native/no-inline-styles": 1, - - // Jest Plugin - // The following rules are made available via `eslint-plugin-jest`. - "jest/no-disabled-tests": 1, - "jest/no-focused-tests": 1, - "jest/no-identical-title": 1, - "jest/valid-expect": 1, - }, - - "overrides": [ - { - "files": [ - "**/__fixtures__/**/*.js", - "**/__mocks__/**/*.js", - "**/__tests__/**/*.js", - "jest/**/*.js", - "RNTester/**/*.js", - ], - "globals": { - // Expose some Jest globals for test helpers - "afterAll": true, - "afterEach": true, - "beforeAll": true, - "beforeEach": true, - "expect": true, - "jest": true, - }, - }, - { - "files": [ - "**/__tests__/**/*-test.js", - ], - "env": { - "jasmine": true, - "jest": true, - }, - }, - ], + "describe": true, + "by": true, + "device": true, + "beforeAll": true, + "beforeEach": true, + "afterAll": true, + "jest": true, + "jasmine": true + } } \ No newline at end of file diff --git a/README.md b/README.md index f44b71ed..4ae1a08d 100644 --- a/README.md +++ b/README.md @@ -54,25 +54,6 @@ getData = async () => { ``` -### useAsyncStorage hook - -React hooks (introduced in 16.8) allow you to use state and async requests without writing a class. For more info on hooks and how to use them, see [hooks documentation](https://reactjs.org/docs/hooks-intro.html) or the [hooks example](docs/Hooks.md) in this repo. - -`useAsyncStorage` has no hard-coded dependencies in react hooks, it is just a convenience wrapper around `AsyncStorage`. - -```js -import { useAsyncStorage } from '@react-native-community/async-storage'; -``` - -```jsx -const { - getItem, - setItem, - mergeItem, - removeItem -} = useAsyncStorage('@storage_key'); -``` - See docs for [api and more examples.](docs/API.md) ## Contribution diff --git a/docs/API.md b/docs/API.md index 8176fb4c..795e596b 100644 --- a/docs/API.md +++ b/docs/API.md @@ -502,7 +502,8 @@ static flushGetRequests(): void ## `useAsyncStorage` -Uses the new [hooks api](https://reactjs.org/docs/hooks-intro.html) to give you convenience functions so you can get, set, merge and delete a value for a given key from Async Storage. +**Note**: A hooks-like interface that we're experimenting with. This will change in the nearest future to fully leverage Hooks API, so feel free to [follow this discussion to learn more](https://github.com/react-native-community/react-native-async-storage/issues/32). + The `useAsyncStorage` returns an object that exposes all methods that allow you to interact with the stored value. diff --git a/example/src/App.js b/example/src/App.js index b21a713c..a4464835 100644 --- a/example/src/App.js +++ b/example/src/App.js @@ -15,7 +15,6 @@ import { Text, TouchableOpacity, View, - ScrollView, Keyboard, Button, } from 'react-native'; diff --git a/lib/hooks.js b/lib/hooks.js index 1ce9b910..3508c8df 100644 --- a/lib/hooks.js +++ b/lib/hooks.js @@ -22,4 +22,4 @@ export function useAsyncStorage(key: string): AsyncStorageHook { mergeItem: (...args) => AsyncStorage.mergeItem(key, ...args), removeItem: (...args) => AsyncStorage.removeItem(key, ...args), }; -} \ No newline at end of file +} diff --git a/package.json b/package.json index 35afb516..77d702e7 100644 --- a/package.json +++ b/package.json @@ -38,26 +38,16 @@ }, "devDependencies": { "@babel/core": "7.0.0", + "@react-native-community/eslint-config": "0.0.2", "@semantic-release/git": "7.0.8", "babel-core": "7.0.0-bridge.0", - "babel-eslint": "9.0.0", "babel-jest": "24.1.0", "babel-plugin-module-resolver": "3.1.3", "detox": "10.0.7", "eslint": "5.1.0", - "eslint-config-fb-strict": "22.1.0", - "eslint-config-fbjs": "2.0.1", - "eslint-plugin-eslint-comments": "3.0.1", - "eslint-plugin-flowtype": "2.43.0", - "eslint-plugin-jest": "21.8.0", - "eslint-plugin-prettier": "2.6.0", - "eslint-plugin-react": "7.8.2", - "eslint-plugin-react-hooks": "1.0.1", - "eslint-plugin-react-native": "3.5.0", "flow-bin": "0.86.0", "jest": "24.1.0", "metro-react-native-babel-preset": "0.51.1", - "prettier": "1.16.4", "react": "16.6.3", "react-native": "0.58.4", "react-test-renderer": "16.6.3", diff --git a/yarn.lock b/yarn.lock index a8cf8105..a796f97e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -715,6 +715,21 @@ universal-user-agent "^2.0.0" url-template "^2.0.8" +"@react-native-community/eslint-config@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@react-native-community/eslint-config/-/eslint-config-0.0.2.tgz#042224762e00ef06b45693a14be78ebda5fb7def" + integrity sha512-oKtMR046Ptfjvzd67MPm7Q8a5H8MeMsKB7E5bKgcMoybdZBmrsqo3Fn49FCKwc6yHd4KUkTyQihE4Fgk9jaanA== + dependencies: + babel-eslint "9.0.0" + eslint-plugin-eslint-comments "^3.0.1" + eslint-plugin-flowtype "2.43.0" + eslint-plugin-jest "21.8.0" + eslint-plugin-prettier "2.6.0" + eslint-plugin-react "7.8.2" + eslint-plugin-react-hooks "^1.0.1" + eslint-plugin-react-native "3.5.0" + prettier "1.13.6" + "@semantic-release/commit-analyzer@^6.1.0": version "6.1.0" resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.1.0.tgz#32bbe3c23da86e23edf072fbb276fa2f383fcb17" @@ -2579,30 +2594,13 @@ escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -eslint-config-fb-strict@22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-fb-strict/-/eslint-config-fb-strict-22.1.0.tgz#6a81785d45748d6c753442772b84da0aca13c45f" - integrity sha512-UFJeCwl7Zg7s3d90PjedcNbjpMBzyojTiF9H6lEJMp/XU8oSlSDzk1UFOz41YqdG2BFyg5xsRbQngquJkTxrxg== - dependencies: - eslint-config-fbjs "^2.0.1" - -eslint-config-fbjs@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/eslint-config-fbjs/-/eslint-config-fbjs-2.0.1.tgz#395896fd740e0e28dc1c2072e3bc982e88247df5" - integrity sha512-nZ/JByixNK/8epeQqmrtNCYYMXCjHoPkJwHaHg4aZyZlS62YLttDSWYE6ISGl070V+o6dkFbDALceWaO3Po+Sw== - -eslint-config-fbjs@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-fbjs/-/eslint-config-fbjs-2.1.0.tgz#bfe4f8c2d2282bfe515359553905d830e3a5d12f" - integrity sha512-wh7Lveo51V3/SUydWtR2VEU8wNfSHt5V7YzIUKTRkHF3kvkCwFtM6Jgsn+xBNkjxZGpfWgNJN/drk1LLx64Dww== - -eslint-plugin-eslint-comments@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.0.1.tgz#baafb713584c0de7ee588710720e580bcc28cfbb" - integrity sha512-7zU6gCulKVmfG3AZdnvDxzfHaGdvkA8tsLiKbneeI/TlVaulJsRzOyMCctH9QTobKVJ6LIsiJbrkSKkgcFLHxw== +eslint-plugin-eslint-comments@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.1.tgz#32ff0afba8a48e17073817e6d03fbc5622f735b7" + integrity sha512-GZDKhOFqJLKlaABX+kdoLskcTINMrVOWxGca54KcFb1QCPd0CLmqgAMRxkkUfGSmN+5NJUMGh7NGccIMcWPSfQ== dependencies: escape-string-regexp "^1.0.5" - ignore "^3.3.8" + ignore "^5.0.5" eslint-plugin-flowtype@2.43.0: version "2.43.0" @@ -2624,10 +2622,10 @@ eslint-plugin-prettier@2.6.0: fast-diff "^1.1.1" jest-docblock "^21.0.0" -eslint-plugin-react-hooks@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.0.1.tgz#76b6fb4edafab02eab0090078977687157605dd9" - integrity sha512-yNhvY7EFBp0mq0Bt8BHoS57GwJ4e1qSYdvDFSfPnjmiSmyGUfQFQGcQs4K0JQFDGopWkURWq58psbUJIhWZ2Kg== +eslint-plugin-react-hooks@^1.0.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.5.0.tgz#cdd958cfff55bd5fa4f84db90d1490fb5ca4ae2b" + integrity sha512-iwDuWR2ReRgvJsNm8fXPtTKdg78IVQF8I4+am3ntztPf/+nPnWZfArFu6aXpaC75/iCYRrkqI8nPCYkxJstmpA== eslint-plugin-react-native-globals@^0.1.1: version "0.1.2" @@ -3699,7 +3697,7 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^3.3.3, ignore@^3.3.8: +ignore@^3.3.3: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== @@ -3709,6 +3707,11 @@ ignore@^4.0.3: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +ignore@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.0.5.tgz#c663c548d6ce186fb33616a8ccb5d46e56bdbbf9" + integrity sha512-kOC8IUb8HSDMVcYrDVezCxpJkzSQWTAzf3olpKM6o9rM5zpojx23O0Fl8Wr4+qJ6ZbPEHqf1fdwev/DS7v7pmA== + image-size@^0.6.0: version "0.6.3" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz#e7e5c65bb534bd7cdcedd6cb5166272a85f75fb2" @@ -6748,10 +6751,10 @@ preserve@^0.2.0: resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= -prettier@1.16.4: - version "1.16.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.4.tgz#73e37e73e018ad2db9c76742e2647e21790c9717" - integrity sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g== +prettier@1.13.6: + version "1.13.6" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.6.tgz#00ae0b777ad92f81a9e7a1df2f0470b6dab0cb44" + integrity sha512-p5eqCNiohWZN++7aJXUVj0JgLqHCPLf9GLIcLBHGNWs4Y9FJOPs6+KNO2WT0udJIQJTbeZFrJkjzjcb8fkAYYQ== pretty-format@24.0.0-alpha.6: version "24.0.0-alpha.6"