import { Arr } from '@ephox/katamari';
import type { DieFn, NextFn } from '../pipe/Pipe';
import { Chain } from './Chain';
import type { TestLogs } from './TestLogs';
export const compose = (sab: Chain, sbc: Chain): Chain =>
// don't Pipe them - assume that the base actions have already been piped
({
runChain: (a: A, next: NextFn, die: DieFn, logs: TestLogs): void =>
sab.runChain(a, (b: B, blogs) => sbc.runChain(b, next, die, blogs), die, logs)
});
/*
Code partly generated in GHCi:
:m + Data.List
:m + Control.Monad
putStrLn $ intercalate " |\n" $ (\n -> (\x -> "[" ++ x ++ ", Chain]") $ intercalate ", " $ (\m -> "Chain") <$> [1..n-1]) <$> [1..100]
*/
/* eslint-disable max-len */
export const sequence =
(Chains:
[] |
[Chain] |
[Chain, Chain] |
[Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain] |
[Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain, Chain