@mismith/firebase-tools
Version:
Various helpers and utilities for dealing with Firebase in both the browser and server-side within cloud functions.
83 lines (82 loc) • 2.69 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var FirebaseInvitesBase = /** @class */ (function () {
function FirebaseInvitesBase() {
}
FirebaseInvitesBase.getDate = function (source) {
if (source === void 0) { source = undefined; }
return source ? new Date(source) : new Date();
};
FirebaseInvitesBase.getDateString = function (date) {
if (date === void 0) { date = new Date(); }
return date.toISOString();
};
FirebaseInvitesBase.isAfter = function (timestamp) {
if (timestamp) {
var date = this.getDate(timestamp);
return this.getDate().getTime() >= date.getTime();
}
return false;
};
FirebaseInvitesBase.isCreated = function (invite) {
return this.isAfter(invite[this.keys.created]);
};
FirebaseInvitesBase.isCancelled = function (invite) {
return this.isAfter(invite[this.keys.cancelled]);
};
FirebaseInvitesBase.isExpired = function (invite) {
return this.isAfter(invite[this.keys.expires]);
};
FirebaseInvitesBase.isAccepted = function (invite) {
return this.isAfter(invite[this.keys.accepted]);
};
FirebaseInvitesBase.isDeleted = function (invite) {
return !invite;
};
FirebaseInvitesBase.getStatus = function (invite) {
if (this.isDeleted(invite)) {
return this.status.DELETED;
}
else if (this.isAccepted(invite)) {
return this.status.ACCEPTED;
}
else if (this.isExpired(invite)) {
return this.status.EXPIRED;
}
else if (this.isCancelled(invite)) {
return this.status.CANCELLED;
}
else if (this.isCreated(invite)) {
return this.status.CREATED;
}
else {
return this.status.UNKNOWN;
}
};
FirebaseInvitesBase.is = function (invite) {
var statuses = [];
for (var _i = 1; _i < arguments.length; _i++) {
statuses[_i - 1] = arguments[_i];
}
return statuses.indexOf(this.getStatus(invite)) >= 0;
};
FirebaseInvitesBase.keys = {
payload: 'payload',
created: 'created',
createdBy: 'createdBy',
cancelled: 'cancelled',
expires: 'expires',
accepted: 'accepted',
acceptedBy: 'acceptedBy',
};
FirebaseInvitesBase.status = {
CREATED: 'created',
CANCELLED: 'cancelled',
EXPIRED: 'expired',
ACCEPTED: 'accepted',
DELETED: 'deleted',
UNKNOWN: 'unknown',
};
return FirebaseInvitesBase;
}());
exports.default = FirebaseInvitesBase;