import "reflect-metadata"
export const MetadataKey = "Sql:repository";
export function Sql(sql: string) {
return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
Reflect.defineMetadata(MetadataKey, sql, target.__proto__, descriptor.value.name);
};
}
let sqlCallback: CallbackFunc = function(metadata: any, ...params:any[]):any {
return 1;
}
RepoManager.regist(MetadataKey, sqlCallback);
export class SampleRepository{
@Sql('select * from "order" where "id" = ?')
public async findById(id:Number):Promise<any> {return null};
}
var repository = RepositoryFactory.repoConstructor(null, SampleRepository);
var result = await repository.findById(1);
@(fluentProvide(SampleRepository).inSingletonScope().onActivation(repoConstructor).done())
export class SampleRepository{
@Sql('select * from "order" where "id" = ?')
public async findById(id:Number):Promise<any> {return null};
}