1 |
|
2 | import { logError } from './error';
|
3 |
|
4 | export const handle = async (file: string) => {
|
5 | let mod: unknown;
|
6 |
|
7 | try {
|
8 | mod = await import(file);
|
9 |
|
10 | mod = await (mod as { default: unknown }).default;
|
11 | } catch (err: unknown) {
|
12 | if (isErrorObject(err) && err.stack) {
|
13 | logError(`Error when importing ${file}: ${err.stack}`, 'invalid-entry');
|
14 | }
|
15 | process.exit(1);
|
16 | }
|
17 |
|
18 | if (typeof mod !== 'function') {
|
19 | logError(`The file "${file}" does not export a function.`, 'no-export');
|
20 | process.exit(1);
|
21 | }
|
22 |
|
23 | return mod;
|
24 | };
|
25 |
|
26 | function isErrorObject(error: unknown): error is Error {
|
27 | return (error as Error).stack !== undefined;
|
28 | }
|