Skip to content

Commit 0585a0c

Browse files
authored
refactor: optimize code (#23)
* refactor: optimize code * refactor: optimize code
1 parent 590aae5 commit 0585a0c

File tree

3 files changed

+36
-31
lines changed

3 files changed

+36
-31
lines changed

src/extension.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -170,14 +170,11 @@ class AliasView implements vscode.TreeDataProvider<AliasItem> {
170170
}
171171

172172
convertAliasToObject() {
173-
const data = this.globalState.keys().reduce((acc: Record<string, Alias[]>, key: string) => {
174-
const aliases = normalizeAliasesToArray<Alias>(this.globalState.get(key))
175-
Reflect.set(acc, key, aliases)
176-
177-
return acc
178-
}, {})
173+
const aliases = this.globalState
174+
.keys()
175+
.map((key) => [key, normalizeAliasesToArray<Alias>(this.globalState.get(key))])
179176

180-
return data
177+
return Object.fromEntries(aliases)
181178
}
182179

183180
async exportAlias() {

src/utils.ts

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { isArray, isEmpty } from 'rattail'
1+
import { isArray } from 'rattail'
22
import type { Alias } from './types'
33

44
/**
@@ -158,9 +158,7 @@ export function normalizeAliasesToArray<T>(value: T[] | undefined) {
158158
* @returns {string}
159159
*/
160160
export function formatUnaliasCommand(aliases: Alias[]) {
161-
return aliases.reduce((acc, alias) => {
162-
return `${acc} ${alias.aliasName}`
163-
}, 'unalias')
161+
return aliases.reduce((acc, alias) => `${acc} ${alias.aliasName}`, 'unalias')
164162
}
165163

166164
/**
@@ -200,31 +198,25 @@ export function mergeAlias(source: Record<string, Alias[]>, target: Record<strin
200198

201199
/**
202200
* get all aliases from text
203-
* @param {string} content
201+
* @param {string} text
204202
* @returns {Alias[]}
205203
*/
206-
export function filterAliases(content: string) {
207-
if (isEmpty(content)) {
204+
export function filterAliases(text: string) {
205+
const trimText = text.trim()
206+
if (trimText.length === 0) {
208207
return []
209208
}
210209

211-
const aliases = content
210+
const aliases = trimText
212211
.split('\n')
212+
.map((text) => resolveAlias(text.trim()))
213213
.filter(Boolean)
214-
.map((text) => text.trim())
215-
.reduce((acc: Alias[], text) => {
216-
const alias = resolveAlias(text)
217-
if (alias) {
218-
const { aliasName, command } = alias
219-
acc.push({
220-
aliasName,
221-
command,
222-
frequency: 0,
223-
description: '',
224-
})
225-
}
226-
return acc
227-
}, [])
214+
.map((alias) => ({
215+
aliasName: alias!.aliasName,
216+
command: alias!.command,
217+
frequency: 0,
218+
description: '',
219+
}))
228220

229221
return aliases
230222
}

tests/utils.spec.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,24 @@ describe('test all values are not equal to target', () => {
174174
})
175175

176176
describe('test filter all alias from string', () => {
177-
it('no any alias', () => {
178-
expect(filterAliases(`al`)).toStrictEqual([])
177+
it('empty string', () => {
178+
expect(
179+
filterAliases(`
180+
181+
182+
`),
183+
).toStrictEqual([])
184+
})
185+
186+
it('no any valid alias', () => {
187+
expect(
188+
filterAliases(`
189+
190+
test
191+
test
192+
# test
193+
alias c='clear' test`),
194+
).toStrictEqual([])
179195
})
180196

181197
it('all valid aliases', () => {

0 commit comments

Comments
 (0)