UNPKG

@snap/camera-kit

Version:
34 lines 1.4 kB
import { Injectable } from "@snap/ts-inject"; import { isArrayBuffer, isArrayOfType, isFunction, isNumber, isRecord, isString, isTypedArray, isUndefined, predicateRecordValues, } from "../common/typeguards"; const SEPARATOR = "://"; export function extractSchemeAndRoute(uri) { const separatorIndex = uri.indexOf(SEPARATOR); const scheme = uri.slice(0, separatorIndex); const route = uri.slice(separatorIndex + SEPARATOR.length); return { scheme, route }; } function isUri(value) { return isString(value) && value.includes(SEPARATOR); } function isUriHandler(value) { return (isRecord(value) && (isUri(value.uri) || isArrayOfType(isUri, value.uri)) && isFunction(value.handleRequest) && (isUndefined(value.cancelRequest) || isFunction(value.cancelRequest))); } export function isUriHandlers(value) { return isArrayOfType(isUriHandler, value); } export function isUriResponse(value) { return (isRecord(value) && isNumber(value.code) && isString(value.description) && isString(value.contentType) && (isArrayBuffer(value.data) || isTypedArray(value.data)) && (isUndefined(value.metadata) || predicateRecordValues(isString)(value.metadata))); } export const uriHandlersFactory = Injectable("UriHandlers", () => { const uriHandlers = []; return uriHandlers; }); //# sourceMappingURL=UriHandlers.js.map