From cdc760d81105f3ecc53f974958533ce44451967c Mon Sep 17 00:00:00 2001 From: Dmitry Krupenya Date: Mon, 18 May 2020 20:29:16 +0300 Subject: [PATCH] chore: move bootstrap to core --- webapp/packages/builder/configs/babel.config.js | 10 +++++----- .../builder/configs/webpack/common-exp.js | 2 +- .../builder/configs/webpack/common-root.js | 9 +++++---- .../packages/builder/configs/webpack/dev-exp.js | 2 +- webapp/packages/builder/configs/webpack/exp.js | 2 +- webapp/packages/builder/src/index.js | 9 +++++++++ webapp/packages/builder/tsconfig.json | 2 +- .../packages/{builder => core}/src/ErrorPage.tsx | 0 .../src/index.ts => core/src/bootstrap.ts} | 16 ++++------------ webapp/packages/core/src/index.ts | 2 +- .../{builder => core}/src/renderLayout.tsx | 0 11 files changed, 28 insertions(+), 26 deletions(-) create mode 100644 webapp/packages/builder/src/index.js rename webapp/packages/{builder => core}/src/ErrorPage.tsx (100%) rename webapp/packages/{builder/src/index.ts => core/src/bootstrap.ts} (58%) rename webapp/packages/{builder => core}/src/renderLayout.tsx (100%) diff --git a/webapp/packages/builder/configs/babel.config.js b/webapp/packages/builder/configs/babel.config.js index aa436143dd..cdc6a0db47 100644 --- a/webapp/packages/builder/configs/babel.config.js +++ b/webapp/packages/builder/configs/babel.config.js @@ -2,16 +2,16 @@ module.exports = { presets: [ "@babel/preset-env", "@babel/preset-react", - ['@babel/preset-typescript', { isTSX: true, allExtensions: true }], + // ['@babel/preset-typescript', { isTSX: true, allExtensions: true }], ], plugins: [ '@babel/plugin-transform-runtime', '@babel/plugin-syntax-dynamic-import', - 'babel-plugin-transform-typescript-metadata', + // 'babel-plugin-transform-typescript-metadata', '@babel/plugin-proposal-optional-chaining', - ['@babel/plugin-proposal-decorators', { legacy: true }], + // ['@babel/plugin-proposal-decorators', { legacy: true }], ['@babel/plugin-proposal-class-properties', { loose: true }], - 'react-require', - 'reshadow/babel', + // 'react-require', + // 'reshadow/babel', ], } diff --git a/webapp/packages/builder/configs/webpack/common-exp.js b/webapp/packages/builder/configs/webpack/common-exp.js index b8878bf5af..ce9cbef6db 100644 --- a/webapp/packages/builder/configs/webpack/common-exp.js +++ b/webapp/packages/builder/configs/webpack/common-exp.js @@ -74,7 +74,7 @@ module.exports = (env, argv) => merge(commonConfig(env, argv), { module: { rules: [ { - test: /\.tsx?$/, + test: /\.js?$/, use: [ { loader: StringReplacePlugin.replace({ diff --git a/webapp/packages/builder/configs/webpack/common-root.js b/webapp/packages/builder/configs/webpack/common-root.js index becb4f9072..9e638cb8e3 100644 --- a/webapp/packages/builder/configs/webpack/common-root.js +++ b/webapp/packages/builder/configs/webpack/common-root.js @@ -71,7 +71,8 @@ module.exports = (env, argv) => { return { resolve: { - extensions: ['.ts', '.tsx', '.js', '.jsx'], + // extensions: ['.ts', '.tsx', '.js', '.jsx'], + extensions: ['.js'], }, module: { rules: [ @@ -152,9 +153,9 @@ module.exports = (env, argv) => { modules: true, modulesCount: 100, profile: true, - handler: (percentage, message, ...args) => { - // custom logic - } + // handler: (percentage, message, ...args) => { + // // custom logic + // } }), new CircularDependencyPlugin({ // exclude detection of files based on a RegExp diff --git a/webapp/packages/builder/configs/webpack/dev-exp.js b/webapp/packages/builder/configs/webpack/dev-exp.js index c51793afa3..1ef3f59665 100644 --- a/webapp/packages/builder/configs/webpack/dev-exp.js +++ b/webapp/packages/builder/configs/webpack/dev-exp.js @@ -9,7 +9,7 @@ module.exports = (env, argv) => merge(commonConfig(env, argv), { // 'react-hot-loader/patch', // activate HMR for React 'webpack-dev-server/client?http://localhost:3100',// bundle the client for webpack-dev-server and connect to the provided endpoint // 'webpack/hot/only-dev-server', // bundle the client for hot reloading, only- means to only hot reload for successful updates - './index.ts' // the entry point of our app + './index.js' // the entry point of our app ], devServer: { hot: false, // enable HMR on the server diff --git a/webapp/packages/builder/configs/webpack/exp.js b/webapp/packages/builder/configs/webpack/exp.js index 3c44463bc6..a3051a182b 100644 --- a/webapp/packages/builder/configs/webpack/exp.js +++ b/webapp/packages/builder/configs/webpack/exp.js @@ -6,7 +6,7 @@ const commonConfig = require('./common-exp'); module.exports = (env, argv) => merge(commonConfig(env, argv), { mode: argv.mode || 'development', - entry: './index.ts', + entry: './index.js', output: { filename: 'js/bundle.[hash].js', path: resolve(argv.currentDir, './dist'), diff --git a/webapp/packages/builder/src/index.js b/webapp/packages/builder/src/index.js new file mode 100644 index 0000000000..5be3725ab3 --- /dev/null +++ b/webapp/packages/builder/src/index.js @@ -0,0 +1,9 @@ +/* eslint-disable import-helpers/order-imports, import/order, import/no-duplicates */ +/* this eslint-disable required for webpack inject */ +import 'reflect-metadata'; + +import { bootstrap } from '@dbeaver/core'; + +const PLUGINS = []; // will be injected by webpack + +bootstrap(PLUGINS); diff --git a/webapp/packages/builder/tsconfig.json b/webapp/packages/builder/tsconfig.json index eeccc1eb83..ed0c3a5736 100644 --- a/webapp/packages/builder/tsconfig.json +++ b/webapp/packages/builder/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "exclude": ["node_modules"], "include": [ "src/**/*", diff --git a/webapp/packages/builder/src/ErrorPage.tsx b/webapp/packages/core/src/ErrorPage.tsx similarity index 100% rename from webapp/packages/builder/src/ErrorPage.tsx rename to webapp/packages/core/src/ErrorPage.tsx diff --git a/webapp/packages/builder/src/index.ts b/webapp/packages/core/src/bootstrap.ts similarity index 58% rename from webapp/packages/builder/src/index.ts rename to webapp/packages/core/src/bootstrap.ts index f1a95c3a55..87e2a02fe6 100644 --- a/webapp/packages/builder/src/index.ts +++ b/webapp/packages/core/src/bootstrap.ts @@ -1,18 +1,12 @@ -/* eslint-disable import-helpers/order-imports, import/order, import/no-duplicates */ -/* this eslint-disable required for webpack inject */ -import 'reflect-metadata'; - -import { AppBootstrap } from '@dbeaver/core'; import { App, PluginManifest } from '@dbeaver/core/di'; -import { renderLayout } from './renderLayout'; +import { AppBootstrap } from './AppBootstrap'; import { showErrorPage } from './ErrorPage'; +import { renderLayout } from './renderLayout'; -const PLUGINS = [] as PluginManifest[]; // will be injected by webpack +export async function bootstrap(plugins: PluginManifest[]) { -async function bootstrap() { - - const app = new App(PLUGINS); + const app = new App(plugins); app.registerServices(); const appBootstrap = app.getServiceInjector().resolveServiceByClass(AppBootstrap); @@ -29,5 +23,3 @@ async function bootstrap() { showErrorPage(); } } - -bootstrap(); diff --git a/webapp/packages/core/src/index.ts b/webapp/packages/core/src/index.ts index 3b9a74eea9..c76c3fc86f 100644 --- a/webapp/packages/core/src/index.ts +++ b/webapp/packages/core/src/index.ts @@ -1,6 +1,6 @@ // reexports import { coreManifest } from './manifest'; -export * from './AppBootstrap'; +export * from './bootstrap'; export default coreManifest; diff --git a/webapp/packages/builder/src/renderLayout.tsx b/webapp/packages/core/src/renderLayout.tsx similarity index 100% rename from webapp/packages/builder/src/renderLayout.tsx rename to webapp/packages/core/src/renderLayout.tsx