Files
flipper/desktop/scripts/bundle-all-plugins.tsx
Anton Kastritskiy 071bcaff96 Rename second batch for '.ts' files to '.tsx' in scripts dir
Summary: Rename first batch for '.ts' files to '.tsx'

Reviewed By: passy

Differential Revision: D33843246

fbshipit-source-id: eb8080db8cc3ef07820339bf8deafa208432de7c
2022-01-31 02:57:54 -08:00

58 lines
1.5 KiB
TypeScript

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
/* eslint-disable flipper/no-console-error-without-context */
import {pluginsDir} from './paths';
import path from 'path';
import {runBuild} from 'flipper-pkg-lib';
import {getWorkspaces} from './workspaces';
async function bundleAllPlugins() {
const plugins = await getWorkspaces().then((workspaces) =>
workspaces.packages.filter((x) => x.isPlugin),
);
const errors = new Map<string, any>();
for (const plugin of plugins) {
const relativeDir = path.relative(pluginsDir, plugin.dir);
console.log(`Bundling "${relativeDir}"`);
console.time(`Finished bundling "${relativeDir}"`);
try {
await runBuild(plugin.dir, false);
} catch (err) {
console.log(`Failed to bundle "${relativeDir}": ${err.message}`);
errors.set(relativeDir, err);
} finally {
console.timeEnd(`Finished bundling "${relativeDir}"`);
}
}
if (errors.size) {
console.error('---');
for (const [plugin, error] of errors) {
console.error(`Failed to bundle ${plugin}`);
console.error(error);
console.error('---');
}
throw new Error(
`Failed to bundle ${errors.size} plugins: ${[...errors.keys()].join(
', ',
)}`,
);
}
}
bundleAllPlugins()
.then(() => {
process.exit(0);
})
.catch((err: any) => {
console.error(err);
process.exit(1);
});