graphql
Version:
A Query Language and Runtime which can target any service.
25 lines (22 loc) • 580 B
Flow
/**
* Copyright (c) 2015-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow strict
*/
const MAX_LENGTH = 5;
/**
* Given [ A, B, C ] return 'A, B, or C'.
*/
export default function orList(items: $ReadOnlyArray<string>): string {
const selected = items.slice(0, MAX_LENGTH);
return selected.reduce(
(list, quoted, index) =>
list +
(selected.length > 2 ? ', ' : ' ') +
(index === selected.length - 1 ? 'or ' : '') +
quoted,
);
}