camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
54 lines (53 loc) • 1.67 kB
JavaScript
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;
}