From b0df7024e6d2b27029808cdf9efa64c35ff002c7 Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 16 Apr 2021 22:06:07 +0800 Subject: [PATCH] core: change build script to plain javascript --- .gitignore | 2 +- build/build.js | 1 - build/{jest.ts => jest.js} | 3 +-- build/{publish.ts => publish.js} | 15 +++++++-------- build/{start.ts => start.js} | 17 ++++++++--------- build/{utils.ts => utils.js} | 24 ++++++++++-------------- packages/hydrojudge/package.json | 3 --- tsconfig.build.json | 21 --------------------- 8 files changed, 27 insertions(+), 59 deletions(-) rename build/{jest.ts => jest.js} (94%) rename build/{publish.ts => publish.js} (88%) rename build/{start.ts => start.js} (77%) rename build/{utils.ts => utils.js} (62%) delete mode 100644 tsconfig.build.json diff --git a/.gitignore b/.gitignore index 6254ccf7..9d8d0ce9 100644 --- a/.gitignore +++ b/.gitignore @@ -24,7 +24,7 @@ tsconfig.json # Project Rules ## Core packages/**/*.js -!/build/build.js +!/build/*.js !**/bin/*.js !*.page.js !/install/jssh.d.ts diff --git a/build/build.js b/build/build.js index 7306415e..91289dca 100644 --- a/build/build.js +++ b/build/build.js @@ -18,7 +18,6 @@ const compilerOptionsBase = { const config = { compilerOptions: compilerOptionsBase, references: [ - { path: 'tsconfig.build.json' }, { path: 'packages/hydrooj' }, ], files: [], diff --git a/build/jest.ts b/build/jest.js similarity index 94% rename from build/jest.ts rename to build/jest.js index 4343b8fe..b01271c9 100644 --- a/build/jest.ts +++ b/build/jest.js @@ -1,8 +1,7 @@ /* eslint-disable import/no-extraneous-dependencies */ -import spawn from 'cross-spawn'; +const spawn = require('cross-spawn'); const args = ['jest', '--coverage']; - const [, , argv2, argv3] = process.argv; if (argv2 && !argv2.startsWith('-')) { diff --git a/build/publish.ts b/build/publish.js similarity index 88% rename from build/publish.ts rename to build/publish.js index d908bbb0..8701d0ee 100644 --- a/build/publish.ts +++ b/build/publish.js @@ -3,12 +3,11 @@ /* eslint-disable consistent-return */ /* eslint-disable no-await-in-loop */ /* eslint-disable import/no-dynamic-require */ -import { gt } from 'semver'; -import latest from 'latest-version'; -import ora from 'ora'; -import { - PackageJson, getWorkspaces, spawnAsync, -} from './utils'; + +const { gt } = require('semver'); +const latest = require('latest-version'); +const ora = require('ora'); +const { getWorkspaces, spawnAsync } = require('./utils'); const { CI, GITHUB_EVENT_NAME, GITHUB_REF, @@ -28,12 +27,12 @@ if (CI && (!tag || GITHUB_EVENT_NAME !== 'push')) { } const spinner = ora(); - const bumpMap: Record = {}; + const bumpMap = {}; let progress = 0; spinner.start(`Loading workspaces (0/${folders.length})`); await Promise.all(folders.map(async (name) => { - let meta: PackageJson; + let meta; try { meta = require(`../${name}/package.json`); if (!meta.private) { diff --git a/build/start.ts b/build/start.js similarity index 77% rename from build/start.ts rename to build/start.js index ac6aaf5a..0e33d14d 100644 --- a/build/start.ts +++ b/build/start.js @@ -1,13 +1,12 @@ /* eslint-disable no-console */ /* eslint-disable import/no-extraneous-dependencies */ -import os from 'os'; -import path from 'path'; -import cluster from 'cluster'; -import fs from 'fs-extra'; -import { filter } from 'lodash'; -import { argv } from 'yargs'; -// @ts-ignore -import * as hydro from 'hydrooj'; +const os = require('os'); +const path = require('path'); +const cluster = require('cluster'); +const fs = require('fs-extra'); +const { filter } = require('lodash'); +const { argv } = require('yargs'); +const hydro = require('hydrooj'); if (!cluster.isMaster) { // Forked by hydro @@ -25,7 +24,7 @@ if (!cluster.isMaster) { fs.writeFileSync(addonPath, JSON.stringify(addons, null, 2)); try { - const ui = argv.ui as string || '@hydrooj/ui-default'; + const ui = argv.ui || '@hydrooj/ui-default'; require.resolve(ui); addons = [ui, ...addons]; } catch (e) { diff --git a/build/utils.ts b/build/utils.js similarity index 62% rename from build/utils.ts rename to build/utils.js index f3748161..c4385c3c 100644 --- a/build/utils.ts +++ b/build/utils.js @@ -1,11 +1,11 @@ /* eslint-disable no-console */ /* eslint-disable import/no-extraneous-dependencies */ -import globby from 'globby'; -import spawn from 'cross-spawn'; +const globby = require('globby'); +const spawn = require('cross-spawn'); -export const cwd = process.cwd(); +const cwd = process.cwd(); -export function getWorkspaces() { +function getWorkspaces() { return globby(require('../package').workspaces, { cwd, deep: 0, @@ -14,15 +14,7 @@ export function getWorkspaces() { }); } -export type DependencyType = 'dependencies' | 'devDependencies' | 'peerDependencies' | 'optionalDependencies'; - -export interface PackageJson extends Partial>> { - name?: string - private?: boolean - version?: string -} - -export function spawnSync(command: string, silent?: boolean) { +function spawnSync(command: string, silent?: boolean) { if (!silent) console.log(`$ ${command}`); const args = command.split(/\s+/); const result = spawn.sync(args[0], [...args.slice(1), '--color'], { cwd, encoding: 'utf8' }); @@ -34,7 +26,7 @@ export function spawnSync(command: string, silent?: boolean) { } } -export function spawnAsync(command: string) { +function spawnAsync(command: string) { const args = command.split(/\s+/); const child = spawn(args[0], args.slice(1), { stdio: 'inherit' }); return new Promise((resolve, reject) => { @@ -42,3 +34,7 @@ export function spawnAsync(command: string) { child.on('error', reject); }); } + +module.exports = { + cwd, spawnSync, spawnAsync, getWorkspaces, +}; diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index faa9d9f6..0e47e645 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -2,9 +2,6 @@ "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", "version": "2.5.1", - "os": [ - "linux" - ], "main": "package.json", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/tsconfig.build.json b/tsconfig.build.json deleted file mode 100644 index daefa179..00000000 --- a/tsconfig.build.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "compilerOptions": { - "target": "es2019", - "module": "commonjs", - "esModuleInterop": true, - "moduleResolution": "node", - "declaration": true, - "sourceMap": true, - "composite": true, - "strictBindCallApply": true, - "experimentalDecorators": true, - "outDir": "build", - "rootDir": "build" - }, - "include": [ - "build" - ], - "exclude": [ - "packages" - ] -} \ No newline at end of file