gray-matter
gray-matter copied to clipboard
Identical calls to `matter` should produce the same result
Identical, successive calls to matter return different results.
Example code:
const input = `---
foo: bar
---
Tada!`;
const parsed = matter(contents);
const parsed_again = matter(contents);
console.log(parsed.language) // => yaml
console.log(parsed_again.language) // => undefined
I understand from this comment that it's caching based on the input string, and I can cache bust by passing in an empty options hash as a workaround.
In this case, I'm fine with it caching (even though it was unexpected and IMO should at least be documented). However, the cache should cache the resulting object exactly, so that identical calls to matter always return the same result.
It's seems that the results are cached based on the content after frontmatter only, and not the whole content string. Which is even weirder. This means that when it first parses this:
# Some title
Some content
it will return {}, but when it then parses this:
---
abc: 123
---
# Some title
Some content
it returns cached {}...