0.1.0 • Published 3 years ago

@lxghtless/brokkr v0.1.0

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

parseArgv Example

import {argvUtil} from '@lxghtless/brokkr'

const {parseArgv} = argvUtil

const flags = [
    '--org-name',
    '--repo-name',
    '--gh-user',
    '--use-yarn',
    '--no-lock',
    '--name'
]

const parsed = parseArgv(flags, [
    '--org-name',
    'lxghtless',
    '--use-yarn',
    '--repo-name',
    'bokkr',
    '--name',
    'nolxght'
])

console.log(parsed)

// output =>
// {
//   orgName: 'lxghtless',
//   useYarn: true,
//   repoName: 'bokkr',
//   name: 'nolxght'
// }

validateAndParse Example

import {shapeUtil} from '@lxghtless/brokkr'

const {validateAndParse} = shapeUtil

const dataSchema = {
    orgs: '[]boolean',
    name: 'string',
    names: '[]number',
    bt: '?string',
    timestamp: 'number',
    acts: '?[]string'
}

const data = {
    orgs: 'true,false,true,true,false',
    name: 'test data',
    names: [123, 345, 656],
    timestamp: Date.now(),
    acts: 'one,two,three'
}

const validation = validateAndParse(
    dataSchema,
    data
)

console.log(validation)
// output =>
// {
//   isValid: true,
//   errors: [],
//   result: {
//     orgs: [ true, false, true, true, false ],
//     name: 'test data',
//     names: [ 123, 345, 656 ],
//     bt: null,
//     timestamp: 1614049237763,
//     acts: [ 'one', 'two', 'three' ]
//   }
// }

validateAndParseCommands Example

import {cmdUtil} from '@lxghtless/brokkr'

const {validateAndParseCommands} = cmdUtil

const optionsSchema = {
    orgName: 'string',
    name: '?string',
    useYarn: 'boolean',
    noLock: '?boolean',
    retryWaitTimeMs: 'number',
    maxRetrys: '?number'
}

const cmds = [
    {
        cmds: ['test-cmd', 'create'],
        optionsSchema,
        handler: (cmd, options) => {
            return {
                cmd,
                options
            }
        }
    }
]


const validation = cmdUtil.validateAndParseCommands(cmds)

console.log(validation)
// output =>
// {
//   isValid: true,
//   errors: [],
//   result: [
//     {
//       cmds: [Array],
//       optionsSchema: [Object],
//       handler: [Function: handler]
//     }
//   ]
// }

makeCommandRunner Example

import {cmdUtil} from '@lxghtless/brokkr'

const {makeCommandRunner} = cmdUtil

const optionsSchema = {
    orgName: 'string',
    name: '?string',
    useYarn: 'boolean',
    noLock: '?boolean',
    retryWaitTimeMs: 'number',
    maxAttempts: '?number'
}

const flags = [
    '--org-name',
    '--name',
    '--use-yarn',
    '--no-lock',
    '--retry-wait-time-ms',
    '--max-attempts'
]

const cmds = [
    {
        cmds: ['test-cmd', 'create'],
        optionsSchema,
        handler: options => {
            return {
                message: 'hello',
                options
            }
        },
        flags
    }
]

const run = cmdUtil.makeCommandRunner(cmds)

const result = run([
    'create',
    '--org-name',
    'Test Org',
    '--use-yarn',
    'false',
    '--retry-wait-time-ms',
    '123',
    '--name',
    'cmd test name'
])

console.log(result)
// output =>
// {
//   message: 'hello',
//   options: {
//     orgName: 'Test Org',
//     name: 'cmd test name',
//     useYarn: false,
//     noLock: null,
//     retryWaitTimeMs: 123,
//     maxAttempts: null
//   }
// }

envUtil Example

import {envUtil} from '@lxghtless/brokkr'

// get an environmental variable by key
const myEndpoint = envUtil.get('MY_ENDPOINT')

// set an environmental variable by key
envUtil.set('MY_OTHER_ENDPOINT', myEndpoint)

makeLogger Example

import {logUtil} from '@lxghtless/brokkr'

const {makeLogger} = logUtil

const log = makeLogger({
    logLevel: 'debug'
})

log.trace('some trace log stuff') // not logged
log.debug('cool stuff') // logged
log.info('more stuff') // logged