From 6e3b8fa029c6f475d99a750f31bf260387c40a29 Mon Sep 17 00:00:00 2001 From: Alex <apuret@e-biz.fr> Date: Mon, 12 Oct 2020 18:35:26 +0200 Subject: [PATCH] wip with lerna --- deadlock-theia-core/config.ts | 14 ++++++ .../src => deadlock-theia-core}/gitMission.ts | 4 +- deadlock-theia-core/package-lock.json | 49 +++++++++++++++++++ deadlock-theia-core/package.json | 15 ++++++ .../src => deadlock-theia-core}/userConfig.ts | 23 +++------ .../.gitignore | 0 .../command-recorder.js | 0 .../commit.js | 0 deadlock-theia-recorder/package-lock.json | 49 +++++++++++++++++++ deadlock-theia-recorder/package.json | 16 ++++++ {recorder => deadlock-theia-recorder}/test.js | 0 lerna.json | 8 +++ package.json | 7 +++ plugins/deadlock-extension/package-lock.json | 9 ++-- plugins/deadlock-extension/package.json | 8 +-- plugins/deadlock-extension/src/extension.ts | 5 +- .../deadlock-extension/src/userConfigTheia.ts | 14 ++++++ 17 files changed, 193 insertions(+), 28 deletions(-) create mode 100644 deadlock-theia-core/config.ts rename {plugins/deadlock-extension/src => deadlock-theia-core}/gitMission.ts (94%) create mode 100644 deadlock-theia-core/package-lock.json create mode 100644 deadlock-theia-core/package.json rename {plugins/deadlock-extension/src => deadlock-theia-core}/userConfig.ts (70%) rename {recorder => deadlock-theia-recorder}/.gitignore (100%) rename {recorder => deadlock-theia-recorder}/command-recorder.js (100%) rename {recorder => deadlock-theia-recorder}/commit.js (100%) create mode 100644 deadlock-theia-recorder/package-lock.json create mode 100644 deadlock-theia-recorder/package.json rename {recorder => deadlock-theia-recorder}/test.js (100%) create mode 100644 lerna.json create mode 100644 package.json create mode 100644 plugins/deadlock-extension/src/userConfigTheia.ts diff --git a/deadlock-theia-core/config.ts b/deadlock-theia-core/config.ts new file mode 100644 index 00000000..34d4aeff --- /dev/null +++ b/deadlock-theia-core/config.ts @@ -0,0 +1,14 @@ +import * as path from 'path'; + +// DEV CONFIG + +if (!process.env['HOME']) { + console.error('Could not get home user.'); +} + +const home = process.env['HOME'] ? process.env['HOME'] : ""; +export const DEADLOCK_EXTENSION_PATH = path.join(home, 'deadlock-extension'); +export const CONFIG_PATH = path.join(DEADLOCK_EXTENSION_PATH, 'config'); +export const USER_CHALLENGE_PATH = path.join(CONFIG_PATH, 'user-challenge.json'); +export const PROJECT_SRC_PATH = path.join(DEADLOCK_EXTENSION_PATH, 'project') +export const PROJECT_THEIA_PATH = path.join(DEADLOCK_EXTENSION_PATH, 'project-theia') \ No newline at end of file diff --git a/plugins/deadlock-extension/src/gitMission.ts b/deadlock-theia-core/gitMission.ts similarity index 94% rename from plugins/deadlock-extension/src/gitMission.ts rename to deadlock-theia-core/gitMission.ts index 7f6efc17..302fa76c 100644 --- a/plugins/deadlock-extension/src/gitMission.ts +++ b/deadlock-theia-core/gitMission.ts @@ -1,6 +1,6 @@ -import userConfig, { UserConfig } from "./userConfig"; import simpleGit, { SimpleGit, SimpleGitOptions } from 'simple-git'; import { PROJECT_SRC_PATH } from './config'; +import UserConfig from './userConfig'; const DEFAULT_REMOTE = 'deadlock'; const DEFAULT_BRANCH = 'master'; @@ -19,7 +19,7 @@ class GitMission { this.git = simpleGit(options); } - async init() { + async init(userConfig: UserConfig) { try { console.log('Init Git mission..') console.log('prijectSRC PATH', PROJECT_SRC_PATH); diff --git a/deadlock-theia-core/package-lock.json b/deadlock-theia-core/package-lock.json new file mode 100644 index 00000000..097ea179 --- /dev/null +++ b/deadlock-theia-core/package-lock.json @@ -0,0 +1,49 @@ +{ + "name": "deadlock-theia-core", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "requires": { + "debug": "^4.1.1" + } + }, + "@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" + }, + "@types/node": { + "version": "14.11.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.8.tgz", + "integrity": "sha512-KPcKqKm5UKDkaYPTuXSx8wEP7vE9GnuaXIZKijwRYcePpZFDVuy2a57LarFKiORbHOuTOOwYzxVxcUzsh2P2Pw==" + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "simple-git": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-2.21.0.tgz", + "integrity": "sha512-rohCHmEjD/ESXFLxF4bVeqgdb4Awc65ZyyuCKl3f7BvgMbZOBa/Ye3HN/GFnvruiUOAWWNupxhz3Rz5/3vJLTg==", + "requires": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.1.1" + } + } + } +} diff --git a/deadlock-theia-core/package.json b/deadlock-theia-core/package.json new file mode 100644 index 00000000..ffd2b7c5 --- /dev/null +++ b/deadlock-theia-core/package.json @@ -0,0 +1,15 @@ +{ + "name": "deadlock-theia-core", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@types/node": "^14.11.8", + "simple-git": "^2.21.0" + } +} diff --git a/plugins/deadlock-extension/src/userConfig.ts b/deadlock-theia-core/userConfig.ts similarity index 70% rename from plugins/deadlock-extension/src/userConfig.ts rename to deadlock-theia-core/userConfig.ts index ac013590..0053db9b 100644 --- a/plugins/deadlock-extension/src/userConfig.ts +++ b/deadlock-theia-core/userConfig.ts @@ -19,12 +19,9 @@ import { USER_CHALLENGE_PATH } from './config'; * } */ -export class UserConfig { - private static instance: UserConfig; +export abstract class UserConfig { private userConfigJson: any | undefined; - private constructor() { } - getPaths(): Map<number, string> { return this.userConfigJson?.paths; } @@ -53,19 +50,15 @@ export class UserConfig { return this.userConfigJson?.missionId; } - public static getInstance(): UserConfig { - if (!UserConfig.instance) { - UserConfig.instance = new UserConfig(); - } - - return UserConfig.instance; - } + abstract async loadUserChallengeFile(): Promise<string>; public async init() { try { - const userConfig = await vscode.workspace.openTextDocument(vscode.Uri.parse(USER_CHALLENGE_PATH)); + // const userConfig = await vscode.workspace.openTextDocument(vscode.Uri.parse(USER_CHALLENGE_PATH)); + + const userConfig = await this.loadUserChallengeFile(); - this.userConfigJson = JSON.parse(userConfig.getText()); + this.userConfigJson = JSON.parse(userConfig); return Promise.resolve(); } catch (e) { console.error(e); @@ -74,6 +67,4 @@ export class UserConfig { } } -const userConfig = UserConfig.getInstance(); - -export default userConfig; +export default UserConfig; diff --git a/recorder/.gitignore b/deadlock-theia-recorder/.gitignore similarity index 100% rename from recorder/.gitignore rename to deadlock-theia-recorder/.gitignore diff --git a/recorder/command-recorder.js b/deadlock-theia-recorder/command-recorder.js similarity index 100% rename from recorder/command-recorder.js rename to deadlock-theia-recorder/command-recorder.js diff --git a/recorder/commit.js b/deadlock-theia-recorder/commit.js similarity index 100% rename from recorder/commit.js rename to deadlock-theia-recorder/commit.js diff --git a/deadlock-theia-recorder/package-lock.json b/deadlock-theia-recorder/package-lock.json new file mode 100644 index 00000000..a6928b14 --- /dev/null +++ b/deadlock-theia-recorder/package-lock.json @@ -0,0 +1,49 @@ +{ + "name": "deadlock-theia-recorder", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "requires": { + "debug": "^4.1.1" + } + }, + "@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" + }, + "@types/node": { + "version": "14.11.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.8.tgz", + "integrity": "sha512-KPcKqKm5UKDkaYPTuXSx8wEP7vE9GnuaXIZKijwRYcePpZFDVuy2a57LarFKiORbHOuTOOwYzxVxcUzsh2P2Pw==" + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "simple-git": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-2.21.0.tgz", + "integrity": "sha512-rohCHmEjD/ESXFLxF4bVeqgdb4Awc65ZyyuCKl3f7BvgMbZOBa/Ye3HN/GFnvruiUOAWWNupxhz3Rz5/3vJLTg==", + "requires": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.1.1" + } + } + } +} diff --git a/deadlock-theia-recorder/package.json b/deadlock-theia-recorder/package.json new file mode 100644 index 00000000..c962c1ce --- /dev/null +++ b/deadlock-theia-recorder/package.json @@ -0,0 +1,16 @@ +{ + "name": "deadlock-theia-recorder", + "version": "1.0.0", + "description": "", + "main": "command-recorder.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@types/node": "^14.11.8", + "deadlock-theia-core": "^1.0.0", + "simple-git": "^2.21.0" + } +} diff --git a/recorder/test.js b/deadlock-theia-recorder/test.js similarity index 100% rename from recorder/test.js rename to deadlock-theia-recorder/test.js diff --git a/lerna.json b/lerna.json new file mode 100644 index 00000000..b34ead76 --- /dev/null +++ b/lerna.json @@ -0,0 +1,8 @@ +{ + "packages": [ + "plugins/*", + "deadlock-theia-core/", + "deadlock-theia-recorder/" + ], + "version": "0.0.0" +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..99f61af8 --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "name": "root", + "private": true, + "devDependencies": { + "lerna": "^3.22.1" + } +} diff --git a/plugins/deadlock-extension/package-lock.json b/plugins/deadlock-extension/package-lock.json index 743451f8..7f50f80e 100644 --- a/plugins/deadlock-extension/package-lock.json +++ b/plugins/deadlock-extension/package-lock.json @@ -1,5 +1,5 @@ { - "name": "deadlock-coding", + "name": "deadlock-extension-coding", "version": "0.0.1", "lockfileVersion": 1, "requires": true, @@ -67,10 +67,9 @@ "integrity": "sha512-j8XXj6/l9kFvCwMyVqozznqpd/nk80krrW+QiIJN60Uu9gX5Pvn4/qPJ2YngQrR3QREPwmrE1f9/EWKVTFzoEw==" }, "@types/node": { - "version": "12.12.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.35.tgz", - "integrity": "sha512-ASYsaKecA7TUsDrqIGPNk3JeEox0z/0XR/WsJJ8BIX/9+SkMSImQXKWfU/yBrSyc7ZSE/NPqLu36Nur0miCFfQ==", - "dev": true + "version": "14.11.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.8.tgz", + "integrity": "sha512-KPcKqKm5UKDkaYPTuXSx8wEP7vE9GnuaXIZKijwRYcePpZFDVuy2a57LarFKiORbHOuTOOwYzxVxcUzsh2P2Pw==" }, "@types/vscode": { "version": "1.38.0", diff --git a/plugins/deadlock-extension/package.json b/plugins/deadlock-extension/package.json index 6d8578e5..076819dd 100644 --- a/plugins/deadlock-extension/package.json +++ b/plugins/deadlock-extension/package.json @@ -1,5 +1,5 @@ { - "name": "deadlock-coding", + "name": "deadlock-extension-coding", "description": "Deadlock Coding", "version": "0.0.1", "publisher": "Deadlock", @@ -61,16 +61,18 @@ }, "dependencies": { "@types/marked": "^1.1.0", + "@types/node": "^14.11.8", + "deadlock-theia-core": "^1.0.0", "keycloak-js": "^11.0.0", "marked": "^1.1.1", "simple-git": "^2.21.0" }, "devDependencies": { "@types/node": "^12.12.0", + "@types/vscode": "^1.38.0", "@typescript-eslint/eslint-plugin": "^3.0.2", "@typescript-eslint/parser": "^3.0.2", "eslint": "^7.1.0", - "typescript": "^3.9.4", - "@types/vscode": "^1.38.0" + "typescript": "^3.9.4" } } diff --git a/plugins/deadlock-extension/src/extension.ts b/plugins/deadlock-extension/src/extension.ts index d518c1b1..d6277494 100644 --- a/plugins/deadlock-extension/src/extension.ts +++ b/plugins/deadlock-extension/src/extension.ts @@ -8,8 +8,9 @@ import View from './view/view'; import { OPEN_BRIEFING_COMMAND } from './command'; import { PROJECT_SRC_PATH, PROJECT_THEIA_PATH } from './config'; -import userConfig from './userConfig'; -import gitMission from './gitMission'; +import userConfig from './userConfigTheia'; +import gitMission from 'deadlock-theia-core/gitMission'; + export function initViews(extensionPath: string) { new BriefingView(extensionPath); diff --git a/plugins/deadlock-extension/src/userConfigTheia.ts b/plugins/deadlock-extension/src/userConfigTheia.ts new file mode 100644 index 00000000..173bd9ff --- /dev/null +++ b/plugins/deadlock-extension/src/userConfigTheia.ts @@ -0,0 +1,14 @@ +import UserConfig from "deadlock-theia-core/userConfig"; + +class UserConfigTheia extends UserConfig { + + constructor() { + super(); + } + + loadUserChallengeFile(): Promise<string> { + throw new Error("Method not implemented."); + } +} + +export default UserConfigTheia; \ No newline at end of file -- GitLab