diff --git a/.size-limit.json b/.size-limit.json index 9491dca7cd..8f6b1a4be7 100644 --- a/.size-limit.json +++ b/.size-limit.json @@ -30,7 +30,7 @@ { "name": "all", "path": "build/*", - "limit": "833.1 kB", + "limit": "833.6 kB", "brotli": false, "gzip": false } diff --git a/src/cli.ts b/src/cli.ts index b3edaaddbe..be53189a90 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -86,6 +86,7 @@ export const argv = minimist(process.argv.slice(2), { export async function main() { await import('./globals.js') + argv.ext = normalizeExt(argv.ext) if (argv.cwd) $.cwd = argv.cwd if (argv.verbose) $.verbose = true if (argv.quiet) $.quiet = true @@ -302,3 +303,9 @@ export function isMain( return false } + +export function normalizeExt(ext?: string) { + if (!ext) return + if (!/^\.?\w+(\.\w+)*$/.test(ext)) throw new Error(`Invalid extension ${ext}`) + return ext[0] === '.' ? ext : `.${ext}` +} diff --git a/test/cli.test.js b/test/cli.test.js index e9a9cce303..27201dbf67 100644 --- a/test/cli.test.js +++ b/test/cli.test.js @@ -16,7 +16,7 @@ import assert from 'node:assert' import { test, describe, before, after } from 'node:test' import { fileURLToPath } from 'node:url' import '../build/globals.js' -import { isMain } from '../build/cli.js' +import { isMain, normalizeExt } from '../build/cli.js' const __filename = fileURLToPath(import.meta.url) const spawn = $.spawn @@ -267,4 +267,11 @@ describe('cli', () => { } }) }) + + test('normalizeExt()', () => { + assert.equal(normalizeExt('.ts'), '.ts') + assert.equal(normalizeExt('ts'), '.ts') + assert.equal(normalizeExt(), undefined) + assert.throws(() => normalizeExt('.')) + }) })