@snipsonian/redux-first-router
Version:
Redux-first-router snippets
26 lines (25 loc) • 938 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const VIRTUAL_PAGE_CONFIG = {
PARTS_DELIMITER: '_',
EMPTY_STATE_SELECTOR_PLACEHOLDER: '-',
};
function parseVirtualPage(state, virtualPageConfig) {
if (Array.isArray(virtualPageConfig)) {
return joinVirtualPagePartsAndSelectStateVarParts(state, virtualPageConfig);
}
return virtualPageConfig;
}
exports.default = parseVirtualPage;
function joinVirtualPagePartsAndSelectStateVarParts(state, virtualPageConfigParts) {
return virtualPageConfigParts
.map((virtualPageConfigPart) => {
if (typeof virtualPageConfigPart === 'function') {
const part = (virtualPageConfigPart(state)
|| VIRTUAL_PAGE_CONFIG.EMPTY_STATE_SELECTOR_PLACEHOLDER);
return `${part}`.toLowerCase();
}
return virtualPageConfigPart;
})
.join(VIRTUAL_PAGE_CONFIG.PARTS_DELIMITER);
}