Skip to content

Commit 58fb373

Browse files
authored
fix: resolve display exception when command contains equal sign (#21)
1 parent d538c3b commit 58fb373

File tree

2 files changed

+21
-16
lines changed

2 files changed

+21
-16
lines changed

src/utils.ts

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -103,22 +103,9 @@ export function resolveAlias(value: string): Pick<Alias, 'aliasName' | 'command'
103103
}
104104

105105
const formatValue = value.slice(5).trim()
106-
let aliasName = ''
107-
let command = ''
108-
let hasEqual = false
109-
110-
for (const char of formatValue) {
111-
if (char === '=') {
112-
hasEqual = true
113-
continue
114-
}
115-
116-
if (!hasEqual) {
117-
aliasName += char
118-
} else {
119-
command += char
120-
}
121-
}
106+
const equalIndex = formatValue.indexOf('=')
107+
const aliasName = formatValue.slice(0, equalIndex)
108+
let command = equalIndex !== -1 ? formatValue.slice(equalIndex + 1) : ''
122109

123110
// don't allow the last char of alias name to be a space
124111
if (aliasName.charAt(aliasName.length - 1) === ' ') {

tests/utils.spec.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,24 @@ describe('test alias resolve', () => {
7979
command: 'node',
8080
})
8181
})
82+
83+
it('command contains single equal sign', () => {
84+
const alias = {
85+
aliasName: 'nr',
86+
command: 'npm config set registry=https://registry.npmjs.org/',
87+
}
88+
const value = `alias nr='npm config set registry=https://registry.npmjs.org/'`
89+
expect(resolveAlias(value)).toStrictEqual(alias)
90+
})
91+
92+
it('command contains multiple equal signs', () => {
93+
const alias = {
94+
aliasName: 'dev',
95+
command: 'tsup src/index.ts --format esm,cjs,iife --out-dir=lib --global-name=Rattail --dts --clean',
96+
}
97+
const value = `alias dev='tsup src/index.ts --format esm,cjs,iife --out-dir=lib --global-name=Rattail --dts --clean'`
98+
expect(resolveAlias(value)).toStrictEqual(alias)
99+
})
82100
})
83101

84102
describe('test same alias', () => {

0 commit comments

Comments
 (0)