diff --git a/objects/Entity.mjs b/objects/Entity.mjs index 7dadefd..9233c07 100644 --- a/objects/Entity.mjs +++ b/objects/Entity.mjs @@ -1,4 +1,4 @@ -import dv from "./dv.mjs" +import dv from "./dataValidation.mjs" export default class Entity{ set _id(prop){ if(prop){ diff --git a/objects/Publication.mjs b/objects/Publication.mjs index ffc6212..1a4f8b1 100644 --- a/objects/Publication.mjs +++ b/objects/Publication.mjs @@ -1,9 +1,9 @@ import Title from "./Title.mjs"; -import dv from "./dv.mjs"; +import dataValidation from "./dataValidation.mjs"; export default class Publication extends Title{ set _link(prop){ if(prop){ - if(!dv.isString(prop)){throw new TypeError("link must be a string")} + if(!dataValidation.isString(prop)){throw new TypeError("link must be a string")} this.link=prop } } diff --git a/objects/Title.mjs b/objects/Title.mjs index 49589b0..e2d2c5a 100644 --- a/objects/Title.mjs +++ b/objects/Title.mjs @@ -1,16 +1,16 @@ import Entity from "./Entity.mjs"; -import dv from "./dv.mjs"; +import dataValidation from "./dataValidation.mjs"; //THIS CLASS WILL HANDLE JUNCTION TABLE STUFF export default class Title extends Entity{ set _title(prop){ if(prop){ - if(!dv.isString(prop)){throw new TypeError("title must be a string")} + if(!dataValidation.isString(prop)){throw new TypeError("title must be a string")} this.title=prop } } set _genres(prop){ if(prop){ - if(!dv.isObject(prop)){throw new TypeError("genres must be an object")} + if(!dataValidation.isObject(prop)){throw new TypeError("genres must be an object")} this.genres=prop } } diff --git a/objects/dataValidation.mjs b/objects/dataValidation.mjs new file mode 100644 index 0000000..22c1791 --- /dev/null +++ b/objects/dataValidation.mjs @@ -0,0 +1,23 @@ +import { DateTime } from "luxon" + +export default { + isNumber (n){ + if(isNaN(n)){return false} + if (typeof n === "number") { return true } + return false + }, + isString (s){ + if (typeof s === 'string') { return true } + return false + }, + dateStringIsValid(str){ + if(str===null){return true} + if(DateTime.fromFormat(str,'yyyy-MM-dd').isValid){ + return true + } + return false + }, + isObject(objValue) { + return objValue && typeof objValue === 'object' && objValue.constructor === Object; + } +} \ No newline at end of file