From f2dd39fe20fb0056acef97837a5216ea88d6ffa6 Mon Sep 17 00:00:00 2001 From: Christoph Reiter <reiter.christoph@gmail.com> Date: Tue, 17 Nov 2020 15:50:38 +0100 Subject: [PATCH] Add a helper function for computing the target dist path Takes a package name and a dest path. This way we can more eassily change the layout and it will error out on package name typos or missing packages. --- packages/app-shell/rollup.config.js | 4 +- packages/auth/rollup.config.js | 6 +- .../check-in-place-select/rollup.config.js | 4 +- packages/common/rollup.config.js | 73 ++++++++++--------- packages/data-table-view/rollup.config.js | 19 +++-- packages/file-handling/rollup.config.js | 6 +- .../rollup.config.js | 4 +- packages/matomo/rollup.config.js | 4 +- packages/person-profile/rollup.config.js | 4 +- packages/person-select/rollup.config.js | 4 +- packages/qr-code-scanner/rollup.config.js | 7 +- .../qr-code-scanner/src/qr-code-scanner.js | 3 +- rollup.utils.js | 8 ++ 13 files changed, 79 insertions(+), 67 deletions(-) diff --git a/packages/app-shell/rollup.config.js b/packages/app-shell/rollup.config.js index c80d5f3e..dbc283c0 100644 --- a/packages/app-shell/rollup.config.js +++ b/packages/app-shell/rollup.config.js @@ -6,7 +6,7 @@ import serve from 'rollup-plugin-serve'; import consts from 'rollup-plugin-consts'; import del from 'rollup-plugin-delete'; import json from '@rollup/plugin-json'; -import {getBuildInfo, getPackagePath} from '../../rollup.utils.js'; +import {getBuildInfo, getPackagePath, getDistPath} from '../../rollup.utils.js'; const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local'; console.log("build: " + build); @@ -44,7 +44,7 @@ export default (async () => { {src: 'assets/silent-check-sso.html', dest:'dist'}, {src: 'assets/index.html', dest: 'dist'}, {src: 'assets/*.json', dest: 'dist'}, - {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/local/dbp-common/icons'}, + {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/' + await getDistPath('@dbp-toolkit/common', 'icons')}, ], }), (process.env.ROLLUP_WATCH === 'true') ? serve({ diff --git a/packages/auth/rollup.config.js b/packages/auth/rollup.config.js index 2df4ef5f..e058d575 100644 --- a/packages/auth/rollup.config.js +++ b/packages/auth/rollup.config.js @@ -7,7 +7,7 @@ import json from '@rollup/plugin-json'; import serve from 'rollup-plugin-serve'; import consts from 'rollup-plugin-consts'; import del from 'rollup-plugin-delete'; -import {getPackagePath} from '../../rollup.utils.js'; +import {getPackagePath, getDistPath} from '../../rollup.utils.js'; const pkg = require('./package.json'); const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local'; @@ -44,9 +44,9 @@ export default (async () => { copy({ targets: [ {src: 'assets/index.html', dest:'dist'}, - {src: 'assets/silent-check-sso.html', dest: 'dist/local/' + pkg.name}, + {src: 'assets/silent-check-sso.html', dest: 'dist/' + await getDistPath(pkg.name)}, {src: 'assets/favicon.ico', dest:'dist'}, - {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/local/dbp-common/icons'}, + {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/' + await getDistPath('@dbp-toolkit/common', 'icons')}, ] }), (process.env.ROLLUP_WATCH === 'true') ? serve({contentBase: 'dist', host: '127.0.0.1', port: 8002}) : false diff --git a/packages/check-in-place-select/rollup.config.js b/packages/check-in-place-select/rollup.config.js index 55901af8..5cc25019 100644 --- a/packages/check-in-place-select/rollup.config.js +++ b/packages/check-in-place-select/rollup.config.js @@ -8,7 +8,7 @@ import serve from 'rollup-plugin-serve'; import url from "@rollup/plugin-url" import consts from 'rollup-plugin-consts'; import del from 'rollup-plugin-delete'; -import {getPackagePath} from '../../rollup.utils.js'; +import {getPackagePath, getDistPath} from '../../rollup.utils.js'; const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local'; console.log("build: " + build); @@ -52,7 +52,7 @@ export default (async () => { copy({ targets: [ {src: 'assets/index.html', dest: 'dist'}, - {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/local/dbp-common/icons'}, + {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/' + await getDistPath('@dbp-toolkit/common', 'icons')}, ], }), (process.env.ROLLUP_WATCH === 'true') ? serve({contentBase: 'dist', host: '127.0.0.1', port: 8002}) : false diff --git a/packages/common/rollup.config.js b/packages/common/rollup.config.js index ae08e748..ac6c69f1 100644 --- a/packages/common/rollup.config.js +++ b/packages/common/rollup.config.js @@ -6,43 +6,46 @@ import serve from 'rollup-plugin-serve'; import consts from 'rollup-plugin-consts'; import del from 'rollup-plugin-delete'; import json from '@rollup/plugin-json'; +import {getDistPath} from '../../rollup.utils.js'; const pkg = require('./package.json'); const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local'; console.log("build: " + build); -export default { - input: (build !='test') ? ['demo.js'] : glob.sync('test/**/*.js'), - output: { - dir: 'dist', - entryFileNames: '[name].js', - chunkFileNames: 'shared/[name].[hash].[format].js', - format: 'esm', - sourcemap: true - }, - onwarn: function (warning, warn) { - // ignore chai warnings - if (warning.code === 'CIRCULAR_DEPENDENCY') { - return; - } - warn(warning); - }, - plugins: [ - del({ - targets: 'dist/*' - }), - consts({ - environment: build, - }), - resolve(), - commonjs(), - json(), - copy({ - targets: [ - {src: 'assets/index.html', dest: 'dist'}, - {src: 'assets/icons/*.svg', dest: 'dist/local/' + pkg.name + '/icons'}, - ], - }), - (process.env.ROLLUP_WATCH === 'true') ? serve({contentBase: 'dist', host: '127.0.0.1', port: 8002}) : false - ] -}; +export default (async () => { + return { + input: (build !='test') ? ['demo.js'] : glob.sync('test/**/*.js'), + output: { + dir: 'dist', + entryFileNames: '[name].js', + chunkFileNames: 'shared/[name].[hash].[format].js', + format: 'esm', + sourcemap: true + }, + onwarn: function (warning, warn) { + // ignore chai warnings + if (warning.code === 'CIRCULAR_DEPENDENCY') { + return; + } + warn(warning); + }, + plugins: [ + del({ + targets: 'dist/*' + }), + consts({ + environment: build, + }), + resolve(), + commonjs(), + json(), + copy({ + targets: [ + {src: 'assets/index.html', dest: 'dist'}, + {src: 'assets/icons/*.svg', dest: 'dist/' + await getDistPath(pkg.name, 'icons')}, + ], + }), + (process.env.ROLLUP_WATCH === 'true') ? serve({contentBase: 'dist', host: '127.0.0.1', port: 8002}) : false + ] + }; +})(); \ No newline at end of file diff --git a/packages/data-table-view/rollup.config.js b/packages/data-table-view/rollup.config.js index 5c982c2f..19c0254c 100644 --- a/packages/data-table-view/rollup.config.js +++ b/packages/data-table-view/rollup.config.js @@ -8,7 +8,7 @@ import serve from 'rollup-plugin-serve'; import urlPlugin from "@rollup/plugin-url"; import consts from 'rollup-plugin-consts'; import del from 'rollup-plugin-delete'; -import {getPackagePath} from '../../rollup.utils.js'; +import {getPackagePath, getDistPath} from '../../rollup.utils.js'; const pkg = require('./package.json'); const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local'; @@ -57,15 +57,14 @@ export default (async () => { copy({ targets: [ {src: 'assets/index.html', dest: 'dist'}, - {src: 'assets/*.css', dest: 'dist/local/' + pkg.name}, - {src: 'assets/*.ico', dest: 'dist/local/' + pkg.name}, - {src: 'assets/nomodule.js', dest: 'dist/local/' + pkg.name}, - - {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/local/dbp-common/icons'}, - {src: await getPackagePath('datatables.net-dt', 'css'), dest: 'dist/local/dbp-data-table-view'}, - {src: await getPackagePath('datatables.net-dt', 'images'), dest: 'dist/local/dbp-data-table-view'}, - {src: await getPackagePath('datatables.net-responsive-dt', 'css'), dest: 'dist/local/dbp-data-table-view'}, - {src: await getPackagePath('datatables.net-buttons-dt', 'css'), dest: 'dist/local/dbp-data-table-view'}, + {src: 'assets/*.css', dest: 'dist/' + await getDistPath(pkg.name)}, + {src: 'assets/*.ico', dest: 'dist/' + await getDistPath(pkg.name)}, + {src: 'assets/nomodule.js', dest: 'dist/' + await getDistPath(pkg.name)}, + {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/' + await getDistPath('@dbp-toolkit/common', 'icons')}, + {src: await getPackagePath('datatables.net-dt', 'css'), dest: 'dist/' + await getDistPath(pkg.name)}, + {src: await getPackagePath('datatables.net-dt', 'images'), dest: 'dist/' + await getDistPath(pkg.name)}, + {src: await getPackagePath('datatables.net-responsive-dt', 'css'), dest: 'dist/' + await getDistPath(pkg.name)}, + {src: await getPackagePath('datatables.net-buttons-dt', 'css'), dest: 'dist/' + await getDistPath(pkg.name)}, ], }), diff --git a/packages/file-handling/rollup.config.js b/packages/file-handling/rollup.config.js index 1c1ee906..9c723876 100644 --- a/packages/file-handling/rollup.config.js +++ b/packages/file-handling/rollup.config.js @@ -7,7 +7,7 @@ import json from '@rollup/plugin-json'; import serve from 'rollup-plugin-serve'; import consts from 'rollup-plugin-consts'; import del from 'rollup-plugin-delete'; -import {getPackagePath} from '../../rollup.utils.js'; +import {getPackagePath, getDistPath} from '../../rollup.utils.js'; const pkg = require('./package.json'); const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local'; @@ -50,8 +50,8 @@ export default (async () => { targets: [ {src: 'assets/index.html', dest: 'dist'}, {src: 'assets/favicon.ico', dest: 'dist'}, - {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/local/dbp-common/icons'}, - {src: await getPackagePath('tabulator-tables', 'dist/css'), dest: 'dist/local/' + pkg.name + '/tabulator-tables'}, + {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/' + await getDistPath('@dbp-toolkit/common', 'icons')}, + {src: await getPackagePath('tabulator-tables', 'dist/css'), dest: 'dist/' + await getDistPath(pkg.name, 'tabulator-tables')}, ], }), (process.env.ROLLUP_WATCH === 'true') ? serve({contentBase: 'dist', host: '127.0.0.1', port: 8002}) : false diff --git a/packages/knowledge-base-web-page-element-view/rollup.config.js b/packages/knowledge-base-web-page-element-view/rollup.config.js index 7ac611c5..bbcc3ac2 100644 --- a/packages/knowledge-base-web-page-element-view/rollup.config.js +++ b/packages/knowledge-base-web-page-element-view/rollup.config.js @@ -8,7 +8,7 @@ import serve from 'rollup-plugin-serve'; import url from "@rollup/plugin-url"; import consts from 'rollup-plugin-consts'; import del from 'rollup-plugin-delete'; -import {getPackagePath} from '../../rollup.utils.js'; +import {getPackagePath, getDistPath} from '../../rollup.utils.js'; const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local'; console.log("build: " + build); @@ -50,7 +50,7 @@ export default (async () => { targets: [ {src: 'assets/index.html', dest: 'dist'}, {src: 'assets/favicon.ico', dest: 'dist'}, - {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/local/dbp-common/icons'}, + {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/' + await getDistPath('@dbp-toolkit/common', 'icons')}, ], }), (process.env.ROLLUP_WATCH === 'true') ? serve({contentBase: 'dist', host: '127.0.0.1', port: 8002}) : false diff --git a/packages/matomo/rollup.config.js b/packages/matomo/rollup.config.js index bd6189f9..6b588d3e 100644 --- a/packages/matomo/rollup.config.js +++ b/packages/matomo/rollup.config.js @@ -9,7 +9,7 @@ import url from "@rollup/plugin-url"; import consts from 'rollup-plugin-consts'; import del from 'rollup-plugin-delete'; import emitEJS from 'rollup-plugin-emit-ejs' -import {getPackagePath} from '../../rollup.utils.js'; +import {getPackagePath, getDistPath} from '../../rollup.utils.js'; const pkg = require('./package.json'); const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local'; @@ -98,7 +98,7 @@ export default (async () => { copy({ targets: [ {src: 'assets/index.html', dest: 'dist'}, - {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/local/dbp-common/icons'}, + {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/' + await getDistPath('@dbp-toolkit/common', 'icons')}, {src: 'assets/favicon.ico', dest:'dist'}, ], }), diff --git a/packages/person-profile/rollup.config.js b/packages/person-profile/rollup.config.js index daf2783e..9f515916 100644 --- a/packages/person-profile/rollup.config.js +++ b/packages/person-profile/rollup.config.js @@ -9,7 +9,7 @@ import serve from 'rollup-plugin-serve'; import url from "@rollup/plugin-url" import consts from 'rollup-plugin-consts'; import del from 'rollup-plugin-delete'; -import {getPackagePath} from '../../rollup.utils.js'; +import {getPackagePath, getDistPath} from '../../rollup.utils.js'; const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local'; console.log("build: " + build); @@ -53,7 +53,7 @@ export default (async () => { copy({ targets: [ {src: 'assets/index.html', dest: 'dist'}, - {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/local/dbp-common/icons'}, + {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/' + await getDistPath('@dbp-toolkit/common', 'icons')}, ], }), (process.env.ROLLUP_WATCH === 'true') ? serve({contentBase: 'dist', host: '127.0.0.1', port: 8002}) : false diff --git a/packages/person-select/rollup.config.js b/packages/person-select/rollup.config.js index 44e546e8..bc047601 100644 --- a/packages/person-select/rollup.config.js +++ b/packages/person-select/rollup.config.js @@ -8,7 +8,7 @@ import serve from 'rollup-plugin-serve'; import url from "@rollup/plugin-url" import consts from 'rollup-plugin-consts'; import del from 'rollup-plugin-delete'; -import {getPackagePath} from '../../rollup.utils.js'; +import {getPackagePath, getDistPath} from '../../rollup.utils.js'; const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local'; console.log("build: " + build); @@ -52,7 +52,7 @@ export default (async () => { copy({ targets: [ {src: 'assets/index.html', dest: 'dist'}, - {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/local/dbp-common/icons'}, + {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/' + await getDistPath('@dbp-toolkit/common', 'icons')}, ], }), (process.env.ROLLUP_WATCH === 'true') ? serve({contentBase: 'dist', host: '127.0.0.1', port: 8002}) : false diff --git a/packages/qr-code-scanner/rollup.config.js b/packages/qr-code-scanner/rollup.config.js index fd798ea7..ee91e9fa 100644 --- a/packages/qr-code-scanner/rollup.config.js +++ b/packages/qr-code-scanner/rollup.config.js @@ -10,8 +10,9 @@ import consts from 'rollup-plugin-consts'; import del from 'rollup-plugin-delete'; import fs from "fs"; import selfsigned from "selfsigned"; -import {getPackagePath} from "../../rollup.utils"; +import {getPackagePath, getDistPath} from "../../rollup.utils"; +const pkg = require('./package.json'); const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local'; console.log("build: " + build); @@ -71,8 +72,8 @@ export default (async () => { targets: [ {src: 'assets/index.html', dest: 'dist'}, {src: 'assets/favicon.ico', dest: 'dist'}, - {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/local/dbp-common/icons'}, - {src: await getPackagePath('qr-scanner', 'qr-scanner-worker.*'), dest: 'dist/local/qr-code-scanner'}, + {src: await getPackagePath('@dbp-toolkit/common', 'assets/icons/*.svg'), dest: 'dist/' + await getDistPath('@dbp-toolkit/common', 'icons')}, + {src: await getPackagePath('qr-scanner', 'qr-scanner-worker.*'), dest: 'dist/' + await getDistPath(pkg.name)}, ] }), (process.env.ROLLUP_WATCH === 'true') ? serve({ diff --git a/packages/qr-code-scanner/src/qr-code-scanner.js b/packages/qr-code-scanner/src/qr-code-scanner.js index 9a575119..b8b64d87 100644 --- a/packages/qr-code-scanner/src/qr-code-scanner.js +++ b/packages/qr-code-scanner/src/qr-code-scanner.js @@ -9,6 +9,7 @@ import * as commonUtils from '@dbp-toolkit/common/utils'; import {getIconSVGURL} from '@dbp-toolkit/common'; import {Mutex} from 'async-mutex'; import QrScanner from 'qr-scanner'; +import {name as pkgName} from './../package.json'; /** @@ -110,7 +111,7 @@ async function createVideoElement(deviceId) { class QRScanner { constructor() { - QrScanner.WORKER_PATH = commonUtils.getAssetURL('qr-code-scanner', 'qr-scanner-worker.min.js'); + QrScanner.WORKER_PATH = commonUtils.getAssetURL(pkgName, 'qr-scanner-worker.min.js'); this._engine = null; this._canvas = document.createElement("canvas"); } diff --git a/rollup.utils.js b/rollup.utils.js index b3b2aa19..5784bad1 100644 --- a/rollup.utils.js +++ b/rollup.utils.js @@ -19,6 +19,14 @@ export function getBuildInfo(build) { } } +export async function getDistPath(packageName, assetPath) { + if (assetPath === undefined) + assetPath = ''; + // make sure the package exists to avoid typos + await getPackagePath(packageName, ''); + return path.join('local', packageName, assetPath); +} + export async function getPackagePath(packageName, assetPath) { const r = resolve(); const resolved = await r.resolveId(packageName); -- GitLab