Function prepareRecorderKitMakers prepare Recorder Kit Makers ( baggage , marshaller ) : { makeDurablePublishKit : ( ( ... args ) => { publisher : { fail ( reason ) : void ; finish ( finalValue ) : void ; publish ( value ) : void ; } ; subscriber : { getUpdateSince ( updateCount ) : any ; subscribeAfter ( publishCount ? ) : Promise < any > ; } ; } & RemotableBrand < {} , { publisher : { fail ( reason ) : void ; finish ( finalValue ) : void ; publish ( value ) : void ; } ; subscriber : { getUpdateSince ( updateCount ) : any ; subscribeAfter ( publishCount ? ) : Promise < any > ; } ; } > ) ; makeERecorderKit : ( < T > ( storageNodeP , valueShape ? ) => EventualRecorderKit < T > ) ; makeRecorder : ( ( ... args ) => { getStorageNode ( ) : DataOnly < StorageNode > & RemotableBrand < DataOnly < StorageNode > , StorageNode > ; getStoragePath ( ) : Promise < string > ; write ( value ) : Promise < void > ; writeFinal ( value ) : Promise < void > ; } & RemotableBrand < {} , { getStorageNode ( ) : DataOnly < StorageNode > & RemotableBrand < DataOnly < StorageNode > , StorageNode > ; getStoragePath ( ) : Promise < string > ; write ( value ) : Promise < void > ; writeFinal ( value ) : Promise < void > ; } > ) ; makeRecorderKit : ( < T > ( storageNode , valueShape ? ) => RecorderKit < T > ) ; } Parameters marshaller : ERef < Marshaller < unknown > > Returns { makeDurablePublishKit : ( ( ... args ) => { publisher : { fail ( reason ) : void ; finish ( finalValue ) : void ; publish ( value ) : void ; } ; subscriber : { getUpdateSince ( updateCount ) : any ; subscribeAfter ( publishCount ? ) : Promise < any > ; } ; } & RemotableBrand < {} , { publisher : { fail ( reason ) : void ; finish ( finalValue ) : void ; publish ( value ) : void ; } ; subscriber : { getUpdateSince ( updateCount ) : any ; subscribeAfter ( publishCount ? ) : Promise < any > ; } ; } > ) ; makeERecorderKit : ( < T > ( storageNodeP , valueShape ? ) => EventualRecorderKit < T > ) ; makeRecorder : ( ( ... args ) => { getStorageNode ( ) : DataOnly < StorageNode > & RemotableBrand < DataOnly < StorageNode > , StorageNode > ; getStoragePath ( ) : Promise < string > ; write ( value ) : Promise < void > ; writeFinal ( value ) : Promise < void > ; } & RemotableBrand < {} , { getStorageNode ( ) : DataOnly < StorageNode > & RemotableBrand < DataOnly < StorageNode > , StorageNode > ; getStoragePath ( ) : Promise < string > ; write ( value ) : Promise < void > ; writeFinal ( value ) : Promise < void > ; } > ) ; makeRecorderKit : ( < T > ( storageNode , valueShape ? ) => RecorderKit < T > ) ; } make Durable Publish Kit : ( ( ... args ) => { publisher : { fail ( reason ) : void ; finish ( finalValue ) : void ; publish ( value ) : void ; } ; subscriber : { getUpdateSince ( updateCount ) : any ; subscribeAfter ( publishCount ? ) : Promise < any > ; } ; } & RemotableBrand < {} , { publisher : { fail ( reason ) : void ; finish ( finalValue ) : void ; publish ( value ) : void ; } ; subscriber : { getUpdateSince ( updateCount ) : any ; subscribeAfter ( publishCount ? ) : Promise < any > ; } ; } > ) ( ... args ) : { publisher : { fail ( reason ) : void ; finish ( finalValue ) : void ; publish ( value ) : void ; } ; subscriber : { getUpdateSince ( updateCount ) : any ; subscribeAfter ( publishCount ? ) : Promise < any > ; } ; } & RemotableBrand < {} , { publisher : { fail ( reason ) : void ; finish ( finalValue ) : void ; publish ( value ) : void ; } ; subscriber : { getUpdateSince ( updateCount ) : any ; subscribeAfter ( publishCount ? ) : Promise < any > ; } ; } > Parameters Rest ... args : [ options: { valueDurability : undefined | "mandatory" ; } ] Returns { publisher : { fail ( reason ) : void ; finish ( finalValue ) : void ; publish ( value ) : void ; } ; subscriber : { getUpdateSince ( updateCount ) : any ; subscribeAfter ( publishCount ? ) : Promise < any > ; } ; } & RemotableBrand < {} , { publisher : { fail ( reason ) : void ; finish ( finalValue ) : void ; publish ( value ) : void ; } ; subscriber : { getUpdateSince ( updateCount ) : any ; subscribeAfter ( publishCount ? ) : Promise < any > ; } ; } > makeERecorder Kit : ( < T > ( storageNodeP , valueShape ? ) => EventualRecorderKit < T > ) < T > ( storageNodeP , valueShape ? ) : EventualRecorderKit < T > Parameters storageNodeP : ERef < StorageNode > make Recorder : ( ( ... args ) => { getStorageNode ( ) : DataOnly < StorageNode > & RemotableBrand < DataOnly < StorageNode > , StorageNode > ; getStoragePath ( ) : Promise < string > ; write ( value ) : Promise < void > ; writeFinal ( value ) : Promise < void > ; } & RemotableBrand < {} , { getStorageNode ( ) : DataOnly < StorageNode > & RemotableBrand < DataOnly < StorageNode > , StorageNode > ; getStoragePath ( ) : Promise < string > ; write ( value ) : Promise < void > ; writeFinal ( value ) : Promise < void > ; } > ) ( ... args ) : { getStorageNode ( ) : DataOnly < StorageNode > & RemotableBrand < DataOnly < StorageNode > , StorageNode > ; getStoragePath ( ) : Promise < string > ; write ( value ) : Promise < void > ; writeFinal ( value ) : Promise < void > ; } & RemotableBrand < {} , { getStorageNode ( ) : DataOnly < StorageNode > & RemotableBrand < DataOnly < StorageNode > , StorageNode > ; getStoragePath ( ) : Promise < string > ; write ( value ) : Promise < void > ; writeFinal ( value ) : Promise < void > ; } > Parameters Rest ... args : [ publisher: Publisher < unknown > , storageNode: DataOnly < StorageNode > & RemotableBrand < DataOnly < StorageNode > , StorageNode > , valueShape: TypedMatcher < unknown > ] Returns { getStorageNode ( ) : DataOnly < StorageNode > & RemotableBrand < DataOnly < StorageNode > , StorageNode > ; getStoragePath ( ) : Promise < string > ; write ( value ) : Promise < void > ; writeFinal ( value ) : Promise < void > ; } & RemotableBrand < {} , { getStorageNode ( ) : DataOnly < StorageNode > & RemotableBrand < DataOnly < StorageNode > , StorageNode > ; getStoragePath ( ) : Promise < string > ; write ( value ) : Promise < void > ; writeFinal ( value ) : Promise < void > ; } > make Recorder Kit : ( < T > ( storageNode , valueShape ? ) => RecorderKit < T > ) < T > ( storageNode , valueShape ? ) : RecorderKit < T > Parameters storageNode : StorageNode | DataOnly < StorageNode > & RemotableBrand < DataOnly < StorageNode > , StorageNode >
Convenience wrapper for DurablePublishKit and Recorder kinds.
NB: this defines two durable kinds. Must be called at most once per baggage.
makeRecorderKitis suitable for making a durableRecorderKitwhich can be held in Exo state.makeERecorderKitis for closures that must return asubscribersynchronously but can defer therecorder.