Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
16 lines
No EOL
539 B
Text
16 lines
No EOL
539 B
Text
import { OperatorFunction } from "../types";
|
|
import { map } from "../operators/map";
|
|
|
|
const { isArray } = Array;
|
|
|
|
function callOrApply<T, R>(fn: ((...values: T[]) => R), args: T|T[]): R {
|
|
return isArray(args) ? fn(...args) : fn(args);
|
|
}
|
|
|
|
/**
|
|
* Used in several -- mostly deprecated -- situations where we need to
|
|
* apply a list of arguments or a single argument to a result selector.
|
|
*/
|
|
export function mapOneOrManyArgs<T, R>(fn: ((...values: T[]) => R)): OperatorFunction<T|T[], R> {
|
|
return map(args => callOrApply(fn, args))
|
|
} |