From 7222c29c552b9c9c54e0bce2d2812afc6e0c0316 Mon Sep 17 00:00:00 2001 From: "Lu[ke] Wilson" Date: Sun, 26 Jan 2025 15:54:25 +0000 Subject: [PATCH] fix and overload --- packages/superdough/superdough.mjs | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index 985e4b5f..8bf7804b 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -20,17 +20,28 @@ export function registerSound(key, onTrigger, data = {}) { soundMap.setKey(key, { onTrigger, data }); } -export function aliasBank(alias, bank) { +export function aliasBankMap(aliasMap) { const soundDictionary = soundMap.get(); for (const key in soundDictionary) { - if (key.startsWith(bank + '_')) continue; - const [, tail] = key.split('_'); - const value = soundDictionary[key]; - soundDictionary[`${alias}_${tail}`] = value; + const [bank, suffix] = key.split('_'); + if (aliasMap[bank]) { + soundDictionary[`${aliasMap[bank]}_${suffix}`] = soundDictionary[key]; + } } soundMap.set({ ...soundDictionary }); } +export function aliasBank(...args) { + switch (args.length) { + case 1: + return aliasBankMap(args[0]); + case 2: + return aliasBankMap({ [args[0]]: args[1] }); + default: + throw new Error('aliasMap expects 1 or 2 arguments, received ' + args.length); + } +} + export function getSound(s) { return soundMap.get()[s]; }