36 lines
874 B
JavaScript
36 lines
874 B
JavaScript
import * as fs from "node:fs/promises";
|
|
|
|
const packageJsonPath = "./package.json";
|
|
const authorString = "Brandon Kalinowski <brandon@brandonkalinowski.com> (http://brandonkalinowski.com/)";
|
|
|
|
const keysOrdered = [
|
|
"name",
|
|
"version",
|
|
"description",
|
|
"author",
|
|
"keywords",
|
|
"homepage",
|
|
"dependencies",
|
|
"pulumi",
|
|
];
|
|
|
|
const packageJsonString = await fs.readFile(packageJsonPath, 'utf8');
|
|
const packageJson = JSON.parse(packageJsonString);
|
|
packageJson.author = authorString;
|
|
|
|
function sortAndFilterTopLevelKeys(obj, order) {
|
|
const sorted = {};
|
|
for (const key of order) {
|
|
if (key in obj) {
|
|
sorted[key] = obj[key];
|
|
}
|
|
}
|
|
return sorted;
|
|
}
|
|
|
|
const newPackageJsonString = JSON.stringify(sortAndFilterTopLevelKeys(packageJson, keysOrdered), null, 4);
|
|
await fs.writeFile(
|
|
packageJsonPath,
|
|
newPackageJsonString,
|
|
);
|