"use strict";
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.choose = exports.count = exports.sum = exports.neq = exports.eq = exports.spaces = exports.pipe = exports.last = void 0;
const last = (array) => array.slice(-1)[0];
exports.last = last;
const pipe = (...fns) => (value) => fns.reduce((value, fn) => fn(value), value);
exports.pipe = pipe;
const spaces = (numberOfSpaces) => Array(numberOfSpaces + 1).join(' ');
exports.spaces = spaces;
const eq = (a) => (b) => a === b;
exports.eq = eq;
const neq = (a) => (b) => a !== b;
exports.neq = neq;
const sum = (a, b) => a + b;
exports.sum = sum;
const count = (array) => array?.length ?? 0;
exports.count = count;
const choose = (getCondition, getThen, getElse) => (...params) => {
    return getCondition(...params) ? getThen(...params) : getElse(...params);
};
exports.choose = choose;
