Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The method named sortByRequired of src/utils/openapi.ts is not reliable. #1104

Closed
yannan opened this issue Nov 14, 2019 · 1 comment
Closed

Comments

@yannan
Copy link
Contributor

yannan commented Nov 14, 2019

export function sortByRequired(
  fields: Array<{ required: boolean; name: string }>,
  order: string[] = [],
) {
  fields.sort((a, b) => {
    if (!a.required && b.required) {
      return 1;
    } else if (a.required && !b.required) {
      return -1;
    } else if (a.required && b.required) {
      return order.indexOf(a.name) - order.indexOf(b.name);
    } else {
      return 0;
    }
  });
}

See the usage of sort from MDN

If compareFunction(a, b) returns 0, leave a and b unchanged with respect to each other, but sorted with respect to all different elements. Note: the ECMAscript standard does not guarantee this behavior, thus, not all browsers (e.g. Mozilla versions dating back to at least 2003) respect this.

It may be cause the render result of ssr is not same between node endpoint and browser endpoint.Then the schema display unexpected when use ReactDOM hydrate.

@yannan
Copy link
Contributor Author

yannan commented Dec 10, 2019

Open another PR

@yannan yannan closed this as completed Dec 10, 2019
RomanHotsiy pushed a commit that referenced this issue Dec 13, 2019
jmendiara added a commit to jmendiara/ReDoc that referenced this issue Feb 28, 2020
* feat(cli): added support for JSON string value for --options CLI argument (Redocly#1047)

closes Redocly#797

* docs: expandDefaultServerVariables

* fix: do not crash on empty scopes

fixes Redocly#1044

* fix: auth section appears twice

fixes Redocly#818

* fix: left menu item before group is not highligted

fixes Redocly#1033

* fix: clicking on group title breaks first tag

fixes Redocly#1034

* fix: false-positive recursive detection with allOf at the same level

* fix: remove excessive whitespace between md sections on small screens

fixes Redocly#874

* chore: Release 2.0.0-rc.15 🔖

* chore(cli): redoc-cli v0.9.0

* chore(cli): update yarn.lock

* chore(cli): redoc-cli@0.9.1

* fix: fix scrollYOffset when SSR

* chore: Release 2.0.0-rc.16 🔖

* chore(cli): redoc-cli@0.9.2

* docs: fix typo (Redocly#1062)

* feat: added support for file paths as --options cli argument (Redocly#1049)

* fix: types over-pluralization (Redocly#1057)

fixes Redocly#1053

* docs: improve options documentation (Redocly#1071)

* Sort by name
* Document `hideSingleRequestSampleTab`
* End option description with `.`

* fix: no quotes for default values in header fields. (Redocly#1059)

* fix: changed several components style font-family to monospace (Redocly#1063)

fixes Redocly#909

* fix: active menu item scroll into view

* chore: Release 2.0.0-rc.17 🔖

* fix: improve mime-type dropdown font

* fix: add oneOf buttons vertical space when wrapped to new line

* hore: Release 2.0.0-rc.18 🔖

* fix: wrap json examples in code tag (Redocly#1064)

* feat: display `multipleOf` constrains (Redocly#1065)

* docs: fix link to x-nullable docs from README (Redocly#1135)

* fix: change the title of "Security Scheme Type" to match "HTTP Authorization Scheme" (Redocly#1126)

* docs: fixed example slack api url (Redocly#1077)

* doc: fix some typos (Redocly#1117)

* feat(cli): Fallback on the spec's title before falling back on… (Redocly#1073)

* fix: do not URI-encode parameter values for better readability

fixes Redocly#1138

* chore: upgrade deps

* feat: enable menuToggle by default

* chore: remove react-hot-loader from deps

fixes Redocly#1133

* fix: support discriminator mapping 1-n

fixes Redocly#1111

* fix: remove hardcoded fontFamily for oneOf labels

fixes Redocly#1120

* fix: h2 padding on mobile

fixes Redocly#1118

* fix: python comment stripped in headings

fixes Redocly#1116

* feat: new option hideSchemaTitles

* fix: remove implicit discriminator mapping when explicit is present

* chore: refactor request samples

* feat: new option payloadSampleIdx

* fix: search-box use theme

* fix: fix sortByRequired (stabilise sort) (Redocly#1136)

fixes Redocly#1104
fixes Redocly#1121
fixes Redocly#1061

* chore: Release 2.0.0-rc.19 🔖

* chore: update npm token for travis deploy

* chore(cli): redoc-cli@0.9.3

* fix: fix missing parameters

fixes Redocly#1142

* chore: Release 2.0.0-rc.20 🔖

* chore(cli): redoc-cli@0.9.4

* fix: use mobile menu background color value from theme (Redocly#1144)

* chore(cli): Lint and prettify cli/index.ts (Redocly#1074)

* fix: fix duplicated content in tags when using md headings

fixes Redocly#1150, fixes Redocly#1152

* fix: empty servers behaviour per OAS spec

fixes Redocly#1151

* chore: fix travis export vars

* tests: fix tests for empty servers

* chore: Release 2.0.0-rc.21 🔖

* chore(cli): upgrade handlebars in yarn.lock

* chore(cli): update redoc

* chore(cli): redoc-cli@0.9.5

* feat: add HTTP syntax highlighting (Redocly#1157)

* fix: do not process oneOf if inherited from parent with discriminator

* chore: minor perf optimizations

* chore: Release 2.0.0-rc.22 🔖

* fix: fix broken sticky sidebar in Chrome 80

fixes Redocly#1167

* chore: Release 2.0.0-rc.23 🔖

* chore(cli): redoc-cli@0.9.6

Co-authored-by: Sergey Dubovyk <knidarkness@gmail.com>
Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>
Co-authored-by: Anastasiya Mashoshyna <a.mashoshyna@gmail.com>
Co-authored-by: Michael Huynh <43751307+miqh@users.noreply.github.com>
Co-authored-by: Alex <alexgmin@gmail.com>
Co-authored-by: russellrobinson <russellrobinson@users.noreply.github.com>
Co-authored-by: Andrew Zhukevych <34597767+Hollister009@users.noreply.github.com>
Co-authored-by: Andrii Tykhan <andriytixan@gmail.com>
Co-authored-by: Dimitar Nanov <mitko.n@gmail.com>
Co-authored-by: bwjohnson-ss <41123899+bwjohnson-ss@users.noreply.github.com>
Co-authored-by: torbenw <torbenw@users.noreply.github.com>
Co-authored-by: Chris Faulkner <thefaulkner@gmail.com>
Co-authored-by: Zakary Kamal Ismail <zakary.kamal.fs@outlook.com>
Co-authored-by: Nan Yan <625518543@qq.com>
Co-authored-by: Anna Stasiuk <stasiukanya@gmail.com>
Co-authored-by: Kryštof Korb <krystof@korb.cz>
jmendiara added a commit to jmendiara/ReDoc that referenced this issue Feb 28, 2020
* feat(cli): added support for JSON string value for --options CLI argument (Redocly#1047)

closes Redocly#797

* docs: expandDefaultServerVariables

* fix: do not crash on empty scopes

fixes Redocly#1044

* fix: auth section appears twice

fixes Redocly#818

* fix: left menu item before group is not highligted

fixes Redocly#1033

* fix: clicking on group title breaks first tag

fixes Redocly#1034

* fix: false-positive recursive detection with allOf at the same level

* fix: remove excessive whitespace between md sections on small screens

fixes Redocly#874

* chore: Release 2.0.0-rc.15 🔖

* chore(cli): redoc-cli v0.9.0

* chore(cli): update yarn.lock

* chore(cli): redoc-cli@0.9.1

* fix: fix scrollYOffset when SSR

* chore: Release 2.0.0-rc.16 🔖

* chore(cli): redoc-cli@0.9.2

* docs: fix typo (Redocly#1062)

* feat: added support for file paths as --options cli argument (Redocly#1049)

* fix: types over-pluralization (Redocly#1057)

fixes Redocly#1053

* docs: improve options documentation (Redocly#1071)

* Sort by name
* Document `hideSingleRequestSampleTab`
* End option description with `.`

* fix: no quotes for default values in header fields. (Redocly#1059)

* fix: changed several components style font-family to monospace (Redocly#1063)

fixes Redocly#909

* fix: active menu item scroll into view

* chore: Release 2.0.0-rc.17 🔖

* fix: improve mime-type dropdown font

* fix: add oneOf buttons vertical space when wrapped to new line

* hore: Release 2.0.0-rc.18 🔖

* fix: wrap json examples in code tag (Redocly#1064)

* feat: display `multipleOf` constrains (Redocly#1065)

* docs: fix link to x-nullable docs from README (Redocly#1135)

* fix: change the title of "Security Scheme Type" to match "HTTP Authorization Scheme" (Redocly#1126)

* docs: fixed example slack api url (Redocly#1077)

* doc: fix some typos (Redocly#1117)

* feat(cli): Fallback on the spec's title before falling back on… (Redocly#1073)

* fix: do not URI-encode parameter values for better readability

fixes Redocly#1138

* chore: upgrade deps

* feat: enable menuToggle by default

* chore: remove react-hot-loader from deps

fixes Redocly#1133

* fix: support discriminator mapping 1-n

fixes Redocly#1111

* fix: remove hardcoded fontFamily for oneOf labels

fixes Redocly#1120

* fix: h2 padding on mobile

fixes Redocly#1118

* fix: python comment stripped in headings

fixes Redocly#1116

* feat: new option hideSchemaTitles

* fix: remove implicit discriminator mapping when explicit is present

* chore: refactor request samples

* feat: new option payloadSampleIdx

* fix: search-box use theme

* fix: fix sortByRequired (stabilise sort) (Redocly#1136)

fixes Redocly#1104
fixes Redocly#1121
fixes Redocly#1061

* chore: Release 2.0.0-rc.19 🔖

* chore: update npm token for travis deploy

* chore(cli): redoc-cli@0.9.3

* fix: fix missing parameters

fixes Redocly#1142

* chore: Release 2.0.0-rc.20 🔖

* chore(cli): redoc-cli@0.9.4

* fix: use mobile menu background color value from theme (Redocly#1144)

* chore(cli): Lint and prettify cli/index.ts (Redocly#1074)

* fix: fix duplicated content in tags when using md headings

fixes Redocly#1150, fixes Redocly#1152

* fix: empty servers behaviour per OAS spec

fixes Redocly#1151

* chore: fix travis export vars

* tests: fix tests for empty servers

* chore: Release 2.0.0-rc.21 🔖

* chore(cli): upgrade handlebars in yarn.lock

* chore(cli): update redoc

* chore(cli): redoc-cli@0.9.5

* feat: add HTTP syntax highlighting (Redocly#1157)

* fix: do not process oneOf if inherited from parent with discriminator

* chore: minor perf optimizations

* chore: Release 2.0.0-rc.22 🔖

* fix: fix broken sticky sidebar in Chrome 80

fixes Redocly#1167

* chore: Release 2.0.0-rc.23 🔖

* chore(cli): redoc-cli@0.9.6

Co-authored-by: Sergey Dubovyk <knidarkness@gmail.com>
Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>
Co-authored-by: Anastasiya Mashoshyna <a.mashoshyna@gmail.com>
Co-authored-by: Michael Huynh <43751307+miqh@users.noreply.github.com>
Co-authored-by: Alex <alexgmin@gmail.com>
Co-authored-by: russellrobinson <russellrobinson@users.noreply.github.com>
Co-authored-by: Andrew Zhukevych <34597767+Hollister009@users.noreply.github.com>
Co-authored-by: Andrii Tykhan <andriytixan@gmail.com>
Co-authored-by: Dimitar Nanov <mitko.n@gmail.com>
Co-authored-by: bwjohnson-ss <41123899+bwjohnson-ss@users.noreply.github.com>
Co-authored-by: torbenw <torbenw@users.noreply.github.com>
Co-authored-by: Chris Faulkner <thefaulkner@gmail.com>
Co-authored-by: Zakary Kamal Ismail <zakary.kamal.fs@outlook.com>
Co-authored-by: Nan Yan <625518543@qq.com>
Co-authored-by: Anna Stasiuk <stasiukanya@gmail.com>
Co-authored-by: Kryštof Korb <krystof@korb.cz>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant