diff --git a/packages/core/src/command/index.ts b/packages/core/src/command/index.ts index 0bce1fc4d..1208548ec 100644 --- a/packages/core/src/command/index.ts +++ b/packages/core/src/command/index.ts @@ -239,7 +239,7 @@ export class Commander { private defineElementDomain(name: keyof Argv.Domain, key = name, type = name) { this.domain(name, (source, session) => { - const code = h.from(source) + const code = h.from(source, { type }) if (code && code.type === type) { return code.attrs } diff --git a/packages/core/tests/parser.spec.ts b/packages/core/tests/parser.spec.ts index a8b440d1c..369901f04 100644 --- a/packages/core/tests/parser.spec.ts +++ b/packages/core/tests/parser.spec.ts @@ -163,4 +163,13 @@ describe('Parser API', () => { expect(cmd.parse('-- "foo;bar";baz', ';')).to.have.shape({ options: { rest: '"foo;bar"' }, rest: 'baz' }) }) }) + + describe('Types', () => { + it('img', () => { + cmd = app.command('img ') + expect(cmd.parse('')).to.have.shape({ args: [{ src: '/' }] }) + expect(cmd.parse('

')).to.have.shape({ 'error': 'internal.invalid-argument' }) + expect(cmd.parse('

')).to.have.shape({ args: [{ src: '/' }] }) + }) + }) })