优化
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import test from 'node:test'
|
||||
import ts from 'typescript'
|
||||
|
||||
const source = readFileSync(new URL('./relabelSkuDisplay.ts', import.meta.url), 'utf8')
|
||||
const js = ts.transpileModule(source, { compilerOptions: { module: ts.ModuleKind.ESNext, target: ts.ScriptTarget.ES2022 } }).outputText
|
||||
const { relabelSkuCodes, relabelSkuCount } = await import(`data:text/javascript;base64,${Buffer.from(js).toString('base64')}`)
|
||||
test('one box with two SKU mappings shows both and counts unique SKUs across boxes', () => {
|
||||
const item = { skuCode: 'FIRST', skuItems: [{ skuCode: 'FIRST' }, { skuCode: 'SECOND' }] }
|
||||
assert.deepEqual(relabelSkuCodes(item), ['FIRST', 'SECOND'])
|
||||
assert.equal(relabelSkuCount([item, { skuCode: 'SECOND' }]), 2)
|
||||
assert.deepEqual(relabelSkuCodes({ skuCode: 'FIRST,SECOND', skuItems: [] }), ['FIRST', 'SECOND'])
|
||||
})
|
||||
@@ -0,0 +1,13 @@
|
||||
interface RelabelSkuSource {
|
||||
skuCode?: string | null
|
||||
skuItems?: Array<{ skuCode: string }> | null
|
||||
}
|
||||
|
||||
export function relabelSkuCodes(item: RelabelSkuSource): string[] {
|
||||
const codes = item.skuItems?.length ? item.skuItems.map(line => line.skuCode) : (item.skuCode || '').split(',')
|
||||
return [...new Set(codes.map(code => code.trim()).filter(Boolean))]
|
||||
}
|
||||
|
||||
export function relabelSkuCount(items: RelabelSkuSource[]): number {
|
||||
return new Set(items.flatMap(relabelSkuCodes)).size
|
||||
}
|
||||
Reference in New Issue
Block a user