diff --git a/dev-scripts/gen-parser-map.mjs b/dev-scripts/gen-parser-map.mjs index d6f326c3..d77c0632 100644 --- a/dev-scripts/gen-parser-map.mjs +++ b/dev-scripts/gen-parser-map.mjs @@ -1,4 +1,3 @@ -import glob from 'glob'; import path from 'path'; import fs from 'fs'; import url from 'url'; @@ -8,18 +7,26 @@ const misc_imports = []; const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); -glob.sync('../src/parser/classes/**/*.{js,ts}', { cwd: __dirname }) - .forEach((file) => { - // Trim path - const is_misc = file.includes('/misc/'); - file = file.replace('../src/parser/classes/', '').replace('.js', '').replace('.ts', ''); - const import_name = file.split('/').pop(); +// Use case-insensitive sorting, to ensure the order stays consistent between runs +const collator = new Intl.Collator('en', { sensitivity: 'base' }); - if (is_misc) { - const class_name = file.split('/').pop().replace('.js', '').replace('.ts', ''); - misc_imports.push(`export { default as ${class_name} } from './classes/${file}.js';`); - } else { - import_list.push(`export { default as ${import_name} } from './classes/${file}.js';`); +fs.readdirSync(path.join(__dirname, '../src/parser/classes'), { recursive: true }) + .sort((a, b) => collator.compare(a, b)) + .forEach((file) => { + if (file.endsWith('.ts') || file.endsWith('.js')) { + // Convert Windows paths to posix ones + file = file.replaceAll('\\', '/') + + // Trim path + const is_misc = file.startsWith('misc/'); + file = file.replace('.js', '').replace('.ts', ''); + const import_name = file.split('/').pop(); + + if (is_misc) { + misc_imports.push(`export { default as ${import_name} } from './classes/${file}.js';`); + } else { + import_list.push(`export { default as ${import_name} } from './classes/${file}.js';`); + } } }); diff --git a/package-lock.json b/package-lock.json index 698fa851..9c889eec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,6 @@ "cpy-cli": "^4.2.0", "esbuild": "^0.25.6", "eslint": "^9.9.0", - "glob": "^8.0.3", "globals": "^16.4.0", "replace": "^1.2.2", "rimraf": "^6.0.1", @@ -2658,12 +2657,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -2697,26 +2690,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -2729,27 +2702,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/global-prefix": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-4.0.0.tgz", @@ -2943,23 +2895,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, "node_modules/ini": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", @@ -3450,15 +3385,6 @@ "node": ">=10" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -5158,12 +5084,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, "node_modules/yaml": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", diff --git a/package.json b/package.json index 368a8fb9..75747d72 100644 --- a/package.json +++ b/package.json @@ -116,7 +116,6 @@ "cpy-cli": "^4.2.0", "esbuild": "^0.25.6", "eslint": "^9.9.0", - "glob": "^8.0.3", "globals": "^16.4.0", "replace": "^1.2.2", "rimraf": "^6.0.1",