2021-03-11 17:00:45 +00:00
|
|
|
import * as _ from "@preserves/core";
|
2021-10-11 10:55:45 +00:00
|
|
|
import * as _i_EntityRef from "../runtime/actor";
|
|
|
|
import * as _i_dataspacePatterns from "./dataspacePatterns";
|
2021-03-11 17:00:45 +00:00
|
|
|
|
|
|
|
export const $Observe = Symbol.for("Observe");
|
|
|
|
|
2021-10-11 10:55:45 +00:00
|
|
|
export type _embedded = _i_EntityRef.Ref;
|
2021-03-11 17:00:45 +00:00
|
|
|
|
2021-10-11 10:55:45 +00:00
|
|
|
export type Observe<_embedded = _i_EntityRef.Ref> = {"pattern": _i_dataspacePatterns.Pattern<_embedded>, "observer": _embedded};
|
2021-03-11 17:00:45 +00:00
|
|
|
|
|
|
|
|
2021-10-11 10:55:45 +00:00
|
|
|
export function Observe<_embedded = _i_EntityRef.Ref>(
|
|
|
|
{pattern, observer}: {pattern: _i_dataspacePatterns.Pattern<_embedded>, observer: _embedded}
|
|
|
|
): Observe<_embedded> {return {"pattern": pattern, "observer": observer};}
|
2021-03-11 17:00:45 +00:00
|
|
|
|
2021-10-11 10:55:45 +00:00
|
|
|
export function asObserve<_embedded = _i_EntityRef.Ref>(v: _.Value<_embedded>): Observe<_embedded> {
|
2021-03-23 11:18:57 +00:00
|
|
|
let result = toObserve(v);
|
|
|
|
if (result === void 0) throw new TypeError(`Invalid Observe: ${_.stringify(v)}`);
|
|
|
|
return result;
|
2021-03-11 17:00:45 +00:00
|
|
|
}
|
|
|
|
|
2021-10-11 10:55:45 +00:00
|
|
|
export function toObserve<_embedded = _i_EntityRef.Ref>(v: _.Value<_embedded>): undefined | Observe<_embedded> {
|
|
|
|
let result: undefined | Observe<_embedded>;
|
|
|
|
if (_.Record.isRecord<_.Value<_embedded>, _.Tuple<_.Value<_embedded>>, _embedded>(v)) {
|
2021-03-23 11:18:57 +00:00
|
|
|
let _tmp0: (null) | undefined;
|
|
|
|
_tmp0 = _.is(v.label, $Observe) ? null : void 0;
|
2021-03-14 20:18:49 +00:00
|
|
|
if (_tmp0 !== void 0) {
|
2021-10-11 10:55:45 +00:00
|
|
|
let _tmp1: (_i_dataspacePatterns.Pattern<_embedded>) | undefined;
|
|
|
|
_tmp1 = _i_dataspacePatterns.toPattern(v[0]);
|
2021-03-23 11:18:57 +00:00
|
|
|
if (_tmp1 !== void 0) {
|
2021-05-17 13:13:55 +00:00
|
|
|
let _tmp2: (_embedded) | undefined;
|
|
|
|
_tmp2 = _.isEmbedded<_embedded>(v[1]) ? v[1].embeddedValue : void 0;
|
2021-10-11 10:55:45 +00:00
|
|
|
if (_tmp2 !== void 0) {result = {"pattern": _tmp1, "observer": _tmp2};};
|
2021-03-14 20:18:49 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
return result;
|
2021-03-12 19:49:18 +00:00
|
|
|
}
|
|
|
|
|
2021-10-11 10:55:45 +00:00
|
|
|
export function fromObserve<_embedded = _i_EntityRef.Ref>(_v: Observe<_embedded>): _.Value<_embedded> {
|
|
|
|
return _.Record(
|
|
|
|
$Observe,
|
|
|
|
[
|
|
|
|
_i_dataspacePatterns.fromPattern<_embedded>(_v["pattern"]),
|
|
|
|
_.embed(_v["observer"])
|
|
|
|
]
|
|
|
|
);
|
|
|
|
}
|
2021-03-12 19:49:18 +00:00
|
|
|
|