Skip to content
This repository was archived by the owner on Jul 13, 2023. It is now read-only.

Commit b27b63b

Browse files
pytlesk4Marc MacLeod
authored andcommitted
fix: Only resolve string $refs (#8)
1 parent fa067aa commit b27b63b

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

src/__tests__/resolver.spec.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,31 @@ describe('resolver', () => {
160160
expect(resolved.result.hello).toBe('world');
161161
});
162162

163+
test('should only resolve valid $refs', async () => {
164+
const source = {
165+
hello: {
166+
$ref: {
167+
foo: 'bear',
168+
},
169+
},
170+
word: 'world',
171+
};
172+
173+
const resolver = new Resolver();
174+
let resolved = await resolver.resolve(source);
175+
expect(resolved.result).toEqual(source);
176+
177+
// @ts-ignore
178+
source.hello.$ref = true;
179+
resolved = await resolver.resolve(source);
180+
expect(resolved.result).toEqual(source);
181+
182+
// @ts-ignore
183+
source.hello.$ref = 1;
184+
resolved = await resolver.resolve(source);
185+
expect(resolved.result).toEqual(source);
186+
});
187+
163188
test('should support not resolving pointers', async () => {
164189
const source = {
165190
hello: {

src/runner.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,7 @@ const memoize = require('fast-memoize');
1414
let resolveRunnerCount = 0;
1515

1616
export const defaultGetRef = (key: string, val: any) => {
17-
if (val && typeof val === 'object' && val.$ref) {
18-
return val.$ref;
19-
}
20-
17+
if (val && typeof val === 'object' && typeof val.$ref === 'string') return val.$ref;
2118
return;
2219
};
2320

0 commit comments

Comments
 (0)