Sha256: d6a98039ae50c1a72d7927f95966b11d76fa82aabaa0c713a811c5df34d87dee

Contents?: true

Size: 796 Bytes

Versions: 57

Compression:

Stored size: 796 Bytes

Contents

const lastArgIsOptions = (args: string[]) => {
    const last = args[args.length - 1]
    return typeof last === 'object'
}

const conclusion = (firstArg: string, qualifier = '') => `And all for the want of a ${qualifier}${firstArg}.`

const proverb = (...args: any[]) => { // tslint:disable-line
    let options: any = {} // tslint:disable-line
    if (lastArgIsOptions(args)) {
        options = String(args.pop())
    }

    const allExceptLastArg = args.slice(0, -1)
    const chainOfEvents = allExceptLastArg.map((arg, index) => `For want of a ${arg} the ${args[index + 1]} was lost.`)

    const qualifier = options.qualifier ? `${options.qualifier} ` : options.qualifier
    chainOfEvents.push(conclusion(args[0], qualifier))

    return chainOfEvents.join('\n')
}

export default proverb

Version data entries

57 entries across 57 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.179 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.178 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.177 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.176 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.175 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.174 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.173 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.172 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.171 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.170 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.169 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.167 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.166 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.165 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.164 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.163 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.162 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.161 tracks/typescript/exercises/proverb/proverb.example.ts
trackler-2.2.1.160 tracks/typescript/exercises/proverb/proverb.example.ts