From 77a54b7663ee402095b232a05bed0dec6e6d66c7 Mon Sep 17 00:00:00 2001 From: undefined Date: Wed, 24 Feb 2021 13:29:42 +0800 Subject: [PATCH] workspace: auto export from src --- .gitignore | 1 - build/build.js | 15 +++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 535b3052..14481f1f 100644 --- a/.gitignore +++ b/.gitignore @@ -23,7 +23,6 @@ tsconfig.json packages/**/*.js !/build/build.js !**/bin/*.js -!packages/hydrojudge/service.js # Data files *.mmdb diff --git a/build/build.js b/build/build.js index cca990a7..974c4dcd 100644 --- a/build/build.js +++ b/build/build.js @@ -48,13 +48,24 @@ const configFlat = { const packages = fs.readdirSync(path.resolve(process.cwd(), 'packages')); console.log(packages); for (const package of packages) { - const files = fs.readdirSync(path.resolve(process.cwd(), 'packages', package)); + const basedir = path.resolve(process.cwd(), 'packages', package); + const files = fs.readdirSync(basedir); if (!files.includes('src') && !files.map(n => n.split('.')[1]).includes('ts')) continue; if (package !== 'hydrooj') config.references.push({ path: `packages/${package}` }); fs.writeFileSync( - path.resolve(process.cwd(), 'packages', package, 'tsconfig.json'), + path.resolve(basedir, 'tsconfig.json'), files.includes('src') ? JSON.stringify(configSrc) : JSON.stringify(configFlat), ); + if (files.includes('src')) { + const inner = fs.readdirSync(path.resolve(basedir, 'src')); + for (const file of inner) { + if (!fs.statSync(path.resolve(basedir, 'src', file)).isFile()) continue; + const name = file.split('.')[0]; + if (['handler', 'service', 'lib', 'model', 'script'].includes(name)) { + fs.writeFileSync(path.resolve(basedir, name + '.js'), `module.exports = require('./dist/${name}');\n`) + } + } + } } fs.writeFileSync(path.resolve(process.cwd(), 'tsconfig.json'), JSON.stringify(config));