@peter.naydenov/route-emitter
Version:
Changes in URL are converted in events according routes definition list
32 lines (24 loc) • 952 B
JavaScript
function createURL ( dependencies, state ) {
/**
* @function createURL
* @description Creates URL from address name and data
* @param {string} addressName - Name of the address
* @param {object|string} data - Data to be used for creating URL(optional)
*/
return function createURL ( addressName, data={} ) {
const { routes } = state;
if ( !routes[addressName] ) { // If address is not registered
console.error ( `Address "${addressName}" is not registered` )
return null
}
const { pattern } = routes [ addressName ];
try {
const url = pattern.stringify ( data );
return url
}
catch ( err ) {
console.error ( `Data provided for address "${addressName}" is not correct.`)
return null
}
}} // createURL func.
export default createURL