sqlmongoose
Version:
Mongoose-like schemas and models for SQLite3
35 lines (34 loc) • 1.2 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.SchemaType = void 0;
exports.Entity = Entity;
exports.Field = Field;
exports.Index = Index;
require("reflect-metadata");
var SchemaType;
(function (SchemaType) {
SchemaType["STRING"] = "string";
SchemaType["NUMBER"] = "number";
SchemaType["BOOLEAN"] = "boolean";
SchemaType["DATE"] = "date";
SchemaType["OBJECT"] = "object";
})(SchemaType || (exports.SchemaType = SchemaType = {}));
function Entity(name) {
return function (constructor) {
Reflect.defineMetadata('entity:name', name, constructor);
};
}
function Field(options) {
return function (target, propertyKey) {
const metadata = Reflect.getMetadata('fields', target.constructor) || {};
metadata[propertyKey] = options;
Reflect.defineMetadata('fields', metadata, target.constructor);
};
}
function Index(options = {}) {
return function (target, propertyKey) {
const metadata = Reflect.getMetadata('indices', target.constructor) || [];
metadata.push({ field: propertyKey, ...options });
Reflect.defineMetadata('indices', metadata, target.constructor);
};
}
;