Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Model {
- #object
- constructor(object = {}) {
- this.#object = object;
- let keys = Object.keys(this.#object),
- types = []
- for (let i in this.#object) {
- types.push(typeof this.#object[i])
- }
- return function (data) {
- if (typeof data !== 'object') throw "DATA REQUIRED A OBJECT!"
- let dataKeys = Object.keys(data)
- for (let i = 0, l = keys.length; i < keys.length; i++) {
- // Validating the keys
- if (dataKeys[i] !== keys[i]) return new Error("INVALID KEY! '" + dataKeys[i] + "'")
- // Validating data types
- if (typeof data[keys[i]] !== types[i]) return new Error("INVALID TYPE ASSIGNATION! " + keys[i] + " is not a " + types[i])
- // Setting in 'this'
- this[dataKeys[i]] = data[dataKeys[i]]
- }
- return this;
- };
- }
- }
- const User = new Model({
- name: String(),
- age: Number(),
- confirmed: Boolean()
- })
- let user = new User({name: 'Nico', age: 15, confirmed: false})
- console.log(user)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement