Skip to content

Commit 5c404d7

Browse files
committed
chore: revert prev fix
1 parent 4e22c41 commit 5c404d7

3 files changed

Lines changed: 12 additions & 7 deletions

File tree

packages/core/src/__tests__/ref-utils.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import outdent from 'outdent';
22
import { parseYamlToDocument } from '../../__tests__/utils.js';
3-
import { escapePointer, unescapePointer, parseRef, refBaseName } from '../ref-utils.js';
3+
import { escapePointer, parseRef, refBaseName, unescapePointerFromURI } from '../ref-utils.js';
44
import { lintDocument } from '../lint.js';
55
import { createConfig } from '../config/index.js';
66
import { BaseResolver } from '../resolve.js';
@@ -159,17 +159,17 @@ describe('ref-utils', () => {
159159
});
160160
});
161161

162-
describe('unescapePointer', () => {
162+
describe('unescapePointerFromURI', () => {
163163
it('should unescape a pointer with a percent sign correctly', () => {
164-
expect(unescapePointer('activity_level_%25')).toStrictEqual('activity_level_%');
164+
expect(unescapePointerFromURI('activity_level_%25')).toStrictEqual('activity_level_%');
165165
});
166166

167167
it('should unescape a pointer with a number correctly', () => {
168-
expect(unescapePointer('123')).toStrictEqual('123');
168+
expect(unescapePointerFromURI('123')).toStrictEqual('123');
169169
});
170170

171171
it('should unescape a pointer correctly', () => {
172-
expect(unescapePointer('scope~1complex~0name')).toStrictEqual('scope/complex~name');
172+
expect(unescapePointerFromURI('scope~1complex~0name')).toStrictEqual('scope/complex~name');
173173
});
174174
});
175175
});

packages/core/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export { YamlParseError } from './errors/yaml-parse-error.js';
5353
export { parseYaml, stringifyYaml } from './js-yaml/index.js';
5454
export {
5555
unescapePointer,
56+
unescapePointerFromURI,
5657
isRef,
5758
isAbsoluteUrl,
5859
escapePointer,

packages/core/src/ref-utils.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,11 @@ export class Location {
4141
}
4242

4343
export function unescapePointer(fragment: string): string {
44-
return decodeURIComponent(fragment).replace(/~1/g, '/').replace(/~0/g, '~');
44+
return fragment.replace(/~1/g, '/').replace(/~0/g, '~');
45+
}
46+
47+
export function unescapePointerFromURI(fragment: string): string {
48+
return unescapePointer(decodeURIComponent(fragment));
4549
}
4650

4751
export function escapePointer<T extends string | number>(fragment: T): T {
@@ -53,7 +57,7 @@ export function parseRef(ref: string): { uri: string | null; pointer: string[] }
5357
const [uri, pointer = ''] = ref.split('#/');
5458
return {
5559
uri: (uri.endsWith('#') ? uri.slice(0, -1) : uri) || null,
56-
pointer: parsePointer(pointer),
60+
pointer: pointer.split('/').map(unescapePointerFromURI).filter(isTruthy),
5761
};
5862
}
5963

0 commit comments

Comments
 (0)