"use-strict"; const objSerialize = (obj, keys, cb) => { let a = Object.create(null) for (const key of keys) a[key] = obj[key] if (cb) return cb(a, obj) return a } const objBulkSet = (obj, target, pairs) => { if (typeof obj[target] != "object") obj[target] = Object.create(null) for (const key in pairs) if (pairs[key] != undefined) obj[target][key] = pairs[key] } const fromConstToPascal = string => { let a = '' let b = true for (const char of string) if (char == '_') b = true else { a += b ? char : char.toLowerCase() b = false } return a } const notNullElse = (a, fallback) => a != null && a != undefined ? a : fallback const arrSerializeSort = array => array.filter(Boolean).map((a,i) => a.serialize(i)).sort((a,b) => a.id.localeCompare(b.id)) const SCHEMA_VERSION = 8 const toRadioSongs = songs => ({ "version": SCHEMA_VERSION, songs }) module.exports = { SCHEMA_VERSION, objSerialize, objBulkSet, arrSerializeSort, fromConstToPascal, notNullElse, toRadioSongs }