@sat-mtl/scenic-api
Version:
A JavaScript library that wraps the SwitcherIO API
1 lines • 6.92 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["scenic-api"]=t():e.ScenicAPI=t()}(this,(()=>(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{default:()=>k,quiddity:()=>w,switcher:()=>P,tree:()=>p});const s=class{constructor(e){this.socket=e}match(e,t){return!("string"==typeof t&&e!==t||"function"==typeof t&&!t(e))}},i=class extends s{sendBundles(e){return new Promise(((t,s)=>{this.socket.emit("switcher.bundles",JSON.stringify(e),((e,i)=>{e&&s(e),i&&t(i)}))}))}sendLog(e="info",t){return new Promise(((s,i)=>{this.socket.emit("switcher.log",e,t,((e,t)=>{e&&i(e),t&&s(t)}))}))}sendLogObject(e){return this.sendLog(e.level.label,e.messages[0].msg)}getVersion(){return new Promise(((e,t)=>{this.socket.emit("switcher.version",((s,i)=>{s&&t(s),i&&e(i)}))}))}getConfigPaths(){return new Promise(((e,t)=>{this.socket.emit("switcher.extra_config.paths",((s,i)=>{s?t(s):e(i)}))}))}readConfig(e){return new Promise(((t,s)=>{this.socket.emit("switcher.extra_config.read",e,((e,i)=>{e?s(e):t(i)}))}))}},r=class extends s{constructor(...e){super(...e),this.resetActions=[]}reset(){return new Promise(((e,t)=>{this.socket.emit("session.reset",((s,i)=>{s&&t(s),i&&(this.resetActions.forEach((e=>e())),e(i))}))}))}clear(){return new Promise(((e,t)=>{this.socket.emit("session.clear",((s,i)=>{s?t(s):e(i)}))}))}onSessionReset(e){this.resetActions.push(e)}list(){return new Promise(((e,t)=>{this.socket.emit("session.list",((s,i)=>{s?t(s):e(i)}))}))}saveAs(e){return new Promise(((t,s)=>{this.socket.emit("session.save_as",e,((e,i)=>{e?s(e):t(i)}))}))}load(e){return new Promise(((t,s)=>{this.socket.emit("session.load",e,((e,i)=>{e?s(e):t(i)}))}))}read(e){return new Promise(((t,s)=>{this.socket.emit("session.read",e,((e,i)=>{e?s(e):t(i)}))}))}write(e,t){return new Promise(((s,i)=>{this.socket.emit("session.write",e,t,((e,t)=>{e?i(e):s(t)}))}))}remove(e){return new Promise(((t,s)=>{this.socket.emit("session.remove",e,((e,i)=>{e?s(e):t(i)}))}))}},n=class extends s{listKinds(){return new Promise(((e,t)=>{this.socket.emit("switcher.kinds",((s,i)=>{s&&t(s),i&&e(i)}))}))}listCreated(){return new Promise(((e,t)=>{this.socket.emit("switcher.quiddities",((s,i)=>{s&&t(s),i&&e(i)}))}))}create(e,t,s={},i={}){return new Promise(((r,n)=>{this.socket.emit("quiddity.create",e,t,s,i,((e,t)=>{e?n(e):"string"==typeof t&&r(JSON.parse(t)),"object"==typeof t?r(t):n(new Error("quiddity failed to be parsed!"))}))}))}delete(e){return new Promise(((t,s)=>{this.socket.emit("quiddity.delete",e,((e,i)=>{e&&s(e),i&&t(i)}))}))}connect(e,t){return new Promise(((s,i)=>{this.socket.emit("quiddity.connect",e,t,((e,t)=>{e&&i(e),t&&s(t)}))}))}connectSfid(e,t,s){return new Promise(((i,r)=>{this.socket.emit("quiddity.connect_sfid",e,t,s,((e,t)=>{e&&r(e),t&&i(t)}))}))}protect(e){return new Promise(((t,s)=>{this.socket.emit("quiddities.protect",e,((e,i)=>{e&&s(e),i&&t(i)}))}))}disconnect(e,t){return new Promise(((s,i)=>{this.socket.emit("quiddity.disconnect",e,t,((e,t)=>{e&&i(e),t&&s(t)}))}))}onCreated(e=Function.prototype,t){this.socket.on("quiddity.created",(s=>{this.match(s.id,t)&&e(s)}))}onDeleted(e=Function.prototype,t){this.socket.on("quiddity.deleted",(s=>{this.match(s,t)&&e(s)}))}},o=class extends s{get(e){return new Promise(((t,s)=>{this.socket.emit("nickname.get",e,((i,r)=>{i?s(i):r&&"string"==typeof r?t(r):s(new Error(`Cannot get nickname of quiddity ${e}`))}))}))}set(e,t){return new Promise(((s,i)=>{this.socket.emit("nickname.set",e,t,(e=>{e?i(e):s(!0)}))}))}onUpdated(e,t){this.socket.on("nickname.updated",((s,i)=>{this.match(s,t)&&e(s,i)}))}},c=class extends s{get(e,t){return new Promise(((s,i)=>{this.socket.emit("property.get",e,t,((e,t)=>{e?i(e):s(t)}))}))}set(e,t,s){return new Promise(((i,r)=>{this.socket.emit("property.set",e,t,s,((e,t)=>{e?r(e):i(t)}))}))}onUpdated(e,t,s){this.socket.on("property.updated",((i,r,n,o)=>{this.match(i,t)&&this.match(r,s)&&e(i,r,n,o)}))}},d=class extends s{invoke(e,t,s){return new Promise(((i,r)=>{this.socket.emit("quiddity.invoke",e,t,s,((e,s)=>{e&&r(e),void 0===s?r(new Error(`Method ${t} failed to be invoked`)):i(s)}))}))}canSinkCaps(e,t){return this.invoke(e,"can-sink-caps",[t])}register(e,t,s,i,r){return r=void 0===r?"9060":r,this.invoke(e,"register",[`${s}@${t}:${r}`,i])}unregister(e){return this.invoke(e,"unregister",[])}setStunTurn(e,t,s,i,r){return this.invoke(e,"set_stun_turn",[t,s,i,r])}addBuddy(e,t,s){return this.invoke(e,"add_buddy",[`${s}@${t}`])}delBuddy(e,t,s){return this.invoke(e,"del_buddy",[`${s}@${t}`])}nameBuddy(e,t,s,i){return this.invoke(e,"name_buddy",[i,`${s}@${t}`])}authorize(e,t,s,i){return this.invoke(e,"authorize",[`${s}@${t}`,i])}attachShmdataToContact(e,t,s,i){return this.invoke(e,"attach_shmdata_to_contact",[i,`${s}@${t}`,!0])}detachShmdataFromContact(e,t,s,i){return this.invoke(e,"attach_shmdata_to_contact",[i,`${s}@${t}`,!1])}send(e,t,s){return this.invoke(e,"send",[`${s}@${t}`])}},a=class extends s{get(e,t){return new Promise(((s,i)=>{this.socket.emit("user_tree.get",e,t,((e,t)=>{e&&i(e),t&&"null"!==t&&"None"!==t||s({}),t&&s(t)}))}))}graft(e,t,s){return new Promise(((i,r)=>{this.socket.emit("user_tree.graft",e,t,s,((e,t)=>{e?r(e):i(t)}))}))}prune(e,t){return new Promise(((s,i)=>{this.socket.emit("user_tree.prune",e,t,((e,t)=>{e?i(e):s(t)}))}))}onGrafted(e,t,s){this.socket.on("user_tree.grafted",((i,r,n)=>{this.match(i,t)&&this.match(r,s)&&e(i,r,n)}))}onPruned(e,t,s){this.socket.on("user_tree.pruned",((i,r)=>{this.match(i,t)&&this.match(r,s)&&e(i,r)}))}},u=class extends s{get(e,t){return new Promise(((s,i)=>{this.socket.emit("info_tree.get",e,t,((e,t)=>{e&&i(e),t&&"null"!==t||s({}),t&&s(t)}))}))}onGrafted(e,t,s){this.socket.on("info_tree.grafted",((i,r,n)=>{this.match(i,t)&&this.match(r,s)&&e(i,r,JSON.parse(n))}))}onPruned(e,t,s){this.socket.on("info_tree.pruned",((i,r)=>{this.match(i,t)&&this.match(r,s)&&e(i,r)}))}},h=class extends s{get(e){return new Promise(((t,s)=>{this.socket.emit("connection_specs.get",e,((e,i)=>{e&&s(e),i&&"null"!==i||t({}),i&&t(i)}))}))}},m=class extends s{readImage(e){return new Promise(((t,s)=>{this.socket.emit("image.read",e,((e,i)=>{e?s(e):t(i)}))}))}},k=function(e){return{switcherAPI:new i(e),methodAPI:new d(e),nicknameAPI:new o(e),propertyAPI:new c(e),quiddityAPI:new n(e),userTreeAPI:new a(e),infoTreeAPI:new u(e),connectionSpecsAPI:new h(e),sessionAPI:new r(e),imageAPI:new m(e)}},P={SwitcherAPI:i,SessionAPI:r},w={QuiddityAPI:n,NicknameAPI:o,PropertyAPI:c,MethodAPI:d},p={UserTreeAPI:a,InfoTreeAPI:u,ConnectionSpecsAPI:h};return t})()));