-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbuild.js
More file actions
60 lines (53 loc) · 1.94 KB
/
build.js
File metadata and controls
60 lines (53 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import { build } from 'esbuild';
import { readdir, copyFile, mkdir } from 'fs/promises';
import { join, dirname } from 'path';
import { fileURLToPath } from 'url';
const __dirname = dirname(fileURLToPath(import.meta.url));
const copyTypes = async () => {
try {
await mkdir(join(__dirname, 'lib', 'types'), { recursive: true });
const typeFiles = await readdir(join(__dirname, '@types'));
for (const file of typeFiles) {
if (file.endsWith('.d.ts')) {
await copyFile(join(__dirname, '@types', file), join(__dirname, 'lib', 'types', file));
}
}
} catch (error) {
console.error('Error copying types:', error.message);
}
};
const buildLib = async () => {
try {
await build({
entryPoints: ['src/index.js'],
bundle: true,
outdir: 'lib',
outExtension: { '.js': '.js' },
format: 'esm',
platform: 'node',
target: 'node16',
external: ['puppeteer-extra', 'puppeteer-extra-plugin-stealth', 'puppeteer-extra-plugin-user-preferences', 'rebrowser-puppeteer', 'ghost-cursor', 'debug', 'bezier-js', 'fs'],
preserveSymlinks: true,
sourcemap: true
});
await build({
entryPoints: ['src/index.js'],
bundle: true,
outdir: 'lib',
outExtension: { '.js': '.cjs' },
format: 'cjs',
platform: 'node',
target: 'node16',
external: ['puppeteer-extra', 'puppeteer-extra-plugin-stealth', 'puppeteer-extra-plugin-user-preferences', 'rebrowser-puppeteer', 'ghost-cursor', 'debug', 'bezier-js', 'fs'],
preserveSymlinks: true,
sourcemap: true
});
} catch (error) {
console.error(error.message);
process.exit(1);
}
};
const main = async () => {
await Promise.all([buildLib(), copyTypes()]);
};
main().catch(console.error);