mattermost/webapp/scripts/run.mjs
Harrison Healey 4136343476
Fixathon: Web app dependency updates part 1 (#29036)
* Ensure all packages remove a node_modules in their folder when cleaning

* Upgrade typescript to 5.6.3 and move to root package.json

Note that this currently fails to build the types package due to
@types/node which I'm going to try to remove

* Update @types/node to 20.11 to match .nvmrc

* Upgrade zen-observable to 0.10.0

It looks like localforage-observable uses its own version
of zen-observable because it hasn't been updated in years.
This seems like something we probably should remove.

* Update yargs to 17.7.2

* Update webpack-dev-server to 5.1.0

* Remove webpack-bundle-analyzer since we haven't used it in years

* Update webpack to 5.95.0

* Update web-vitals to 4.2.4

* Update turndown to 7.2.0

* Update tinycolor2 to 1.6.0

* Update timezones.json to 1.7.0

* Update stylelint to 16.10.0, stylelint-config-recommended-scss to 14.1.0, and stylelint-scss to 6.8.1

* Update webpack-cli to 5.1.4

* Update style-loader to 4.0.0

* Change all Webpack scripts to be ES modules

* Update strip-ansi to 7.1.0

This is a build script dependency

* Update chalk to 5.3.0

This is a build script dependency

* Update concurrently to 9.0.1

This is a build script dependency

* Update smooth-scroll-into-view-if-needed to 2.0.2

* MM-48205 Update serialize-error to 11.0.3

We didn't update this before because it's an ES module which caused Jest to complain. We can fix that by making Jest transform the it

* Update semver to 7.6.3

* Update types for semver, tinycolor2, turndown, and webpack

* Fix type issues: change Props to a type

* Fix type issues: invalid HTML attributes

* Remove unneeded option from Webpack config
2024-11-06 13:40:19 -05:00

58 lines
1.4 KiB
JavaScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
/* eslint-disable no-console, no-process-env */
import chalk from 'chalk';
import concurrently from 'concurrently';
import {makeRunner} from './runner.mjs';
import {getExitCode, getPlatformCommands} from './utils.mjs';
async function watchAll(useRunner) {
if (!useRunner) {
console.log(chalk.inverse.bold('Watching web app and all subpackages...'));
}
const commands = [
{command: 'npm:run --workspace=channels', name: 'webapp', prefixColor: 'cyan'},
];
commands.push(...getPlatformCommands('run'));
let runner;
if (useRunner) {
runner = makeRunner(commands);
}
console.log('\n');
const {result, commands: runningCommands} = concurrently(
commands,
{
killOthers: 'failure',
outputStream: runner?.getOutputStream(),
},
);
runner?.addCloseListener(() => {
for (const command of runningCommands) {
command.kill('SIGINT');
}
});
let exitCode = 0;
try {
await result;
} catch (closeEvents) {
exitCode = getExitCode(closeEvents, 0);
}
return exitCode;
}
const useRunner = process.argv[2] === '--runner' || process.env.MM_USE_WEBAPP_RUNNER;
watchAll(useRunner).then((exitCode) => {
process.exit(exitCode);
});