<label>Enter SAS value</label>
<input type="text" id="sasToken" placeholder="enter your value"
value="?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=2023-02-04T03:03:37Z&st=2023-02-03T19:03:37Z&spr=https&sig=X8vadNOXY7xNiHPwu6B.."></input>
<button onclick="runCode()">parse</button>
<div id="outputJson">
</div>
var paramNames = {
sig: 'cryptographic signature',
st: 'start time',
se: 'end time',
spr: 'protocol',
srt: 'resource types',
sv: 'version',
sp: 'permissions',
ss: 'services'
};
let valueLookups = {
sp : {
r: 'read', d: 'delete', w: 'write', l: 'list', a: 'add',
c: 'create', u: 'update', p: 'process', f: 'filter'
},
srt: {
s: 'service', c: 'container', o: 'object'
},
ss : {
b: 'blob', f: 'file', q: 'queue', t: 'table'
}
}
let valueConvertor = (key, inputValue) =>
valueLookups[key] ? [...inputValue].map(x => valueLookups[key][x] || x)
: inputValue;
function parseData(sasToken) {
var parameters = [...sasToken.matchAll(/[?&]([a-z]*)=([^\&]*)/g)];
const finalObject = parameters.reduce((acc, row) => {
return {...acc, [paramNames[row[1]] || row[1]]: valueConvertor(row[1], row[2])}
}, {});
return finalObject;
};
function runCode() {
let inputvalue = document.getElementById("sasToken").value;
let outputObject = parseData(inputvalue);
console.log(outputObject);
document.getElementById("outputJson").innerHTML = JSON.stringify(outputObject);
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.