mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
* Add a zig fmt action * add failing file * Setup prettier better * Update prettier-fmt.yml * Fail on error * Update prettier-fmt.yml * boop * boop2 * tar.gz * Update zig-fmt.yml * Update zig-fmt.yml * Update zig-fmt.yml * Update zig-fmt.yml * Update zig-fmt.yml * boop * Update prettier-fmt.yml * tag * newlines * multiline * fixup * Update zig-fmt.yml * update it * fixup * both * w * Update prettier-fmt.yml * prettier all the things * Update package.json * zig fmt * ❌ ✅ * bump * . * quotes * fix prettier ignore * once more * Update prettier-fmt.yml * Update fallback.ts * consistentcy --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
138 lines
3.6 KiB
JavaScript
138 lines
3.6 KiB
JavaScript
const fs = require("fs");
|
|
const path = require("path");
|
|
const { execSync } = require("child_process");
|
|
|
|
const exec = (cmd, opts = {}) => {
|
|
console.log("$", cmd);
|
|
return execSync(cmd, {
|
|
...opts,
|
|
env: { CI: "true", ...process.env, ...(opts.env || {}) },
|
|
});
|
|
};
|
|
|
|
const DRY_RUN = !!process.env.DRY_RUN;
|
|
|
|
var count = 0;
|
|
|
|
const examplesFolderEntries = fs.readdirSync(path.join(process.cwd(), "examples"), { withFileTypes: true });
|
|
|
|
const packageNames = [];
|
|
|
|
for (let folder of examplesFolderEntries) {
|
|
if (!folder.isDirectory()) continue;
|
|
const absolute = path.resolve(process.cwd(), "examples", folder.name);
|
|
|
|
let packageJSONText;
|
|
|
|
try {
|
|
packageJSONText = fs.readFileSync(path.join(absolute, "package.json"), "utf8");
|
|
} catch {
|
|
continue;
|
|
}
|
|
|
|
let packageJSON = JSON.parse(packageJSONText);
|
|
|
|
if (!packageJSON.name) continue;
|
|
if (!packageJSON.name.startsWith("@bun-examples")) continue;
|
|
|
|
var version = "0.0.1";
|
|
try {
|
|
const _versions = exec(`npm view ${packageJSON.name} versions --json`).toString().trim();
|
|
|
|
if (_versions.length > 0) {
|
|
const versionsArray = JSON.parse(_versions);
|
|
version = versionsArray[versionsArray.length - 1];
|
|
}
|
|
} catch (exception) {
|
|
console.error(exception);
|
|
}
|
|
var retryCount = 5;
|
|
|
|
// Never commit lockfiles
|
|
try {
|
|
fs.rmSync(path.join(absolute, "package-lock.json"));
|
|
} catch (exception) {}
|
|
|
|
try {
|
|
fs.rmSync(path.join(absolute, "yarn.lock"));
|
|
} catch (exception) {}
|
|
|
|
try {
|
|
fs.rmSync(path.join(absolute, "pnpm-lock.yaml"));
|
|
} catch (exception) {}
|
|
|
|
try {
|
|
fs.copyFileSync(path.join(absolute, ".gitignore"), path.join(absolute, "gitignore"));
|
|
} catch (exception) {}
|
|
|
|
restart: while (retryCount-- > 0) {
|
|
packageJSON.version = require("semver").inc(packageJSON.version, "patch");
|
|
if ("private" in packageJSON) delete packageJSON.private;
|
|
if ("license" in packageJSON) delete packageJSON.license;
|
|
if ("main" in packageJSON && !("module" in packageJSON)) {
|
|
packageJSON.module = packageJSON.main;
|
|
delete packageJSON.main;
|
|
}
|
|
|
|
fs.writeFileSync(path.join(absolute, "package.json"), JSON.stringify(packageJSON, null, 2));
|
|
try {
|
|
exec(`npm version patch --force --no-commit-hooks --no-git-tag-version`, {
|
|
cwd: absolute,
|
|
});
|
|
|
|
packageJSON = JSON.parse(fs.readFileSync(path.join(absolute, "package.json"), "utf8"));
|
|
version = packageJSON.version;
|
|
} catch (e) {
|
|
if (e.code !== "E404") {
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
try {
|
|
exec(`npm publish ${DRY_RUN ? "--dry-run" : ""} --access public --registry https://registry.npmjs.org/`, {
|
|
cwd: absolute,
|
|
});
|
|
packageNames.push([
|
|
packageJSON.name,
|
|
{
|
|
version: packageJSON.version,
|
|
description: packageJSON.description || "",
|
|
},
|
|
]);
|
|
count++;
|
|
break;
|
|
} catch (exception) {
|
|
continue restart;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (packageNames.length > 0) {
|
|
const packageJSON = {
|
|
name: "bun-examples-all",
|
|
private: false,
|
|
version: `0.0.${Date.now()}`,
|
|
description: "All bun-examples",
|
|
examples: Object.fromEntries(packageNames),
|
|
};
|
|
const dir = path.join(process.cwd(), "examples/bun-examples-all");
|
|
try {
|
|
fs.rmSync(dir, {
|
|
recursive: true,
|
|
force: true,
|
|
});
|
|
} catch (exception) {}
|
|
|
|
try {
|
|
fs.mkdirSync(dir, {
|
|
recursive: true,
|
|
});
|
|
} catch (exception) {}
|
|
fs.writeFileSync(path.join(dir, "package.json"), JSON.stringify(packageJSON, null, 2));
|
|
exec(`npm publish ${DRY_RUN ? "--dry-run" : ""} --access public --registry https://registry.npmjs.org/`, {
|
|
cwd: dir,
|
|
});
|
|
}
|
|
|
|
console.log(`Published ${count} packages`);
|