From a2244019c9a23ec3265a1390abd10ed5e61cbc2a Mon Sep 17 00:00:00 2001 From: Pascal Precht Date: Thu, 16 Jan 2020 13:42:18 +0100 Subject: [PATCH] refactor(@embark/suggestions): move suggestions API into plugin --- packages/core/console/src/lib/index.ts | 4 - packages/embark/package.json | 1 + packages/embark/src/cmd/cmd_controller.js | 2 + packages/embark/tsconfig.json | 3 + packages/plugins/suggestions/README.md | 7 ++ packages/plugins/suggestions/package.json | 76 +++++++++++++++++++ .../suggestions/src/index.ts} | 10 +-- .../suggestions}/suggestions.json | 0 .../suggestions/test/suggestions.spec.js | 8 ++ packages/plugins/suggestions/tsconfig.json | 23 ++++++ packages/plugins/suggestions/tslint.json | 4 + tsconfig.json | 3 + 12 files changed, 128 insertions(+), 13 deletions(-) create mode 100644 packages/plugins/suggestions/README.md create mode 100644 packages/plugins/suggestions/package.json rename packages/{core/console/src/lib/suggestions.ts => plugins/suggestions/src/index.ts} (94%) rename packages/{core/console => plugins/suggestions}/suggestions.json (100%) create mode 100644 packages/plugins/suggestions/test/suggestions.spec.js create mode 100644 packages/plugins/suggestions/tsconfig.json create mode 100644 packages/plugins/suggestions/tslint.json diff --git a/packages/core/console/src/lib/index.ts b/packages/core/console/src/lib/index.ts index 4f91bae41..7897836ac 100644 --- a/packages/core/console/src/lib/index.ts +++ b/packages/core/console/src/lib/index.ts @@ -6,7 +6,6 @@ import { dappPath, escapeHtml, exit, jsonFunctionReplacer } from "embark-utils"; import stringify from "json-stringify-safe"; import { dirname } from "path"; import util from "util"; -import Suggestions from "./suggestions"; type MatchFunction = (cmd: string) => boolean; interface HelpDescription { @@ -26,7 +25,6 @@ export default class Console { private config: any; private history: string[]; private cmdHistoryFile: string; - private suggestions?: Suggestions; // private providerReady: boolean; private helpCmds: any; @@ -82,8 +80,6 @@ export default class Console { return; } this.registerApi(); - - this.suggestions = new Suggestions(embark, options); } private get isEmbarkConsole() { diff --git a/packages/embark/package.json b/packages/embark/package.json index 242a1a774..5776f81e8 100644 --- a/packages/embark/package.json +++ b/packages/embark/package.json @@ -84,6 +84,7 @@ "embark-i18n": "^5.1.0-nightly.0", "embark-logger": "^5.1.0-nightly.0", "embark-reset": "^5.1.0-nightly.0", + "embark-suggestions": "^5.1.0-nightly.0", "embark-utils": "^5.1.0-nightly.0", "eth-ens-namehash": "2.0.8", "find-up": "2.1.0", diff --git a/packages/embark/src/cmd/cmd_controller.js b/packages/embark/src/cmd/cmd_controller.js index aef1f2560..99e538815 100644 --- a/packages/embark/src/cmd/cmd_controller.js +++ b/packages/embark/src/cmd/cmd_controller.js @@ -176,6 +176,7 @@ class EmbarkController { engine.registerModuleGroup("cockpit"); engine.registerModulePackage('embark-deploy-tracker', { plugins: engine.plugins }); engine.registerModulePackage("embark-debugger"); + engine.registerModulePackage('embark-suggestions'); // load custom plugins engine.loadDappPlugins(); @@ -391,6 +392,7 @@ class EmbarkController { } engine.registerModulePackage('embark-deploy-tracker', { plugins: engine.plugins }); engine.registerModulePackage("embark-debugger"); + engine.registerModulePackage('embark-suggestions'); // load custom plugins engine.loadDappPlugins(); diff --git a/packages/embark/tsconfig.json b/packages/embark/tsconfig.json index 6bb68246d..5cf9a0288 100644 --- a/packages/embark/tsconfig.json +++ b/packages/embark/tsconfig.json @@ -42,6 +42,9 @@ { "path": "../plugins/solidity" }, + { + "path": "../plugins/suggestions" + }, { "path": "../plugins/transaction-logger" }, diff --git a/packages/plugins/suggestions/README.md b/packages/plugins/suggestions/README.md new file mode 100644 index 000000000..c7062a94e --- /dev/null +++ b/packages/plugins/suggestions/README.md @@ -0,0 +1,7 @@ +# `embark-suggestions + +> Suggestions plugin for Embark + +Visit [embark.status.im](https://embark.status.im/) to get started with +[Embark](https://github.com/embark-framework/embark). + diff --git a/packages/plugins/suggestions/package.json b/packages/plugins/suggestions/package.json new file mode 100644 index 000000000..a85c8a3be --- /dev/null +++ b/packages/plugins/suggestions/package.json @@ -0,0 +1,76 @@ +{ + "name": "embark-suggestions", + "version": "5.1.0-nightly.0", + "author": "Iuri Matias ", + "contributors": [], + "description": "Suggestions plugin for Embark", + "homepage": "https://github.com/embark-framework/embark/tree/master/packages/plugins/suggestions#readme", + "bugs": "https://github.com/embark-framework/embark/issues", + "keywords": [], + "files": [ + "dist" + ], + "license": "MIT", + "repository": { + "directory": "packages/plugins/suggestions", + "type": "git", + "url": "https://github.com/embark-framework/embark.git" + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "embark-collective": { + "build:node": true, + "typecheck": true + }, + "scripts": { + "_build": "npm run solo -- build", + "_typecheck": "npm run solo -- typecheck", + "ci": "npm run qa", + "clean": "npm run reset", + "lint": "npm-run-all lint:*", + "lint:ts": "tslint -c tslint.json \"src/**/*.ts\"", + "qa": "npm-run-all lint _typecheck _build test", + "reset": "npx rimraf dist embark-*.tgz package", + "solo": "embark-solo", + "test": "jest" + }, + "dependencies": { + "@babel/runtime-corejs3": "7.7.4", + "core-js": "3.4.3", + "embark-core": "^5.1.0-nightly.0", + "embark-utils": "^5.1.0-nightly.0", + "fs-extra": "8.1.0" + }, + "devDependencies": { + "@babel/core": "7.7.4", + "babel-jest": "24.9.0", + "embark-solo": "^5.1.0-nightly.0", + "embark-testing": "^5.1.0-nightly.0", + "eslint": "5.7.0", + "npm-run-all": "4.1.5", + "rimraf": "3.0.0", + "tslint": "5.20.1", + "typescript": "3.7.2" + }, + "engines": { + "node": ">=10.17.0 <12.0.0", + "npm": ">=6.11.3", + "yarn": ">=1.19.1" + }, + "jest": { + "collectCoverage": true, + "testEnvironment": "node", + "testMatch": [ + "**/test/**/*.js" + ], + "transform": { + "\\.(js|ts)$": [ + "babel-jest", + { + "rootMode": "upward" + } + ] + } + } +} + diff --git a/packages/core/console/src/lib/suggestions.ts b/packages/plugins/suggestions/src/index.ts similarity index 94% rename from packages/core/console/src/lib/suggestions.ts rename to packages/plugins/suggestions/src/index.ts index 41bd7e47c..4f0784f63 100644 --- a/packages/core/console/src/lib/suggestions.ts +++ b/packages/plugins/suggestions/src/index.ts @@ -3,7 +3,7 @@ import { fuzzySearch } from "embark-utils"; import { readJsonSync } from "fs-extra"; import { join } from "path"; -const { suggestions: defaultSuggestions } = readJsonSync(join(__dirname, "../../suggestions.json")); +const { suggestions: defaultSuggestions } = readJsonSync(join(__dirname, "../suggestions.json")); interface ContractsManager { [key: string]: any; @@ -17,13 +17,6 @@ interface Suggestion { type SuggestionsList = Suggestion[]; -// ============================================= -// ============================================= -// TODO: this should be moved to its own module -// it's a plugin not a core module -// ============================================= -// ============================================= - export default class Suggestions { private embark: Embark; private events: EmbarkEvents; @@ -35,7 +28,6 @@ export default class Suggestions { this.embark = embark; this.events = embark.events; this.contracts = {}; - this.registerApi(); this.listenToEvents(); } diff --git a/packages/core/console/suggestions.json b/packages/plugins/suggestions/suggestions.json similarity index 100% rename from packages/core/console/suggestions.json rename to packages/plugins/suggestions/suggestions.json diff --git a/packages/plugins/suggestions/test/suggestions.spec.js b/packages/plugins/suggestions/test/suggestions.spec.js new file mode 100644 index 000000000..28292f8b5 --- /dev/null +++ b/packages/plugins/suggestions/test/suggestions.spec.js @@ -0,0 +1,8 @@ +import assert from 'assert'; + +describe('plugins/suggestions', () => { + + it('should run test', () => { + assert.ok(true); + }); +}); diff --git a/packages/plugins/suggestions/tsconfig.json b/packages/plugins/suggestions/tsconfig.json new file mode 100644 index 000000000..493d709cd --- /dev/null +++ b/packages/plugins/suggestions/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "composite": true, + "declarationDir": "./dist", + "rootDir": "./src", + "tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embark-suggestions.tsbuildinfo" + }, + "extends": "../../../tsconfig.base.json", + "include": [ + "src/**/*" + ], + "references": [ + { + "path": "../../core/core" + }, + { + "path": "../../core/utils" + }, + { + "path": "../../utils/testing" + } + ] +} diff --git a/packages/plugins/suggestions/tslint.json b/packages/plugins/suggestions/tslint.json new file mode 100644 index 000000000..1bdfa34f9 --- /dev/null +++ b/packages/plugins/suggestions/tslint.json @@ -0,0 +1,4 @@ +{ + "extends": "../../../tslint.json" +} + diff --git a/tsconfig.json b/tsconfig.json index ed48d5b19..10d353f23 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -118,6 +118,9 @@ { "path": "packages/plugins/specialconfigs" }, + { + "path": "packages/plugins/suggestions" + }, { "path": "packages/plugins/swarm" },