All files / js PicobelSetup.js

91.66% Statements 11/12
88.88% Branches 8/9
100% Functions 2/2
91.66% Lines 11/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47                  2x 5x                     5x                 2x   5x         5x 5x 5x 5x 1x     5x    
/**
 * -----------------------------------------------------------------------------
 * SETUP
 *
 * Parse our options, and set starting state.
 * -----------------------------------------------------------------------------
 */
 
// Return a `components` object that matches the provided themename.
const setComponentsByTheme = (themename = "default") => {
    switch (themename) {
        case "itunes":
            return [
                "playPause",
                [
                    ["title", "artist"],
                    ["timer", "progress", "duration"]
                ]
            ];
        case "default":
        default:
            return [
                "playPause",
                ["mute", "volume"],
                ["title", "artist"],
                ["timer", "progress", "duration"]
            ];
    }
};
 
export const parseOptions = (rawOptions = {}) => {
    // Define our default options.
    const defaultOptions = {
        context: document,
        theme: "default",
        preload: false
    };
    const { components: userComponents, ...otherOptions } = rawOptions;
    const components = setComponentsByTheme(rawOptions.theme);
    const options = { ...defaultOptions, components, ...otherOptions };
    if (userComponents && Array.isArray(userComponents)) {
        options.components = userComponents;
    }
 
    return options;
};