diff --git a/package-lock.json b/package-lock.json index 64c17189..7e78b911 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1442,6 +1442,12 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "deep-extend": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz", + "integrity": "sha1-eha6aXKRMjQFBhcElLyD9wdv4I8=", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -3279,6 +3285,12 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, "inquirer": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", @@ -4554,6 +4566,15 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "nested-error-stacks": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.0.tgz", + "integrity": "sha1-mLL/rvtGEPo5NvHnFDXTBwDeKEA=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -5091,6 +5112,26 @@ } } }, + "rc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.0.3.tgz", + "integrity": "sha1-Ub8o0h8TqTJFKKljNGAWGtmjn3c=", + "dev": true, + "requires": { + "deep-extend": "0.2.11", + "ini": "1.3.5", + "minimist": "0.0.8", + "strip-json-comments": "0.1.3" + }, + "dependencies": { + "strip-json-comments": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz", + "integrity": "sha1-Fkxk43Coo8wAyeAbU55WmCPw7lQ=", + "dev": true + } + } + }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -5276,6 +5317,25 @@ "resolve-from": "1.0.1" } }, + "requireg": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.1.7.tgz", + "integrity": "sha1-nVIQ0q+ccYvaujwqDO/rvIRrVsU=", + "dev": true, + "requires": { + "nested-error-stacks": "2.0.0", + "rc": "1.0.3", + "resolve": "0.6.3" + }, + "dependencies": { + "resolve": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", + "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY=", + "dev": true + } + } + }, "resolve": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", @@ -6894,21 +6954,14 @@ "optional": true }, "unibeautify": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/unibeautify/-/unibeautify-0.10.1.tgz", - "integrity": "sha512-TfcvQz11EiP+iDAgv6bK3Q9SHS5LYohb9zgUTCyy4xF+G0cu4KdW17y0zrvUYvSCZRL3Sm3Yw+7oBQWInfA/4Q==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/unibeautify/-/unibeautify-0.11.1.tgz", + "integrity": "sha512-dPoGjgwxVjLZawTVsCM/dfotelRWev0n1X+b9nv58FrCzl45Gh9Zz6CWzPyDPoS9NlMzT2I8jHLLVbUSVnPRkw==", "dev": true, "requires": { "diff": "3.4.0", - "lodash": "4.17.5" - }, - "dependencies": { - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", - "dev": true - } + "lodash": "4.17.5", + "requireg": "0.1.7" } }, "union-value": { diff --git a/package.json b/package.json index 33b853db..ae659943 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ }, "homepage": "https://github.com/Unibeautify/beautifier-eslint#readme", "peerDependencies": { - "unibeautify": ">= 0.9.0", + "unibeautify": ">= 0.11.1", "eslint": "^4.19.1" }, "devDependencies": { @@ -44,7 +44,7 @@ "tslint-clean-code": "^0.2.6", "tslint-microsoft-contrib": "^5.0.3", "typescript": "^2.7.2", - "unibeautify": "^0.10.1" + "unibeautify": "^0.11.1" }, "dependencies": { "read-pkg-up": "^3.0.0" diff --git a/src/index.ts b/src/index.ts index 862869d7..510ab5f6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,28 +1,41 @@ -import { Beautifier, Language, BeautifierBeautifyData } from "unibeautify"; +import { + Beautifier, + Language, + BeautifierBeautifyData, + DependencyType, + NodeDependency, +} from "unibeautify"; import * as readPkgUp from "read-pkg-up"; import options from "./options"; -const CLIEngine = require("eslint").CLIEngine; const { pkg } = readPkgUp.sync({ cwd: __dirname }); export const beautifier: Beautifier = { name: "ESLint", package: pkg, + dependencies: [ + { + type: DependencyType.Node, + name: "ESLint", + package: "eslint", + }, + ], options: { JavaScript: options.JavaScript, }, - beautify(data: BeautifierBeautifyData) { + beautify({ text, options, dependencies }: BeautifierBeautifyData) { return new Promise((resolve, reject) => { + const { CLIEngine } = dependencies.get("ESLint").package; const cli = new CLIEngine({ fix: true, parserOptions: { ecmaVersion: 6, }, - rules: data.options, + rules: options, }); - const text = cli.executeOnText(data.text).results[0].output; - if (text) { - return resolve(text); + const result = cli.executeOnText(text).results[0].output; + if (result) { + return resolve(result); } else { - return resolve(data.text); + return resolve(text); } }); },