Convert js files in `model/` to Typescript
Convert `JamiDaemon.js` to Typescript
Add `model/util.ts` containing some utility types.
Gitlab: #30
Change-Id: Ia5d120330011e89a0be28732965ae9814ab68d19
diff --git a/model/Contact.ts b/model/Contact.ts
new file mode 100644
index 0000000..01d4a02
--- /dev/null
+++ b/model/Contact.ts
@@ -0,0 +1,48 @@
+class Contact {
+ private readonly uri: string;
+ private displayName: string | undefined = undefined;
+ private registeredName: string | undefined = undefined;
+
+ constructor(uri: string) {
+ this.uri = uri;
+ }
+
+ static from(object: Contact) {
+ const contact = new Contact(object.uri);
+ if (object.registeredName) contact.setRegisteredName(object.registeredName);
+ return contact;
+ }
+
+ getUri() {
+ return this.uri;
+ }
+
+ getRegisteredName() {
+ return this.registeredName;
+ }
+
+ setRegisteredName(name: string | undefined) {
+ this.registeredName = name;
+ }
+
+ isRegisteredNameResolved() {
+ return this.registeredName !== undefined;
+ }
+
+ getDisplayName() {
+ return this.getDisplayNameNoFallback() || this.getUri();
+ }
+
+ getDisplayNameNoFallback() {
+ return this.displayName || this.getRegisteredName();
+ }
+
+ async getObject() {
+ return {
+ uri: this.uri,
+ registeredName: await this.registeredName,
+ };
+ }
+}
+
+export default Contact;