Files
flipper/desktop/scripts/bundle-all-plugins.tsx
Andrey Goncharov dd7ba2d6fc Fix fb-stubs replacement for plugin bundling
Reviewed By: nikoant

Differential Revision: D39765543

fbshipit-source-id: 14cbf8a9bdf35031e636bbbde3dbc955faedb66b
2022-09-23 05:50:28 -07:00

59 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';
import isFB from './isFB';
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, isFB);
} 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);
});