@cfworker/cosmos
Version:
Azure Cosmos DB client for Cloudflare Workers and service workers
37 lines (36 loc) • 1.02 kB
JavaScript
export function escapeNonASCII(s) {
return s.replace(/[\u0080-\uFFFF]/g, m => '\\u' + m.charCodeAt(0).toString(16).padStart(4, '0'));
}
export function assertArg(name, value) {
if (!value) {
throw new Error(`${name} is required.`);
}
}
export function uri(strings, ...values) {
let s = strings[0];
for (let i = 0; i < values.length; i++) {
s += encodeURIComponent(values[i]) + strings[i + 1];
}
return s;
}
export function parseConnectionString(connString) {
const props = {};
connString.split(';').forEach(kv => {
const pos = kv.indexOf('=');
if (pos < 1) {
return;
}
const key = kv.slice(0, pos);
const val = kv.slice(pos + 1);
if (key && val) {
props[key] = val;
}
});
if (!props.AccountEndpoint || !props.AccountKey) {
throw new Error('Invalid connection string');
}
return {
endpoint: props.AccountEndpoint,
masterKey: props.AccountKey
};
}