0.6.1 • Published 7 years ago
archetype-js v0.6.1
archetype
Archetype is a runtime type-casting library. Its purpose is to compose types from existing types in a way that's easy to write and document.
const { ObjectId } = require('mongodb');
const moment = require('moment');
// `Person` is now a constructor
const Person = new Archetype({
name: 'string',
bandId: {
$type: ObjectId,
$required: true
},
createdAt: {
$type: moment,
$default: () => moment()
}
}).compile('Person');
const test = new Person({
name: 'test',
bandId: '507f191e810c19729de860ea'
});
test.bandId; // Now a mongodb ObjectId
test.createdAt; // moment representing now
If casting fails, archetype throws a nice clean exception:
try {
Person({ // <-- calling with `new` is optional
name: 'test',
bandId: 'ImNotAValidObjectId'
});
} catch(error) {
error.errors['bandId'].message; // Mongodb ObjectId error
}
Archetypes are composable, inspectable, and extendable via extends
.
0.6.1
7 years ago
0.6.0
7 years ago
0.5.1
7 years ago
0.5.0
7 years ago
0.4.4
7 years ago
0.4.3
7 years ago
0.4.2
7 years ago
0.4.1
7 years ago
0.4.0
7 years ago
0.3.1
8 years ago
0.3.0
8 years ago
0.2.15
8 years ago
0.2.14
8 years ago
0.2.13
8 years ago
0.2.12
8 years ago
0.2.11
8 years ago
0.2.10
8 years ago
0.2.9
8 years ago
0.2.8
8 years ago
0.2.7
8 years ago
0.2.6
8 years ago
0.2.5
8 years ago
0.2.4
8 years ago
0.2.3
8 years ago
0.2.2
8 years ago
0.2.1
8 years ago
0.2.0
8 years ago
0.1.11
8 years ago
0.1.10
8 years ago
0.1.9
8 years ago
0.1.8
8 years ago
0.1.7
8 years ago
0.1.6
8 years ago
0.1.5
8 years ago
0.1.4
8 years ago
0.1.3
8 years ago
0.1.2
8 years ago
0.1.1
8 years ago
0.1.0
8 years ago