| 5 | const inputOrPayload = /(Input|Payload)$/m |
| 6 | |
| 7 | export default function processPreviews(previews) { |
| 8 | // clean up raw yml data |
| 9 | previews.forEach((preview) => { |
| 10 | // remove any extra info that follows a hyphen |
| 11 | preview.title = sentenceCase(preview.title.replace(/ -.+/, '')).replace('it hub', 'itHub') // fix overcorrected `git hub` from sentenceCasing |
| 12 | |
| 13 | // Add `preview` to the end of titles if needed |
| 14 | preview.title = preview.title.endsWith('preview') ? preview.title : `${preview.title} preview` |
| 15 | |
| 16 | // filter out schema members that end in `Input` or `Payload` |
| 17 | preview.toggled_on = preview.toggled_on.filter( |
| 18 | (schemaMember) => !inputOrPayload.test(schemaMember) |
| 19 | ) |
| 20 | |
| 21 | // remove unnecessary leading colon |
| 22 | preview.toggled_by = preview.toggled_by.replace(':', '') |
| 23 | |
| 24 | // add convenience properties |
| 25 | preview.accept_header = `application/vnd.github.${preview.toggled_by}+json` |
| 26 | |
| 27 | delete preview.announcement |
| 28 | delete preview.updates |
| 29 | |
| 30 | slugger.reset() |
| 31 | preview.href = `/graphql/overview/schema-previews#${slugger.slug(preview.title)}` |
| 32 | }) |
| 33 | |
| 34 | return previews |
| 35 | } |