forked from QwikDev/qwik
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlink-local-package.ts
37 lines (34 loc) · 1.29 KB
/
link-local-package.ts
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
import { link, mkdir, readdir, stat, rm } from 'fs/promises';
import { join, dirname, resolve } from 'path';
console.log('');
console.log('CREATING LOCALE PACKAGES');
const __dirname = dirname(new URL(import.meta.url).pathname);
const workspace = resolve(join(__dirname, '..'));
console.log('WORKSPACE', workspace);
const node_modules = join(workspace, 'node_modules');
const dstQwik = join(node_modules, '@builder.io', 'qwik');
const dstQwikCity = join(node_modules, '@builder.io', 'qwik-city');
const srcQwik = join(workspace, 'packages', 'qwik', 'dist');
const srcQwikCity = join(workspace, 'packages', 'qwik-city', 'lib');
main();
async function main() {
await mkdir(join(node_modules, '@builder.io'), { recursive: true });
linkDirFiles(srcQwik, dstQwik);
linkDirFiles(srcQwikCity, dstQwikCity);
}
async function linkDirFiles(src: string, dst: string) {
try {
await rm(dst, { recursive: true });
} catch (e) {}
await mkdir(dst, { recursive: true });
const files = await readdir(src);
for (const file of files) {
const fileStat = await stat(join(src, file));
if (fileStat.isDirectory()) {
linkDirFiles(join(src, file), join(dst, file));
} else {
console.log('LINKING', join(src, file), '=>', join(dst, file));
await link(join(src, file), join(dst, file));
}
}
}