UNPKG

domoticz-api-linker

Version:

Domoticz API Javascript Bridge Connector

34 lines (33 loc) 1.15 kB
import { DomoticzApiConnector } from './DomoticzApiConnector'; class DomoticzApiFetch extends DomoticzApiConnector { async __generic(method, endpoint, data, content) { const uriParams = (data !== undefined) ? dataToURI(data) : ''; const options = { method, headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, body: (content !== undefined) ? JSON.stringify(content) : null }; const url = `${endpoint}${uriParams}`; const result = await fetch(url, options); return await result.json(); } } function dataToURI(data) { return Object.entries(data).reduce((uri, [key, value]) => { const valueStr = castToString(value); return `${uri}&${encodeURI(key)}=${encodeURI(valueStr)}`; }, ''); } function castToString(value) { if (typeof value === 'string') return value; if (typeof value === 'boolean') return (value) ? 'true' : 'false'; if (typeof value === 'number') return '' + value.toString(); return ''; } export { DomoticzApiFetch };