allow aliasing via a path

This commit is contained in:
Lu[ke] Wilson 2025-01-26 16:37:51 +00:00
parent f362f1c9f6
commit 5d3778fb27

View file

@ -20,7 +20,7 @@ export function registerSound(key, onTrigger, data = {}) {
soundMap.setKey(key.toLowerCase(), { onTrigger, data }); soundMap.setKey(key.toLowerCase(), { onTrigger, data });
} }
export function aliasBankMap(aliasMap) { function aliasBankMap(aliasMap) {
// Make all bank keys lower case for case insensitivity // Make all bank keys lower case for case insensitivity
for (const key in aliasMap) { for (const key in aliasMap) {
aliasMap[key.toLowerCase()] = aliasMap[key]; aliasMap[key.toLowerCase()] = aliasMap[key];
@ -53,15 +53,27 @@ export function aliasBankMap(aliasMap) {
soundMap.set({ ...soundDictionary }); soundMap.set({ ...soundDictionary });
} }
async function aliasBankPath(path) {
const response = await fetch(path);
const aliasMap = await response.json();
aliasBankMap(aliasMap);
}
/** /**
* Register an alias for a bank of sounds. Optionally accepts a map of banks to aliases. * Register an alias for a bank of sounds.
* Optionally accepts a single argument map of bank aliases.
* Optionally accepts a single argument string of a path to a JSON file containing bank aliases.
* @param {string} bank - The bank to alias * @param {string} bank - The bank to alias
* @param {string} alias - The alias to use for the bank * @param {string} alias - The alias to use for the bank
*/ */
export function aliasBank(...args) { export async function aliasBank(...args) {
switch (args.length) { switch (args.length) {
case 1: case 1:
return aliasBankMap(args[0]); if (typeof args[0] === 'string') {
return aliasBankPath(args[0]);
} else {
return aliasBankMap(args[0]);
}
case 2: case 2:
return aliasBankMap({ [args[0]]: args[1] }); return aliasBankMap({ [args[0]]: args[1] });
default: default: