UNPKG

format-graphql

Version:

Formats GraphQL schema definition language (SDL) document.

53 lines (42 loc) 1.12 kB
// @flow type SortOptionsType = {| sortDefinitions: boolean, sortEnums: boolean, sortFields: boolean, sortArguments: boolean, |}; type OptionsType = SortOptionsType; // eslint-disable-next-line flowtype/no-weak-types const isBoolean = (value: any): %checks => { return typeof value === 'boolean'; }; const toBoolean = <T>(value: T, defaultValue?: boolean): boolean => { if (isBoolean(value)) { return value; } return isBoolean(defaultValue) ? defaultValue : Boolean(value); }; const getSortOptions = (options?: $Shape<SortOptionsType>): SortOptionsType => { const { sortArguments, sortDefinitions, sortEnums, sortFields, } = options || {}; return { sortArguments: toBoolean(sortArguments, true), sortDefinitions: toBoolean(sortDefinitions, true), sortEnums: toBoolean(sortEnums, true), sortFields: toBoolean(sortFields, true), }; }; const getOptions = (options?: $Shape<OptionsType>): OptionsType => { const sortOptions = getSortOptions(options); return sortOptions; }; export { isBoolean, toBoolean, getOptions, }; export type {OptionsType};