Skip to content

Commit ee0df08

Browse files
arash01raymondfeng
authored andcommitted
feat: add findOne function into legacy juggler bridge
1 parent 25db62b commit ee0df08

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

packages/repository/src/legacy-juggler-bridge.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,11 @@ export class DefaultCrudRepository<T extends Entity, ID>
138138
return this.toEntities(models);
139139
}
140140

141+
async findOne(filter?: Filter, options?: Options): Promise<T> {
142+
const model = await ensurePromise(this.modelClass.findOne(filter, options));
143+
return this.toEntity(model);
144+
}
145+
141146
async findById(id: ID, filter?: Filter, options?: Options): Promise<T> {
142147
const model = await ensurePromise(
143148
this.modelClass.findById(id, filter, options),

packages/repository/test/unit/repository/legacy-juggler-bridge.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,20 @@ describe('DefaultCrudRepository', () => {
9797
expect(notes.length).to.eql(1);
9898
});
9999

100+
it('implements Repository.findOne()', async () => {
101+
const repo = new DefaultCrudRepository(Note, ds);
102+
await repo.createAll([
103+
{title: 't1', content: 'c1'},
104+
{title: 't1', content: 'c2'},
105+
]);
106+
const note = await repo.findOne({
107+
where: {title: 't1'},
108+
order: ['content DESC'],
109+
});
110+
expect(note.title).to.eql('t1');
111+
expect(note.content).to.eql('c2');
112+
});
113+
100114
it('implements Repository.delete()', async () => {
101115
const repo = new DefaultCrudRepository(Note, ds);
102116
const note = await repo.create({title: 't3', content: 'c3'});

0 commit comments

Comments
 (0)