From 24f76a8a9e868bb39abb4cf170100ca2a86b90d5 Mon Sep 17 00:00:00 2001
From: "francois.grand" <francois.grand@irstea.fr>
Date: Thu, 21 Jun 2018 16:03:17 +0200
Subject: [PATCH]  #48 ajout fonctions isObservable()/asObservable()

---
 src/util/observer.ts | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/src/util/observer.ts b/src/util/observer.ts
index 6a17beb9..fea87f9c 100644
--- a/src/util/observer.ts
+++ b/src/util/observer.ts
@@ -51,3 +51,26 @@ export class Observable implements IObservable {
             o.update(sender, data);
     }
 }
+
+/**
+ * @return true si l'objet passé implémente IObservable
+ * @param o objet à tester
+ */
+export function isObservable(o: any): boolean {
+    if (o === undefined)
+        return false;
+
+    const ob = <IObservable>o;
+    return typeof ob.addObserver === "function";
+}
+
+/**
+ * cast d'un objet implémentant IObservable
+ * @param o objet à convertir
+ */
+export function asObservable(o: any): IObservable {
+    if (isObservable(o))
+        return <IObservable>o;
+
+    return undefined;
+}
-- 
GitLab