@scorpionknifes/fireo
Version:
Fork of Fireo, Google Cloud Firestore modern and simplest convenient ORM package in NodeJs. FireO is specifically designed for the Google's Firestore
40 lines (33 loc) • 921 B
JavaScript
const { FieldValue } = require("@google-cloud/firestore");
const BaseField = require("./BaseField");
const { InvalidFieldType } = require("../../errors");
/**
* Field for DateTime data
* @extends BaseField
*/
class DateTimeField extends BaseField {
static fieldOptions = ["auto"];
option_auto({ optionValue, fieldValue }) {
if (optionValue === true) {
return FieldValue.serverTimestamp();
}
return fieldValue;
}
/**
* Set DateTimeField Value
* @override
* @param {Date} value - DateTime value
*/
setValue(value) {
if (value === undefined) {
return;
}
if (value instanceof Date === false) {
throw new InvalidFieldType(
`${this.originalName} only accept Date value in model ${this.modelName}, invalid value provided "${value}"`
);
}
this.val = value;
}
}
module.exports = DateTimeField;