25 lines
580 B
Plaintext
25 lines
580 B
Plaintext
/**
|
|
* 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,
|
|
);
|
|
}
|