resedit-cli
Version:
Command-line tool for editing Windows Resource data in executable binaries
37 lines (36 loc) • 1.24 kB
JavaScript
import parseIcons from './icons.js';
import parseRawResource from './rawResource.js';
import parseVersion from './version.js';
import parseSignDefinition from './sign.js';
export default function parseDefinitionData(data) {
if (typeof data !== 'object' || !data) {
throw new Error('Invalid data: not an object');
}
const ret = {};
Object.keys(data).forEach((key) => {
const value = data[key];
switch (key) {
case 'lang':
if (typeof value !== 'number') {
throw new Error("Invalid data: invalid 'lang' value");
}
ret.lang = value;
break;
case 'icons':
ret.icons = parseIcons(value);
break;
case 'version':
ret.version = parseVersion(value);
break;
case 'raw':
ret.raw = parseRawResource(value);
break;
case 'sign':
ret.sign = parseSignDefinition(value);
break;
default:
throw new Error(`Invalid data: unknown property '${key}'`);
}
});
return ret;
}