19 lines
1.1 KiB
Plaintext
19 lines
1.1 KiB
Plaintext
type Replacement = record { expected: list<string>; targets: list<atom-ref<Node>>; };
|
|||
|
|
type Seed = record { label: string; };
|
||
|
|
external atom Node id "collection:node";
|
||
|
|
package CollectionRuntime id "collection:runtime" revision "collection:runtime@1" {
|
||
|
|
operation version id "collection:runtime:version" : unit -> list<string>
|
||
|
|
mode call execution snapshot targets [browser, server] receiver atom Node requires {
|
||
|
|
edge items id "collection:version:items" : many atom Node [resolve];
|
||
|
|
};
|
||
|
|
operation replace id "collection:runtime:replace" : Replacement -> unit
|
||
|
|
mode call execution transaction targets [browser, server] receiver atom Node requires {
|
||
|
|
edge items id "collection:replace:items" : many atom Node [resolve, connect, disconnect];
|
||
|
|
};
|
||
|
|
operation ensure id "collection:runtime:ensure" : unit -> atom-ref<Node>
|
||
|
|
mode call execution transaction targets [browser, server] receiver atom Node requires {
|
||
|
|
edge detail id "collection:ensure:detail" : optional-one atom Node [resolve, connect];
|
||
|
|
creation node id "collection:ensure:node" : Node input Seed;
|
||
|
|
};
|
||
|
|
}
|