baqend
Version:
Baqend JavaScript SDK
223 lines • 17.1 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.BasicType = void 0;
var binding_1 = require("../binding");
var GeoPoint_1 = require("../GeoPoint");
var Type_1 = require("./Type");
function dateToJson(value) {
// remove trailing zeros
return value instanceof Date ? value.toISOString().replace(/\.?0*Z/, 'Z') : null;
}
function jsonToDate(json, currentValue) {
var date = typeof json === 'string' ? new Date(json) : null;
if (currentValue && date) {
// compare normalized date strings instead of plain strings
return currentValue.toISOString() === date.toISOString() ? currentValue : date;
}
return date;
}
var BasicType = /** @class */ (function (_super) {
__extends(BasicType, _super);
/**
* Creates a new instance of a native db type
* @param ref The db ref of this type
* @param typeConstructor The javascript class of this type
* @param noResolving Indicates if this type is not the main type of the constructor
*/
function BasicType(ref, typeConstructor, noResolving) {
var _this = this;
var id = ref.indexOf('/db/') === 0 ? ref : "/db/".concat(ref);
_this = _super.call(this, id, typeConstructor) || this;
_this.noResolving = !!noResolving;
return _this;
}
Object.defineProperty(BasicType.prototype, "persistenceType", {
/**
* @inheritDoc
*/
get: function () {
return Type_1.PersistenceType.BASIC;
},
enumerable: false,
configurable: true
});
/**
* @inheritDoc
*/
BasicType.prototype.toJsonValue = function (state, currentValue) {
return currentValue === null || currentValue === undefined ? null : this.typeConstructor(currentValue);
};
/**
* @inheritDoc
*/
// eslint-disable-next-line @typescript-eslint/no-unused-vars
BasicType.prototype.fromJsonValue = function (state, json, currentValue) {
return json === null || json === undefined ? null : json;
};
BasicType.prototype.toString = function () {
return "BasicType(".concat(this.ref, ")");
};
BasicType.Boolean = new /** @class */ (function (_super) {
__extends(BooleanType, _super);
function BooleanType() {
return _super !== null && _super.apply(this, arguments) || this;
}
BooleanType.prototype.fromJsonValue = function (state, json, currentValue) {
return typeof json === 'string' ? json !== 'false' : _super.prototype.fromJsonValue.call(this, state, json, currentValue);
};
return BooleanType;
}(BasicType))('Boolean', Boolean);
BasicType.Double = new /** @class */ (function (_super) {
__extends(DoubleType, _super);
function DoubleType() {
return _super !== null && _super.apply(this, arguments) || this;
}
DoubleType.prototype.fromJsonValue = function (state, json, currentValue) {
return typeof json === 'string' ? parseFloat(json) : _super.prototype.fromJsonValue.call(this, state, json, currentValue);
};
return DoubleType;
}(BasicType))('Double', Number);
BasicType.Integer = new /** @class */ (function (_super) {
__extends(IntegerType, _super);
function IntegerType() {
return _super !== null && _super.apply(this, arguments) || this;
}
IntegerType.prototype.fromJsonValue = function (state, json, currentValue) {
return typeof json === 'string' ? parseInt(json, 10) : _super.prototype.fromJsonValue.call(this, state, json, currentValue);
};
return IntegerType;
}(BasicType))('Integer', Number);
BasicType.String = new /** @class */ (function (_super) {
__extends(StringType, _super);
function StringType() {
return _super !== null && _super.apply(this, arguments) || this;
}
StringType.prototype.fromJsonValue = function (state, json, currentValue) {
return _super.prototype.fromJsonValue.call(this, state, json, currentValue);
};
return StringType;
}(BasicType))('String', String);
BasicType.DateTime = new /** @class */ (function (_super) {
__extends(DateTimeType, _super);
function DateTimeType() {
return _super !== null && _super.apply(this, arguments) || this;
}
DateTimeType.prototype.toJsonValue = function (state, value) {
return dateToJson(value);
};
DateTimeType.prototype.fromJsonValue = function (state, json, currentValue) {
return jsonToDate(json, currentValue);
};
return DateTimeType;
}(BasicType))('DateTime', Date);
BasicType.Date = new /** @class */ (function (_super) {
__extends(DateType, _super);
function DateType() {
return _super !== null && _super.apply(this, arguments) || this;
}
DateType.prototype.toJsonValue = function (state, value) {
var json = dateToJson(value);
return json ? json.substring(0, json.indexOf('T')) : null;
};
DateType.prototype.fromJsonValue = function (state, json, currentValue) {
return jsonToDate(json, currentValue);
};
return DateType;
}(BasicType))('Date', Date);
BasicType.Time = new /** @class */ (function (_super) {
__extends(TimeType, _super);
function TimeType() {
return _super !== null && _super.apply(this, arguments) || this;
}
TimeType.prototype.toJsonValue = function (state, value) {
var json = dateToJson(value);
return json ? json.substring(json.indexOf('T') + 1) : null;
};
TimeType.prototype.fromJsonValue = function (state, json, currentValue) {
return typeof json === 'string' ? jsonToDate("1970-01-01T".concat(json), currentValue) : null;
};
return TimeType;
}(BasicType))('Time', Date);
BasicType.File = new /** @class */ (function (_super) {
__extends(FileType, _super);
function FileType() {
return _super !== null && _super.apply(this, arguments) || this;
}
FileType.prototype.toJsonValue = function (state, value) {
return value instanceof binding_1.File ? value.id : null;
};
FileType.prototype.fromJsonValue = function (state, json, currentValue) {
if (!json) {
return null;
}
if (currentValue && currentValue.id === json) {
return currentValue;
}
if (state.db) {
return new state.db.File(json);
}
return null;
};
return FileType;
}(BasicType))('File', binding_1.File);
BasicType.GeoPoint = new /** @class */ (function (_super) {
__extends(GeoPointType, _super);
function GeoPointType() {
return _super !== null && _super.apply(this, arguments) || this;
}
GeoPointType.prototype.toJsonValue = function (state, value) {
return value instanceof GeoPoint_1.GeoPoint ? value.toJSON() : null;
};
GeoPointType.prototype.fromJsonValue = function (state, json) {
return json ? new GeoPoint_1.GeoPoint(json) : null;
};
return GeoPointType;
}(BasicType))('GeoPoint', GeoPoint_1.GeoPoint);
BasicType.JsonArray = new /** @class */ (function (_super) {
__extends(JsonArrayType, _super);
function JsonArrayType() {
return _super !== null && _super.apply(this, arguments) || this;
}
JsonArrayType.prototype.toJsonValue = function (state, value) {
return Array.isArray(value) ? value : null;
};
JsonArrayType.prototype.fromJsonValue = function (state, json) {
return Array.isArray(json) ? json : null;
};
return JsonArrayType;
}(BasicType))('JsonArray', Array);
BasicType.JsonObject = new /** @class */ (function (_super) {
__extends(JsonObjectType, _super);
function JsonObjectType() {
return _super !== null && _super.apply(this, arguments) || this;
}
JsonObjectType.prototype.fromJsonValue = function (state, json, currentValue) {
return _super.prototype.fromJsonValue.call(this, state, json, currentValue);
};
JsonObjectType.prototype.toJsonValue = function (state, value) {
if (value && value.constructor === Object) {
return value;
}
return null;
};
return JsonObjectType;
}(BasicType))('JsonObject', Object);
return BasicType;
}(Type_1.Type));
exports.BasicType = BasicType;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNUeXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL21ldGFtb2RlbC9CYXNpY1R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUEsc0NBQWtDO0FBQ2xDLHdDQUF1QztBQUN2QywrQkFBK0M7QUFHL0MsU0FBUyxVQUFVLENBQUMsS0FBa0I7SUFDcEMsd0JBQXdCO0lBQ3hCLE9BQU8sS0FBSyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNuRixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBVSxFQUFFLFlBQXlCO0lBQ3ZELElBQU0sSUFBSSxHQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5RCxJQUFJLFlBQVksSUFBSSxJQUFJLEVBQUU7UUFDeEIsMkRBQTJEO1FBQzNELE9BQU8sWUFBWSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7S0FDaEY7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDtJQUFrQyw2QkFBTztJQTZIdkM7Ozs7O09BS0c7SUFDSCxtQkFBWSxHQUFXLEVBQUUsZUFBeUIsRUFBRSxXQUFxQjtRQUF6RSxpQkFNQztRQUxDLElBQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQU8sR0FBRyxDQUFFLENBQUM7Z0JBRTFELGtCQUFNLEVBQUUsRUFBRSxlQUFl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