Skip to content

fix(scripts): delete an unnecessary parameter #8527

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Nov 10, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 36 additions & 2 deletions scripts/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,30 @@ async function run() {
}
}

/**
* Builds all the targets in parallel.
* @param {Array<string>} targets - An array of targets to build.
* @returns {Promise<void>} - A promise representing the build process.
*/
async function buildAll(targets) {
await runParallel(cpus().length, targets, build)
}

/**
* Runs iterator function in parallel.
* @template T - The type of items in the data source
* @param {number} maxConcurrency - The maximum concurrency.
* @param {Array<T>} source - The data source
* @param {(item: T) => Promise<void>} iteratorFn - The iteratorFn
* @returns {Promise<void[]>} - A Promise array containing all iteration results.
*/
async function runParallel(maxConcurrency, source, iteratorFn) {
/**@type {Promise<void>[]} */
const ret = []
/**@type {Promise<void>[]} */
const executing = []
for (const item of source) {
const p = Promise.resolve().then(() => iteratorFn(item, source))
const p = Promise.resolve().then(() => iteratorFn(item))
ret.push(p)

if (maxConcurrency <= source.length) {
Expand All @@ -96,7 +111,11 @@ async function runParallel(maxConcurrency, source, iteratorFn) {
}
return Promise.all(ret)
}

/**
* Builds the target.
* @param {string} target - The target to build.
* @returns {Promise<void>} - A promise representing the build process.
*/
async function build(target) {
const pkgDir = path.resolve(`packages/${target}`)
const pkg = require(`${pkgDir}/package.json`)
Expand Down Expand Up @@ -134,6 +153,11 @@ async function build(target) {
)
}

/**
* Checks the sizes of all targets.
* @param {string[]} targets - The targets to check sizes for.
* @returns {Promise<void>}
*/
async function checkAllSizes(targets) {
if (devOnly || (formats && !formats.includes('global'))) {
return
Expand All @@ -145,6 +169,11 @@ async function checkAllSizes(targets) {
console.log()
}

/**
* Checks the size of a target.
* @param {string} target - The target to check the size for.
* @returns {Promise<void>}
*/
async function checkSize(target) {
const pkgDir = path.resolve(`packages/${target}`)
await checkFileSize(`${pkgDir}/dist/${target}.global.prod.js`)
Expand All @@ -153,6 +182,11 @@ async function checkSize(target) {
}
}

/**
* Checks the file size.
* @param {string} filePath - The path of the file to check the size for.
* @returns {Promise<void>}
*/
async function checkFileSize(filePath) {
if (!existsSync(filePath)) {
return
Expand Down