-
Notifications
You must be signed in to change notification settings - Fork 0
split csv
awekrx edited this page May 29, 2026
·
1 revision
import { splitCsv } from '@dev-suite/decorators/split-csv'
parameter
Split CSV parameter into normalized array.
- Inline `split(
- )` + trim/filter code
class SegmentService {
add(tagsCsv: string) {
const tags = tagsCsv.split(',').map((t) => t.trim()).filter(Boolean);
return this.repo.add(tags);
}
}import { splitCsv } from '@dev-suite/decorators/split-csv';
class SegmentService {
add(@splitCsv({ trimItems: true, filterEmpty: true }) tagsCsv: string[]) {
return this.repo.add(tagsCsv);
}
}- Centralizes cross-cutting behavior.
- Method/class/property code stays focused on domain logic.
class NotifyService {
send(recipientsCsv: string) {
const recipients = recipientsCsv.split(';').map((v) => v.trim()).filter(Boolean);
return this.mail.sendMany(recipients);
}
}import { splitCsv } from '@dev-suite/decorators/split-csv';
class NotifyService {
send(@splitCsv({ separator: ';', trimItems: true, filterEmpty: true }) recipientsCsv: string[]) {
return this.mail.sendMany(recipientsCsv);
}
}- Second scenario reuses same policy without duplication.
- Behavior is more consistent and easier to audit.