@alauda-fe/common
Version:
Alauda frontend team common codes.
33 lines • 3.71 kB
JavaScript
/**
* @packageDocumentation
* @module authorization
*/
let initUrl;
export function recordInitUrl() {
if (location?.href) {
initUrl = location.href;
history.replaceState({}, '', removeCode(location.href));
}
}
export function getInitUrl() {
if (!initUrl) {
throw new Error('The initial URL was not recorded. Please ensure that you invoke "recordInitUrl" before bootstrapping Angular.');
}
return initUrl;
}
function removeCode(href) {
const url = new URL(href);
const queryParams = url.search
? url.search
.slice(1)
.split('&')
.filter(pair => {
const [key] = pair.split('=');
return key !== 'code' && key !== 'state';
})
.join('&')
: '';
const query = queryParams ? '?' + queryParams : '';
return `${url.origin}${url.pathname}${query}${url.hash}`;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluaXQtdXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2F1dGhvcml6YXRpb24vYXBwLWluaXQtdXJsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILElBQUksT0FBZSxDQUFDO0FBRXBCLE1BQU0sVUFBVSxhQUFhO0lBQzNCLElBQUksUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ25CLE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVTtJQUN4QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLElBQUksS0FBSyxDQUNiLCtHQUErRyxDQUNoSCxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxJQUFZO0lBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFCLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxNQUFNO1FBQzVCLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTTthQUNQLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDUixLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsT0FBTyxHQUFHLEtBQUssTUFBTSxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUM7UUFDM0MsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNkLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFUCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUVuRCxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIGF1dGhvcml6YXRpb25cbiAqL1xuXG5sZXQgaW5pdFVybDogc3RyaW5nO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVjb3JkSW5pdFVybCgpIHtcbiAgaWYgKGxvY2F0aW9uPy5ocmVmKSB7XG4gICAgaW5pdFVybCA9IGxvY2F0aW9uLmhyZWY7XG4gICAgaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sICcnLCByZW1vdmVDb2RlKGxvY2F0aW9uLmhyZWYpKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5pdFVybCgpIHtcbiAgaWYgKCFpbml0VXJsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1RoZSBpbml0aWFsIFVSTCB3YXMgbm90IHJlY29yZGVkLiBQbGVhc2UgZW5zdXJlIHRoYXQgeW91IGludm9rZSBcInJlY29yZEluaXRVcmxcIiBiZWZvcmUgYm9vdHN0cmFwcGluZyBBbmd1bGFyLicsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gaW5pdFVybDtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlQ29kZShocmVmOiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsID0gbmV3IFVSTChocmVmKTtcblxuICBjb25zdCBxdWVyeVBhcmFtcyA9IHVybC5zZWFyY2hcbiAgICA/IHVybC5zZWFyY2hcbiAgICAgICAgLnNsaWNlKDEpXG4gICAgICAgIC5zcGxpdCgnJicpXG4gICAgICAgIC5maWx0ZXIocGFpciA9PiB7XG4gICAgICAgICAgY29uc3QgW2tleV0gPSBwYWlyLnNwbGl0KCc9Jyk7XG4gICAgICAgICAgcmV0dXJuIGtleSAhPT0gJ2NvZGUnICYmIGtleSAhPT0gJ3N0YXRlJztcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJyYnKVxuICAgIDogJyc7XG5cbiAgY29uc3QgcXVlcnkgPSBxdWVyeVBhcmFtcyA/ICc/JyArIHF1ZXJ5UGFyYW1zIDogJyc7XG5cbiAgcmV0dXJuIGAke3VybC5vcmlnaW59JHt1cmwucGF0aG5hbWV9JHtxdWVyeX0ke3VybC5oYXNofWA7XG59XG4iXX0=