@eggjs/tegg-plugin
Version:
module plugin for egg
51 lines • 4.47 kB
JavaScript
import { AccessLevel, MetadataUtil, QualifierUtil, IdenticalUtil, } from '@eggjs/tegg';
export const COMPATIBLE_PROTO_IMPLE_TYPE = 'EGG_COMPATIBLE';
export class EggCompatibleProtoImpl {
clazz;
qualifiers;
id;
name;
initType;
accessLevel;
injectObjects;
loadUnitId;
constructor(id, name, clazz, initType, loadUnitId, qualifiers) {
this.id = id;
this.clazz = clazz;
this.name = name;
this.initType = initType;
this.accessLevel = AccessLevel.PUBLIC;
this.injectObjects = [];
this.loadUnitId = loadUnitId;
this.qualifiers = qualifiers;
}
verifyQualifiers(qualifiers) {
for (const qualifier of qualifiers) {
if (!this.verifyQualifier(qualifier)) {
return false;
}
}
return true;
}
verifyQualifier(qualifier) {
const selfQualifiers = this.qualifiers.find(t => t.attribute === qualifier.attribute);
return selfQualifiers?.value === qualifier.value;
}
getQualifier(attribute) {
return this.qualifiers.find(t => t.attribute === attribute)?.value;
}
constructEggObject() {
return Reflect.apply(this.clazz, null, []);
}
getMetaData(metadataKey) {
return MetadataUtil.getMetaData(metadataKey, this.clazz);
}
static create(ctx) {
const { clazz, loadUnit } = ctx;
const name = ctx.prototypeInfo.name;
const id = IdenticalUtil.createProtoId(loadUnit.id, name);
const proto = new EggCompatibleProtoImpl(id, name, clazz, ctx.prototypeInfo.initType, loadUnit.id, QualifierUtil.mergeQualifiers(QualifierUtil.getProtoQualifiers(clazz), (ctx.prototypeInfo.qualifiers ?? [])));
return proto;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29tcGF0aWJsZVByb3RvSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ0NvbXBhdGlibGVQcm90b0ltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFHWCxZQUFZLEVBR1osYUFBYSxFQUViLGFBQWEsR0FFZCxNQUFNLGFBQWEsQ0FBQztBQVFyQixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxnQkFBZ0IsQ0FBQztBQUU1RCxNQUFNLE9BQU8sc0JBQXNCO0lBRWhCLEtBQUssQ0FBb0I7SUFDekIsVUFBVSxDQUFrQjtJQUVwQyxFQUFFLENBQVM7SUFDWCxJQUFJLENBQW1CO0lBQ3ZCLFFBQVEsQ0FBcUI7SUFDN0IsV0FBVyxDQUFjO0lBQ3pCLGFBQWEsQ0FBc0I7SUFDbkMsVUFBVSxDQUFLO0lBRXhCLFlBQ0UsRUFBVSxFQUNWLElBQXNCLEVBQ3RCLEtBQXdCLEVBQ3hCLFFBQTRCLEVBQzVCLFVBQWMsRUFDZCxVQUEyQjtRQUUzQixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBMkI7UUFDMUMsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQXdCO1FBQ3RDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEYsT0FBTyxjQUFjLEVBQUUsS0FBSyxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFpQjtRQUM1QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUM7SUFDckUsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFdBQVcsQ0FBSSxXQUF3QjtRQUNyQyxPQUFPLFlBQVksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFpQztRQUM3QyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUNoQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztRQUNwQyxNQUFNLEVBQUUsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxzQkFBc0IsQ0FDdEMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsZUFBZSxDQUNyRixhQUFhLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQ3ZDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQ3JDLENBQ0YsQ0FBQztRQUNGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIn0=