-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRemNote0api.min.js
1 lines (1 loc) · 1.12 KB
/
RemNote0api.min.js
1
class RemNoteAPIV0{constructor(){this.usedMessageIds=0,window.addEventListener("message",this.receiveMessage.bind(this),!1),this.messagePromises={}}async get(e,s={}){return await this.makeAPICall("get",{remId:e,...s})}async get_by_name(e,s={}){return await this.makeAPICall("get_by_name",{name:e,...s})}async get_by_source(e,s={}){return await this.makeAPICall("get_by_source",{url:e,...s})}async update(e,s={}){return await this.makeAPICall("update",{remId:e,...s})}async create(e,s,t={}){return await this.makeAPICall("create",{text:e,parentId:s,...t})}async get_context(e={}){return await this.makeAPICall("get_context",e)}async makeAPICall(e,s){const t=this.usedMessageIds;this.usedMessageIds+=1;const a={isIntendedForRemNoteAPI:!0,methodName:e,options:s,messageId:t,remNoteAPIData:{version:0}},r=new Promise((e,s)=>{this.messagePromises[t]=e,window.parent.postMessage(a,"https://www.remnote.io")}),i=await r;if(i.error)throw i.error;return i}receiveMessage(e){if("https://www.remnote.io"!==e.origin)return;const s=e.data,t=s.messageId;this.messagePromises[t](s.response),delete this.messagePromises[t]}}const RemNoteAPI={v0:new RemNoteAPIV0};