UNPKG

@cfworker/cosmos

Version:

Azure Cosmos DB client for Cloudflare Workers and service workers

43 lines (42 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.escapeNonASCII = escapeNonASCII; exports.assertArg = assertArg; exports.uri = uri; exports.parseConnectionString = parseConnectionString; function escapeNonASCII(s) { return s.replace(/[\u0080-\uFFFF]/g, m => '\\u' + m.charCodeAt(0).toString(16).padStart(4, '0')); } function assertArg(name, value) { if (!value) { throw new Error(`${name} is required.`); } } 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; } 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 }; }