OverviewFilesCommitsIssuesDocsReleasesPeers

holepunchto-deps / @holepunchto / legacy-keet-core-schemas / lib / schema-builder.js

1 lines · javascript ref:
const e=require("@holepunchto/hyperindex"),i=require("./chat"),t=require("./config"),s=require("./members"),n=require("./reactions"),o=require("./invitations"),a=require("./devices"),r=require("./mailbox"),l=require("./private-mailbox"),c=require("./private-rooms"),v=require("./private-devices");module.exports=class{constructor({view:i,tx:t}){this.view=i,this.dex=t||new e(i.bee,{offset:2})}createCollections(){if(this.view.collections)return;this.view.isApplyView||this.dex.createCollections([i.ChatCollection,n.ReactionsCollection,o.InvitationsCollection,a.DevicesCollection,s.PendingMembersCollection,s.MembersCollection,s.AvatarsCollection,t.Collection,r.MailboxCollection,r.OpenMailboxesCollection,s.InactiveMembersCollection,r.MailboxCollectionV2,l.PrivateMailboxCollection,l.SentPrivateMailboxCollection,c.RoomsCollection,v.DeviceKeysCollection,v.AttestationsCollection,s.MutedMembersCollection]);const[e,x,d,b,h,m,M,p,u,w,I,y,C,_,P,B,V,D]=this.dex.collections;return{chat:e,reactions:x,invitations:d,devices:b,pendingMembers:h,inactiveMembers:I,members:m,avatars:M,config:p,mailbox:u,mailboxV2:y,openMailboxes:w,privateMailbox:C,sentPrivateMailbox:_,privateRooms:P,privateDeviceKeys:B,privateDeviceAttestations:V,mutedMembers:D}}_indexReactions(e,i){return this.view._applyView.reactions.autobaseIndex(i)}_indexDevices(e,i){return this.view._applyView.devices.autobaseIndex(i)}_indexMembers(e,i){return this.view._applyView.members.autobaseIndexMembers(i)}_indexInactiveMembers(e,i){return this.view._applyView.members.autobaseIndexInactiveMembers(i)}_indexChat(e,i){return this.view._applyView.chat.autobaseIndex(i)}_indexMailbox(e,i){return this.view._applyView.mailbox.autobaseIndex(i)}_indexPrivateMailbox(e,i){return this.view._applyView.privateProfile.privateMailbox.autobaseIndex(i)}_indexSentPrivateMailbox(e,i){return this.view._applyView.privateProfile.privateMailbox.autobaseIndexSent(i)}createIndexes(){if(this.view.indexes)return;this.view.isApplyView||(this.view.collections.reactions.createIndexes(n.ReactionsIndexes,this._indexReactions.bind(this)),this.view.collections.devices.createIndexes(a.DevicesIndexes,this._indexDevices.bind(this)),this.view.collections.members.createIndexes(s.MembersIndexes,this._indexMembers.bind(this)),this.view.collections.chat.createIndexes(i.ChatIndexes,this._indexChat.bind(this)),this.view.collections.inactiveMembers.createIndexes(s.InactiveMembersIndexes,this._indexInactiveMembers.bind(this)),this.view.collections.mailboxV2.createIndexes(r.MailboxIndexes,this._indexMailbox.bind(this)),this.view.collections.privateMailbox.createIndexes(l.PrivateMailboxIndexes,this._indexPrivateMailbox.bind(this)),this.view.collections.sentPrivateMailbox.createIndexes(l.PrivateMailboxIndexes,this._indexSentPrivateMailbox.bind(this)));const[e,t,o,c]=this.view.collections.chat.indexes,[v,x]=this.view.collections.reactions.indexes,[d,b,h]=this.view.collections.devices.indexes,[m,M,p,u,w]=this.view.collections.members.indexes,[I]=this.view.collections.inactiveMembers.indexes,[y,C]=this.view.collections.mailboxV2.indexes,[_,P,B,V]=this.view.collections.privateMailbox.indexes;return this.view.indexes={eventIdsByMessageId:e,eventIdsByClock:t,mentionsByMemberId:o,drivesByPath:c,reactionDigests:v,reactionsByMember:x,deviceCount:b,mobileDeviceCount:h,deviceKeysByNoisePublicKey:d,memberKeysByMemberName:m,membersByDeviceKey:M,inactiveMembersByDeviceKey:I,capabilitiesByDeviceKey:p,moderatorsByMemberKey:u,membersCount:w,mailboxCounter:y,mailByMessageId:C,dmByMember:_,privateMailByMessageId:P,privateMailByPublicMail:B,privateMailboxCounter:V},this.view.indexes}};