UNPKG

camstreamerlib

Version:

Helper library for CamStreamer ACAP applications.

54 lines (53 loc) 1.67 kB
export const addParametersToPath = (path, params) => { if (params === undefined || Object.keys(params).length === 0) { return path; } const joinChar = path.indexOf('?') === -1 ? '?' : '&'; return `${path}${joinChar}${paramToUrl(params)}`; }; export const paramToUrl = (params) => { if (params === undefined) { return ''; } let output = ''; for (const key in params) { const value = params[key]; if (isNullish(value)) { continue; } output += `${encodeURIComponent(key)}=${encodeURIComponent(value)}&`; } return output.slice(0, output.length - 1); }; export const arrayToUrl = (arr) => { if (Array.isArray(arr)) { return arr.join(','); } return arr; }; export const isCamera = (id) => id?.charAt(0) === 'c'; export const isStream = (id) => id?.charAt(0) === 'c' || id?.charAt(0) === 'a'; export const isClip = (id) => id?.charAt(0) === 's'; export const isTracker = (id) => id?.charAt(0) === 't'; export const isPlaylist = (id) => id?.charAt(0) === 'p'; export const isLoopPlayType = (playType) => playType.includes('LOOP'); export function isClient(arg = {}) { return 'get' in arg && 'post' in arg; } export async function responseStringify(res) { return JSON.stringify({ status: res.status, body: await res.text(), }); } export function pad(num, size) { const sign = Math.sign(num) === -1 ? '-' : ''; return (sign + new Array(size) .concat([Math.abs(num)]) .join('0') .slice(-size)); } export function isNullish(value) { return value === null || value === undefined; }