From 1e13d17c0329495c544b28c9c5d4265aec4a08ac Mon Sep 17 00:00:00 2001 From: Alexander <96749659+Asys-sh@users.noreply.github.com> Date: Sun, 12 Jul 2026 20:41:44 +0200 Subject: [PATCH] fix(create-robo) fix(create-robo): align ESLint deps and allow Robo prereleases Pin generated ESLint dependencies to matching major 10 versions so npm does not resolve @eslint/js@10 alongside eslint@9 and fail with ERESOLVE. ESLint 10 requires JITI to load the eslint config when using typescript, added that too (owo) Relax @robojs/discordjs peer dependency on robo.js from ^0.11.0 to >=0.11.0-0 <0.12.0 so prerelease builds like 0.11.0-next.1 satisfy the peer range while still staying inside the 0.11 compatibility line. The new robo CLI accepted and the create-robo tool were differing in terms of signature so actually using npx create-robo@next was failing due to not decomposing the object properly like : ```` .handler(async (args, options) => {}) ```` vs ```` { args, options, logger, cwd, argv } ```` since create-cli expected parameters to be laid out different it would make it crash saying "cannot destructure property of env as options as it is undefined" --- packages/@robojs/discordjs/package.json | 2 +- packages/create-robo/src/index.ts | 2 +- packages/create-robo/src/robo.ts | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/@robojs/discordjs/package.json b/packages/@robojs/discordjs/package.json index 47232ed0c..1df1b554f 100644 --- a/packages/@robojs/discordjs/package.json +++ b/packages/@robojs/discordjs/package.json @@ -62,7 +62,7 @@ }, "peerDependencies": { "discord.js": "^14.0.0", - "robo.js": "^0.11.0" + "robo.js": ">=0.11.0-0 <0.12.0" }, "peerDependenciesMeta": { "robo.js": { diff --git a/packages/create-robo/src/index.ts b/packages/create-robo/src/index.ts index 712590e4a..8a7827dc8 100644 --- a/packages/create-robo/src/index.ts +++ b/packages/create-robo/src/index.ts @@ -58,7 +58,7 @@ new Command('create-robo ') .option('-rv', '--robo-version', 'specify a Robo.js version to use') .option('-k', '--kit', 'choose a kit to start off with your Robo') .option('-nc', '--no-creds', 'Skips asking for the credentials') - .handler(async (args: string[], options: CommandOptions) => { + .handler(async ({ args, options }: { args: string[]; options: CommandOptions }) => { const { env } = options logger({ level: options.verbose ? 'debug' : 'info' diff --git a/packages/create-robo/src/robo.ts b/packages/create-robo/src/robo.ts index 222323eea..5d25d45dd 100644 --- a/packages/create-robo/src/robo.ts +++ b/packages/create-robo/src/robo.ts @@ -798,8 +798,8 @@ export default class Robo { const ext = this._useTypeScript ? 'ts' : 'mjs' if (features.includes('eslint')) { - devDependencies.push('eslint@9') - devDependencies.push('@eslint/js') + devDependencies.push('eslint@10') + devDependencies.push('@eslint/js@10') devDependencies.push('globals') this._packageJson.scripts['lint'] = runPrefix + 'lint:eslint' this._packageJson.scripts['lint:eslint'] = `eslint -c config/eslint.${ext} .` @@ -807,6 +807,7 @@ export default class Robo { if (this._useTypeScript) { eslintConfig = EslintConfigTypescript + devDependencies.push('jiti') devDependencies.push('typescript-eslint') } await fs.writeFile(path.join(this._workingDir, 'config', `eslint.${ext}`), eslintConfig, 'utf-8')