feat: Parser.foreach should concurrently process records as they are read
User-provided callback no longer blocks subsequent reads
This commit is contained in:
32
bun/fmt.js
32
bun/fmt.js
@@ -1,27 +1,27 @@
|
||||
/** @type {(parser: string, ps: string[]) => import("bun").Subprocess} */
|
||||
const prettier = (parser, ps) =>
|
||||
Bun.spawn(['bun', 'x', 'prettier', '--write', '--parser', parser, ...ps], {
|
||||
stdout: 'inherit',
|
||||
stderr: 'inherit',
|
||||
})
|
||||
Bun.spawn(["bun", "x", "prettier", "--write", "--parser", parser, ...ps], {
|
||||
stdout: "inherit",
|
||||
stderr: "inherit",
|
||||
});
|
||||
|
||||
const procs = [
|
||||
prettier('babel', ['./src/**/*.js', './bun/**/*.js', './.prettierrc.cjs']),
|
||||
prettier('json', ['./package.json', './jsconfig.json']),
|
||||
prettier("babel", ["./src/**/*.js", "./bun/**/*.js", "./.prettierrc.cjs"]),
|
||||
prettier("json", ["./package.json", "./jsconfig.json"]),
|
||||
Bun.spawn(
|
||||
[
|
||||
'bun',
|
||||
'x',
|
||||
'purs-tidy',
|
||||
'format-in-place',
|
||||
'src/**/*.purs',
|
||||
'test/**/*.purs',
|
||||
"bun",
|
||||
"x",
|
||||
"purs-tidy",
|
||||
"format-in-place",
|
||||
"src/**/*.purs",
|
||||
"test/**/*.purs",
|
||||
],
|
||||
{
|
||||
stdout: 'inherit',
|
||||
stderr: 'inherit',
|
||||
stdout: "inherit",
|
||||
stderr: "inherit",
|
||||
},
|
||||
),
|
||||
]
|
||||
];
|
||||
|
||||
await Promise.all(procs.map(p => p.exited))
|
||||
await Promise.all(procs.map((p) => p.exited));
|
||||
|
||||
@@ -1,34 +1,34 @@
|
||||
import { readFile, writeFile } from 'fs/promises'
|
||||
import { execSync } from 'child_process'
|
||||
import { readFile, writeFile } from "fs/promises";
|
||||
import { execSync } from "child_process";
|
||||
|
||||
let ver = process.argv[2]
|
||||
let ver = process.argv[2];
|
||||
if (!ver) {
|
||||
console.error(`tag required: bun bun/prepare.js v1.0.0`)
|
||||
process.exit(1)
|
||||
console.error(`tag required: bun bun/prepare.js v1.0.0`);
|
||||
process.exit(1);
|
||||
} else if (!/v\d+\.\d+\.\d+/.test(ver)) {
|
||||
console.error(`invalid tag: ${ver}`)
|
||||
process.exit(1)
|
||||
console.error(`invalid tag: ${ver}`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
ver = (/\d+\.\d+\.\d+/.exec(ver) || [])[0] || ''
|
||||
ver = (/\d+\.\d+\.\d+/.exec(ver) || [])[0] || "";
|
||||
|
||||
const pkg = await readFile('./package.json', 'utf8')
|
||||
const pkgnew = pkg.replace(/"version": ".+"/, `"version": "v${ver}"`)
|
||||
await writeFile('./package.json', pkgnew)
|
||||
const pkg = await readFile("./package.json", "utf8");
|
||||
const pkgnew = pkg.replace(/"version": ".+"/, `"version": "v${ver}"`);
|
||||
await writeFile("./package.json", pkgnew);
|
||||
|
||||
const spago = await readFile('./spago.yaml', 'utf8')
|
||||
const spagonew = spago.replace(/version: .+/, `version: '${ver}'`)
|
||||
await writeFile('./spago.yaml', spagonew)
|
||||
const spago = await readFile("./spago.yaml", "utf8");
|
||||
const spagonew = spago.replace(/version: .+/, `version: '${ver}'`);
|
||||
await writeFile("./spago.yaml", spagonew);
|
||||
|
||||
const readme = await readFile('./README.md', 'utf8')
|
||||
const readme = await readFile("./README.md", "utf8");
|
||||
const readmenew = readme.replace(
|
||||
/packages\/purescript-csv-stream\/.+?\//g,
|
||||
`/packages/purescript-csv-stream/${ver}/`,
|
||||
)
|
||||
await writeFile('./README.md', readmenew)
|
||||
);
|
||||
await writeFile("./README.md", readmenew);
|
||||
|
||||
execSync(`git add spago.yaml package.json README.md`)
|
||||
execSync(`git commit -m 'chore: prepare v${ver}'`)
|
||||
execSync(`git tag v${ver}`)
|
||||
execSync(`git push --tags`)
|
||||
execSync(`git push --mirror github-mirror`)
|
||||
execSync(`git add spago.yaml package.json README.md`);
|
||||
execSync(`git commit -m 'chore: prepare v${ver}'`);
|
||||
execSync(`git tag v${ver}`);
|
||||
execSync(`git push --tags`);
|
||||
execSync(`git push --mirror github-mirror`);
|
||||
|
||||
Reference in New Issue
Block a user