From 404440b4b7c55ca1e590846d111e53447471b14e Mon Sep 17 00:00:00 2001 From: Thomas Bouffard <27200110+tbouffard@users.noreply.github.com> Date: Mon, 27 Nov 2023 18:59:09 +0100 Subject: [PATCH 01/13] refactor!: only include ESM in the npm package Get rid of the UMD bundle: not pratical, not minimified so not ready for production, nor for reuse. This lets remove the webpack build which was not used anymore. --- packages/core/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index f013cbabdc..80edaae1ec 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -11,7 +11,6 @@ "graph", "svg" ], - "main": "dist/maxgraph.js", "module": "dist/esm/index.js", "types": "dist/types/index.d.ts", "files": [ From 1f21a5062733a50350be316ef7a36b822c396295 Mon Sep 17 00:00:00 2001 From: Thomas Bouffard <27200110+tbouffard@users.noreply.github.com> Date: Mon, 27 Nov 2023 18:59:51 +0100 Subject: [PATCH 02/13] core build: tsc only --- packages/core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index 80edaae1ec..89914c7489 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -28,7 +28,7 @@ }, "scripts": { "dev": "tsc --watch", - "build": "cross-env NODE_ENV=production webpack --mode=production", + "build": "tsc --version && tsc", "docs:api": "typedoc src/index.ts", "generate-types": "tsc --version && tsc --emitDeclarationOnly", "generate-esm": "tsc --version && tsc --emitDeclarationOnly false --declaration false --declarationDir null", From 99f29538bfa2e0ea04cff08dc8b448c89770ae00 Mon Sep 17 00:00:00 2001 From: Thomas Bouffard <27200110+tbouffard@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:00:46 +0100 Subject: [PATCH 03/13] remove unused dependencies: cross-env --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 1dbf7e4f02..21cab3408d 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "@typescript-eslint/parser": "^5.39.0", "babel-loader": "^8.2.3", "better-docs": "^2.3.2", - "cross-env": "~7.0.3", "css-loader": "^6.5.1", "eslint": "^8.26.0", "eslint-config-prettier": "^8.5.0", From 7094d64d3516d1e10fb252606ce9ace5e3b9d148 Mon Sep 17 00:00:00 2001 From: Thomas Bouffard <27200110+tbouffard@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:01:17 +0100 Subject: [PATCH 04/13] remove unused dependencies: webpack --- package.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/package.json b/package.json index 21cab3408d..8eb10ae602 100644 --- a/package.json +++ b/package.json @@ -40,10 +40,7 @@ "style-loader": "^3.3.1", "typedoc": "^0.23.21", "typescript": "^4.9.5", - "url-loader": "^4.1.1", - "webpack": "^5.64.4", - "webpack-cli": "^4.9.1", - "webpack-merge": "^5.8.0" + "url-loader": "^4.1.1" }, "overrides": { "@types/node": "^16.18.0" From 38f6cf8a49ac17d48054623e34ea5ce221372925 Mon Sep 17 00:00:00 2001 From: Thomas Bouffard <27200110+tbouffard@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:02:18 +0100 Subject: [PATCH 05/13] remove unused dependencies: circular-dependency-plugin --- packages/core/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index 89914c7489..a58a284ef3 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -36,7 +36,6 @@ "test": "jest" }, "devDependencies": { - "circular-dependency-plugin": "^5.2.2", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", "npm-run-all": "~4.1.5", From 163f9fb51d9c02f3445d979c3b6f587555eddcda Mon Sep 17 00:00:00 2001 From: Thomas Bouffard <27200110+tbouffard@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:02:52 +0100 Subject: [PATCH 06/13] remove unused dependencies: babel --- babel.config.js | 10 ---------- package.json | 6 ------ 2 files changed, 16 deletions(-) delete mode 100644 babel.config.js diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index 3a3083b98f..0000000000 --- a/babel.config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - presets: [ - '@babel/preset-env', - '@babel/preset-react', - '@babel/preset-typescript' - ], - plugins: [ - '@babel/plugin-proposal-class-properties' - ] -}; \ No newline at end of file diff --git a/package.json b/package.json index 8eb10ae602..52898d9087 100644 --- a/package.json +++ b/package.json @@ -20,15 +20,9 @@ "prettier": "prettier --write packages/*/src/**/*.ts" }, "devDependencies": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", "@lerna/filter-options": "^4.0.0", "@typescript-eslint/eslint-plugin": "^5.39.0", "@typescript-eslint/parser": "^5.39.0", - "babel-loader": "^8.2.3", "better-docs": "^2.3.2", "css-loader": "^6.5.1", "eslint": "^8.26.0", From 9fe102cbfa5b9d0e7af67fe237d0f93a727dd920 Mon Sep 17 00:00:00 2001 From: Thomas Bouffard <27200110+tbouffard@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:04:31 +0100 Subject: [PATCH 07/13] remove unused dependencies: webpack loaders (css, file, style, url) --- package.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/package.json b/package.json index 52898d9087..aefe4c000d 100644 --- a/package.json +++ b/package.json @@ -24,17 +24,13 @@ "@typescript-eslint/eslint-plugin": "^5.39.0", "@typescript-eslint/parser": "^5.39.0", "better-docs": "^2.3.2", - "css-loader": "^6.5.1", "eslint": "^8.26.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "^2.26.0", - "file-loader": "^6.2.0", "lerna": "^4.0.0", "prettier": "^2.7.1", - "style-loader": "^3.3.1", "typedoc": "^0.23.21", - "typescript": "^4.9.5", - "url-loader": "^4.1.1" + "typescript": "^4.9.5" }, "overrides": { "@types/node": "^16.18.0" From 002db02841a0c1ea9574b9a0d89db91ec5c1b64d Mon Sep 17 00:00:00 2001 From: Thomas Bouffard <27200110+tbouffard@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:06:34 +0100 Subject: [PATCH 08/13] remove unused dependencies: better-docs (use typedoc instead) --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index aefe4c000d..ca13ebda15 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,6 @@ "@lerna/filter-options": "^4.0.0", "@typescript-eslint/eslint-plugin": "^5.39.0", "@typescript-eslint/parser": "^5.39.0", - "better-docs": "^2.3.2", "eslint": "^8.26.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "^2.26.0", From 917cf01ec9ad9ab275623f0a019a64f5ecbcf8cd Mon Sep 17 00:00:00 2001 From: Thomas Bouffard <27200110+tbouffard@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:12:31 +0100 Subject: [PATCH 09/13] Move typedoc in the package where it is used (make it easier to detect usage) --- package.json | 1 - packages/core/package.json | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ca13ebda15..10aa3975f0 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ "eslint-plugin-import": "^2.26.0", "lerna": "^4.0.0", "prettier": "^2.7.1", - "typedoc": "^0.23.21", "typescript": "^4.9.5" }, "overrides": { diff --git a/packages/core/package.json b/packages/core/package.json index a58a284ef3..a9721a5b05 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -40,6 +40,7 @@ "jest-environment-jsdom": "^29.3.1", "npm-run-all": "~4.1.5", "ts-jest": "^29.0.3", + "typedoc": "^0.23.21", "typescript": "^4.9.5" }, "sideEffects": true From 633f19ff9cf339ea538bbc6d60064dcf199ce2f4 Mon Sep 17 00:00:00 2001 From: Thomas Bouffard <27200110+tbouffard@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:12:50 +0100 Subject: [PATCH 10/13] remove webpack configuration --- packages/core/webpack.config.js | 49 --------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 packages/core/webpack.config.js diff --git a/packages/core/webpack.config.js b/packages/core/webpack.config.js deleted file mode 100644 index 5aeadfe4c4..0000000000 --- a/packages/core/webpack.config.js +++ /dev/null @@ -1,49 +0,0 @@ -const path = require('path'); -const webpack = require('webpack'); -const { merge } = require('webpack-merge'); -const base = require('../../webpack.config'); -const CircularDependencyPlugin = require('circular-dependency-plugin'); - -module.exports = merge(base, { - entry: './src/index.ts', - output: { - filename: 'maxgraph.js', - path: path.resolve(__dirname, 'dist'), - library: 'maxgraph', - libraryTarget: 'umd', - }, - module: { - rules: [ - { - test: /\.(sa|sc|c)ss$/, - use: ['style-loader', 'css-loader'], - }, - { - test: /\.(ico|png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot)$/, - loader: 'url-loader', - options: { - name: 'images/[hash].[ext]', - limit: 10000, - }, - }, - ], - }, - plugins: [ - new webpack.optimize.LimitChunkCountPlugin({ - maxChunks: 1, - }), - new CircularDependencyPlugin({ - // exclude detection of files based on a RegExp - exclude: /a\.js|node_modules/, - // include specific files based on a RegExp - // include: /dir/, - // add errors to webpack instead of warnings - failOnError: true, - // allow import cycles that include an asynchronous import, - // e.g. via import(/* webpackMode: "weak" */ './file.js') - allowAsyncCycles: false, - // set the current working directory for displaying module paths - cwd: process.cwd(), - }), - ], -}); From 5a3fb45215ec90aa04552efdacd610ad21f892da Mon Sep 17 00:00:00 2001 From: Thomas Bouffard <27200110+tbouffard@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:14:00 +0100 Subject: [PATCH 11/13] remove webpack configuration --- webpack.config.js | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 webpack.config.js diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 9d683835ba..0000000000 --- a/webpack.config.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - devtool: 'inline-source-map', - module: { - rules: [ - { - test: /\.(js|ts)$/, - use: { - loader: 'babel-loader', - options: { - rootMode: 'upward', - }, - }, - exclude: /node_modules/, - }, - ], - }, - resolve: { - extensions: ['.ts', '.js', '.css'], - }, -}; From 5bd8a7ea19cf5b3f889d7f1cac73f02a41b0bd72 Mon Sep 17 00:00:00 2001 From: Thomas Bouffard <27200110+tbouffard@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:17:59 +0100 Subject: [PATCH 12/13] core build: everything is done with tsc and simplify pack --- .github/workflows/build.yml | 8 +------- packages/core/package.json | 4 +--- packages/core/tsconfig.json | 3 +-- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c1979da0b1..688162b67d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,15 +43,9 @@ jobs: node-version-file: '.nvmrc' - name: Install dependencies run: npm install - - name: Build @maxgraph/core - umd - working-directory: packages/core - run: npm run build - name: Build @maxgraph/core - esm working-directory: packages/core - run: npm run generate-esm - - name: Generate @maxgraph/core types - working-directory: packages/core - run: npm run generate-types + run: npm run build - name: Test @maxgraph/core working-directory: packages/core run: npm test diff --git a/packages/core/package.json b/packages/core/package.json index a9721a5b05..41d74c595b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -30,9 +30,7 @@ "dev": "tsc --watch", "build": "tsc --version && tsc", "docs:api": "typedoc src/index.ts", - "generate-types": "tsc --version && tsc --emitDeclarationOnly", - "generate-esm": "tsc --version && tsc --emitDeclarationOnly false --declaration false --declarationDir null", - "prepack": "run-s generate-types generate-esm build", + "prepack": "run-s build", "test": "jest" }, "devDependencies": { diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index dc87f39b0f..8f3b77371c 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -3,9 +3,8 @@ "compilerOptions": { "allowSyntheticDefaultImports": true, "declaration": true, - "declarationDir": "./dist/types", "declarationMap": false, - "emitDeclarationOnly": true, + "emitDeclarationOnly": false, "outDir": "./dist/esm", "strict": true, "skipLibCheck": false, From 029ee41c6d27f6784b99115c344bcac7e8d15034 Mon Sep 17 00:00:00 2001 From: Thomas Bouffard <27200110+tbouffard@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:21:01 +0100 Subject: [PATCH 13/13] build output: everything directly in the dist folder --- packages/core/package.json | 4 ++-- packages/core/tsconfig.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 41d74c595b..b84c4cceda 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -11,8 +11,8 @@ "graph", "svg" ], - "module": "dist/esm/index.js", - "types": "dist/types/index.d.ts", + "module": "dist/index.js", + "types": "dist/index.d.ts", "files": [ "css", "dist", diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 8f3b77371c..a0b0571192 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -5,7 +5,7 @@ "declaration": true, "declarationMap": false, "emitDeclarationOnly": false, - "outDir": "./dist/esm", + "outDir": "./dist", "strict": true, "skipLibCheck": false, "forceConsistentCasingInFileNames": true