Skip to content

Commit 1d228fa

Browse files
jsayolJosep Sayol
authored and
Josep Sayol
committed
WIP: Convert OnDisconnect to a class
1 parent f4ae751 commit 1d228fa

File tree

1 file changed

+89
-88
lines changed

1 file changed

+89
-88
lines changed

src/database/api/onDisconnect.ts

Lines changed: 89 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -10,103 +10,104 @@ import {
1010
} from "../core/util/validation";
1111
import { warn } from "../core/util/util";
1212
import { Deferred } from "../../utils/promise";
13+
import { Repo } from '../core/Repo';
14+
import { Path } from '../core/util/Path';
1315

1416
/**
1517
* @constructor
16-
* @param {!Repo} repo
17-
* @param {!Path} path
1818
*/
19-
export const OnDisconnect = function(repo, path) {
20-
/** @private */
21-
this.repo_ = repo;
22-
23-
/** @private */
24-
this.path_ = path;
25-
};
26-
19+
export class OnDisconnect {
20+
/**
21+
* @param {!Repo} repo_
22+
* @param {!Path} path_
23+
*/
24+
constructor(private repo_: Repo,
25+
private path_: Path) {
26+
}
2727

28-
/**
29-
* @param {function(?Error)=} opt_onComplete
30-
* @return {!firebase.Promise}
31-
*/
32-
OnDisconnect.prototype.cancel = function(opt_onComplete) {
33-
validateArgCount('Firebase.onDisconnect().cancel', 0, 1, arguments.length);
34-
validateCallback('Firebase.onDisconnect().cancel', 1, opt_onComplete, true);
35-
var deferred = new Deferred();
36-
this.repo_.onDisconnectCancel(this.path_, deferred.wrapCallback(opt_onComplete));
37-
return deferred.promise;
38-
};
28+
/**
29+
* @param {function(?Error)=} opt_onComplete
30+
* @return {!firebase.Promise}
31+
*/
32+
cancel(opt_onComplete) {
33+
validateArgCount('firebase.database.onDisconnect().cancel', 0, 1, arguments.length);
34+
validateCallback('firebase.database.onDisconnect().cancel', 1, opt_onComplete, true);
35+
const deferred = new Deferred();
36+
this.repo_.onDisconnectCancel(this.path_, deferred.wrapCallback(opt_onComplete));
37+
return deferred.promise;
38+
}
3939

40-
/**
41-
* @param {function(?Error)=} opt_onComplete
42-
* @return {!firebase.Promise}
43-
*/
44-
OnDisconnect.prototype.remove = function(opt_onComplete) {
45-
validateArgCount('Firebase.onDisconnect().remove', 0, 1, arguments.length);
46-
validateWritablePath('Firebase.onDisconnect().remove', this.path_);
47-
validateCallback('Firebase.onDisconnect().remove', 1, opt_onComplete, true);
48-
var deferred = new Deferred();
49-
this.repo_.onDisconnectSet(this.path_, null, deferred.wrapCallback(opt_onComplete));
50-
return deferred.promise;
51-
};
40+
/**
41+
* @param {function(?Error)=} opt_onComplete
42+
* @return {!firebase.Promise}
43+
*/
44+
remove(opt_onComplete) {
45+
validateArgCount('firebase.database.onDisconnect().remove', 0, 1, arguments.length);
46+
validateWritablePath('firebase.database.onDisconnect().remove', this.path_);
47+
validateCallback('firebase.database.onDisconnect().remove', 1, opt_onComplete, true);
48+
const deferred = new Deferred();
49+
this.repo_.onDisconnectSet(this.path_, null, deferred.wrapCallback(opt_onComplete));
50+
return deferred.promise;
51+
}
5252

53-
/**
54-
* @param {*} value
55-
* @param {function(?Error)=} opt_onComplete
56-
* @return {!firebase.Promise}
57-
*/
58-
OnDisconnect.prototype.set = function(value, opt_onComplete) {
59-
validateArgCount('Firebase.onDisconnect().set', 1, 2, arguments.length);
60-
validateWritablePath('Firebase.onDisconnect().set', this.path_);
61-
validateFirebaseDataArg('Firebase.onDisconnect().set', 1, value, this.path_, false);
62-
validateCallback('Firebase.onDisconnect().set', 2, opt_onComplete, true);
63-
var deferred = new Deferred();
64-
this.repo_.onDisconnectSet(this.path_, value, deferred.wrapCallback(opt_onComplete));
65-
return deferred.promise;
66-
};
53+
/**
54+
* @param {*} value
55+
* @param {function(?Error)=} opt_onComplete
56+
* @return {!firebase.Promise}
57+
*/
58+
set(value, opt_onComplete) {
59+
validateArgCount('firebase.database.onDisconnect().set', 1, 2, arguments.length);
60+
validateWritablePath('firebase.database.onDisconnect().set', this.path_);
61+
validateFirebaseDataArg('firebase.database.onDisconnect().set', 1, value, this.path_, false);
62+
validateCallback('firebase.database.onDisconnect().set', 2, opt_onComplete, true);
63+
const deferred = new Deferred();
64+
this.repo_.onDisconnectSet(this.path_, value, deferred.wrapCallback(opt_onComplete));
65+
return deferred.promise;
66+
}
6767

68-
/**
69-
* @param {*} value
70-
* @param {number|string|null} priority
71-
* @param {function(?Error)=} opt_onComplete
72-
* @return {!firebase.Promise}
73-
*/
74-
OnDisconnect.prototype.setWithPriority = function(value, priority, opt_onComplete) {
75-
validateArgCount('Firebase.onDisconnect().setWithPriority', 2, 3, arguments.length);
76-
validateWritablePath('Firebase.onDisconnect().setWithPriority', this.path_);
77-
validateFirebaseDataArg('Firebase.onDisconnect().setWithPriority',
78-
1, value, this.path_, false);
79-
validatePriority('Firebase.onDisconnect().setWithPriority', 2, priority, false);
80-
validateCallback('Firebase.onDisconnect().setWithPriority', 3, opt_onComplete, true);
68+
/**
69+
* @param {*} value
70+
* @param {number|string|null} priority
71+
* @param {function(?Error)=} opt_onComplete
72+
* @return {!firebase.Promise}
73+
*/
74+
setWithPriority(value, priority, opt_onComplete) {
75+
validateArgCount('firebase.database.onDisconnect().setWithPriority', 2, 3, arguments.length);
76+
validateWritablePath('firebase.database.onDisconnect().setWithPriority', this.path_);
77+
validateFirebaseDataArg('firebase.database.onDisconnect().setWithPriority',
78+
1, value, this.path_, false);
79+
validatePriority('firebase.database.onDisconnect().setWithPriority', 2, priority, false);
80+
validateCallback('firebase.database.onDisconnect().setWithPriority', 3, opt_onComplete, true);
8181

82-
var deferred = new Deferred();
83-
this.repo_.onDisconnectSetWithPriority(this.path_, value, priority, deferred.wrapCallback(opt_onComplete));
84-
return deferred.promise;
85-
};
82+
const deferred = new Deferred();
83+
this.repo_.onDisconnectSetWithPriority(this.path_, value, priority, deferred.wrapCallback(opt_onComplete));
84+
return deferred.promise;
85+
}
8686

87-
/**
88-
* @param {!Object} objectToMerge
89-
* @param {function(?Error)=} opt_onComplete
90-
* @return {!firebase.Promise}
91-
*/
92-
OnDisconnect.prototype.update = function(objectToMerge, opt_onComplete) {
93-
validateArgCount('Firebase.onDisconnect().update', 1, 2, arguments.length);
94-
validateWritablePath('Firebase.onDisconnect().update', this.path_);
95-
if (Array.isArray(objectToMerge)) {
96-
var newObjectToMerge = {};
97-
for (var i = 0; i < objectToMerge.length; ++i) {
98-
newObjectToMerge['' + i] = objectToMerge[i];
99-
}
100-
objectToMerge = newObjectToMerge;
101-
warn(
102-
'Passing an Array to Firebase.onDisconnect().update() is deprecated. Use set() if you want to overwrite the ' +
87+
/**
88+
* @param {!Object} objectToMerge
89+
* @param {function(?Error)=} opt_onComplete
90+
* @return {!firebase.Promise}
91+
*/
92+
update(objectToMerge, opt_onComplete) {
93+
validateArgCount('firebase.database.onDisconnect().update', 1, 2, arguments.length);
94+
validateWritablePath('firebase.database.onDisconnect().update', this.path_);
95+
if (Array.isArray(objectToMerge)) {
96+
const newObjectToMerge = {};
97+
for (let i = 0; i < objectToMerge.length; ++i) {
98+
newObjectToMerge['' + i] = objectToMerge[i];
99+
}
100+
objectToMerge = newObjectToMerge;
101+
warn(
102+
'Passing an Array to firebase.database.onDisconnect().update() is deprecated. Use set() if you want to overwrite the ' +
103103
'existing data, or an Object with integer keys if you really do want to only update some of the children.'
104-
);
105-
}
106-
validateFirebaseMergeDataArg('Firebase.onDisconnect().update', 1, objectToMerge,
104+
);
105+
}
106+
validateFirebaseMergeDataArg('firebase.database.onDisconnect().update', 1, objectToMerge,
107107
this.path_, false);
108-
validateCallback('Firebase.onDisconnect().update', 2, opt_onComplete, true);
109-
var deferred = new Deferred();
110-
this.repo_.onDisconnectUpdate(this.path_, objectToMerge, deferred.wrapCallback(opt_onComplete));
111-
return deferred.promise;
112-
};
108+
validateCallback('firebase.database.onDisconnect().update', 2, opt_onComplete, true);
109+
const deferred = new Deferred();
110+
this.repo_.onDisconnectUpdate(this.path_, objectToMerge, deferred.wrapCallback(opt_onComplete));
111+
return deferred.promise;
112+
}
113+
}

0 commit comments

Comments
 (0)