Convert build scripts from CommonJS to ES Modules

- Convert all eng/*.js files to ES Modules (.mjs)
- Update package.json scripts to reference .mjs files
- Fix ERR_REQUIRE_ESM error with vfile v6.0.3
- Add __dirname polyfills for ES Modules
This commit is contained in:
Lyubomir Filipov 2025-11-17 09:48:10 +02:00
parent 076e9b28cc
commit 9dad4ae3aa
5 changed files with 33 additions and 20 deletions

View File

@ -1,4 +1,9 @@
const path = require("path");
import path from "path";
import { fileURLToPath } from "url";
import { dirname } from "path";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
// Template sections for the README
const TEMPLATES = {
@ -115,7 +120,7 @@ const MAX_COLLECTION_ITEMS = 50;
const DOCS_DIR = path.join(ROOT_FOLDER, "docs");
module.exports = {
export {
TEMPLATES,
vscodeInstallImage,
vscodeInsidersInstallImage,
@ -130,3 +135,4 @@ module.exports = {
MAX_COLLECTION_ITEMS,
DOCS_DIR,
};

18
eng/update-readme.js → eng/update-readme.mjs Executable file → Normal file
View File

@ -1,14 +1,16 @@
#!/usr/bin/env node
const fs = require("fs");
const path = require("path");
const {
import fs from "fs";
import path from "path";
import { fileURLToPath } from "url";
import { dirname } from "path";
import {
parseCollectionYaml,
extractMcpServers,
extractMcpServerConfigs,
parseFrontmatter,
} = require("./yaml-parser");
const {
} from "./yaml-parser.mjs";
import {
TEMPLATES,
AKA_INSTALL_URLS,
repoBaseUrl,
@ -21,7 +23,10 @@ const {
COLLECTIONS_DIR,
INSTRUCTIONS_DIR,
DOCS_DIR,
} = require("./constants");
} from "./constants.mjs";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
// Cache of MCP registry server names (lower-cased) loaded from github-mcp-registry.json
let MCP_REGISTRY_SET = null;
@ -968,3 +973,4 @@ try {
console.error(`Error generating category README files: ${error.message}`);
process.exit(1);
}

View File

@ -1,13 +1,13 @@
#!/usr/bin/env node
const fs = require("fs");
const path = require("path");
const { parseCollectionYaml, parseFrontmatter } = require("./yaml-parser");
const {
import fs from "fs";
import path from "path";
import { parseCollectionYaml, parseFrontmatter } from "./yaml-parser.mjs";
import {
ROOT_FOLDER,
COLLECTIONS_DIR,
MAX_COLLECTION_ITEMS,
} = require("./constants");
} from "./constants.mjs";
// Validation functions
function validateCollectionId(id) {
@ -370,3 +370,4 @@ try {
console.error(`Error during validation: ${error.message}`);
process.exit(1);
}

View File

@ -1,8 +1,8 @@
// YAML parser for collection files and frontmatter parsing using vfile-matter
const fs = require("fs");
const yaml = require("js-yaml");
const { VFile } = require("vfile");
const { matter } = require("vfile-matter");
import fs from "fs";
import yaml from "js-yaml";
import { VFile } from "vfile";
import { matter } from "vfile-matter";
function safeFileOperation(operation, filePath, defaultValue = null) {
try {
@ -137,7 +137,7 @@ function extractMcpServerConfigs(filePath) {
});
}
module.exports = {
export {
parseCollectionYaml,
parseFrontmatter,
extractAgentMetadata,

View File

@ -6,11 +6,11 @@
"private": true,
"scripts": {
"start": "npm run build",
"build": "node ./eng/update-readme.js",
"build": "node ./eng/update-readme.mjs",
"contributors:add": "all-contributors add",
"contributors:generate": "all-contributors generate",
"contributors:check": "all-contributors check",
"validate:collections": "node ./eng/validate-collections.js"
"validate:collections": "node ./eng/validate-collections.mjs"
},
"repository": {
"type": "git",