ci: build with noEmit

This commit is contained in:
undefined committed 2021-07-29 14:15:44 +08:00
1 parent 0cd91d7475
commit 68f5977e36
7 files changed
+39 -11

No files matched your search

+4 -3
View File
@@ -7,11 +7,12 @@ const compilerOptionsBase = {
esModuleInterop: true, esModuleInterop: true,
moduleResolution: 'node', moduleResolution: 'node',
declaration: true, declaration: true,
sourceMap: true, sourceMap: false,
composite: true, composite: true,
strictBindCallApply: true, strictBindCallApply: true,
experimentalDecorators: true, experimentalDecorators: true,
emitDecoratorMetadata: true, emitDecoratorMetadata: true,
noEmit: true,
}; };
const config = { const config = {
compilerOptions: compilerOptionsBase, compilerOptions: compilerOptionsBase,
@@ -23,7 +24,7 @@ const config = {
const configSrc = { const configSrc = {
compilerOptions: { compilerOptions: {
...compilerOptionsBase, ...compilerOptionsBase,
outDir: 'dist', outDir: 'src',
rootDir: 'src', rootDir: 'src',
}, },
include: ['src'], include: ['src'],
@@ -60,7 +61,7 @@ for (const package of packages) {
if (!fs.statSync(path.resolve(basedir, 'src', file)).isFile()) continue; if (!fs.statSync(path.resolve(basedir, 'src', file)).isFile()) continue;
const name = file.split('.')[0]; const name = file.split('.')[0];
if (['handler', 'service', 'lib', 'model', 'script'].includes(name)) { 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(basedir, `${name}.js`), `module.exports = require('./src/${name}');\n`);
} }
} }
} }
+29 -2
View File
@@ -1,7 +1,34 @@
#!/usr/bin/env node #!/usr/bin/env node
const argv = require('cac')().parse(); const argv = require('cac')().parse();
const esbuild = require('esbuild');
let transformTimeUsage = 0;
let displayTimeout;
function transform(type, filename) {
const start = new Date();
const result = esbuild.buildSync({
entryPoints: [filename],
sourcemap: 'inline',
platform: 'node',
format: 'cjs',
target: `node${process.version.split('.')[0].split('v')[1]}`,
jsx: 'transform',
write: false,
});
if (result.warnings.length) console.warn(result.warnings);
transformTimeUsage += new Date().getTime() - start.getTime();
if (displayTimeout) clearTimeout(displayTimeout);
displayTimeout = setTimeout(() => console.log(`Code transform took ${transformTimeUsage}ms`), 1000);
return result.outputFiles[0].text;
}
require.extensions['.ts'] = function loader(module, filename) {
return module._compile(transform('ts', filename), filename);
};
require.extensions['.tsx'] = function loader(module, filename) {
return module._compile(transform('tsx', filename), filename);
};
if (argv.options.debug) process.env.DEV = 'on'; if (argv.options.debug) process.env.DEV = 'on';
if (argv.args[0] === 'cache') require('../dist/cache')(); if (argv.args[0] === 'cache') require('../src/cache')();
else require('../dist/daemon')(); else require('../src/daemon')();
+1 -1
View File
@@ -1 +1 @@
module.exports = require('./dist/service'); module.exports = require('./src/service');
+1 -1
View File
@@ -10,7 +10,7 @@
"@types/superagent": "^4.1.12" "@types/superagent": "^4.1.12"
}, },
"peerDependencies": { "peerDependencies": {
"hydrooj": "workspace:*" "hydrooj": "*"
}, },
"dependencies": { "dependencies": {
"superagent": "^6.1.0" "superagent": "^6.1.0"
+1 -1
View File
@@ -10,7 +10,7 @@
"@types/superagent": "^4.1.12" "@types/superagent": "^4.1.12"
}, },
"peerDependencies": { "peerDependencies": {
"hydrooj": "workspace:*" "hydrooj": "*"
}, },
"dependencies": { "dependencies": {
"superagent": "^6.1.0" "superagent": "^6.1.0"
+1 -1
View File
@@ -10,7 +10,7 @@
"@types/superagent": "^4.1.12" "@types/superagent": "^4.1.12"
}, },
"peerDependencies": { "peerDependencies": {
"hydrooj": "workspace:*" "hydrooj": "*"
}, },
"dependencies": { "dependencies": {
"superagent": "^6.1.0" "superagent": "^6.1.0"
+2 -2
View File
@@ -13,8 +13,8 @@ declare module 'hydrooj/src/interface' {
} }
interface DomainDoc { interface DomainDoc {
mount: string; mount?: string;
mountInfo: any; mountInfo?: any;
} }
} }
export interface IBasicProvider { export interface IBasicProvider {