2.0.1 • Published 5 years ago

@marcopeg/utils v2.0.1

Weekly downloads
69
License
ISC
Repository
github
Last release
5 years ago

utils

This is an opinionated set of personal javascript utilities that I use to share from project to project and I'm tired to copy over.

Why?

Point n.1: Many great libraries have huge footprint. Here I aim for the barebone and allow to cherry pick each module seapratedly.

Point n.2: Sometimes it's just faster to DIY. I plan to keep this library as a personal API and implement the functions with better open source libraries if/when I find them.

Point n.3: If Facebook does it (fbjs), why shouldn't I? :-)

Point n.4: No backward compatibility. I target NodeJS from version 9.x and modern web browsers. There is no transpilation that will bloat the code.

Modules

cancelEvent

const cancelEvent = require('@marcopeg/utils/lib/cancel-event)

// use it as simple function with an event as argument
const onClick = (evt) => {
    cancelEvent(evt)
    ...
    my handler code
}

// @TODO: use it as middleware
const onClick = cancelEvent((evt) => {
    ... my handler
})

config

const config = require('@marcopeg/utils/lib/config)

// will trigger an error if the env variable is not defined
const serverPort = config.get('SERVER_PORT')

// will return a default vailue if the env variable is not defined
const appName = config.get('APP_NAME', 'Default App Name')

// (process.env.NODE_ENV === 'development')
if (config.isDev()) {
    ...
}

INIT: working with ParcelJS I came across a glitch. ParcelJS does not populate the "process.env" like in Webpack (or NodeJS) and yoo must access the variable by writing the full "process.env.VAR_NAME" in the code which I believe is then substituted with the value itself.

To make config compatible you need to initialize it with all the "hard coded" values:

const config = require('@marcopeg/utils/lib/config)
config.init({
    NODE_ENV: process.env.NODE_ENV,
    NOT_DEFINED: process.env.NOT_DEFINED, // will be "undefined"
})

console.log(config.get('NOT_DEFINED', 'default'))
//-> "default"

getErrorOrigin

Improve errors stack trace

pause

const pause = require('@marcopeg/utils/lib/pause)

async function foo () {
    console.log('before')
    await pause(2000) // stop process for 2s
    console.log('after')
}

request

Wraps isomorphic fetch with some basic utility functions. (this can be optimized a lot)

truncate

const truncate = require('@marcopeg/utils/lib/truncate)

truncate('123456789', 5, '...')
-> 1...9

Logger

const logger = require('@marcopeg/utils/lib/logger')
logger.init()
logger.logInfo('foo)

INIT: this module needs to be initialize so to read (and cache) the enviroment LOG_LEVEL, or to explicitly receive a log level via first param

2.0.1

5 years ago

2.0.0

5 years ago

1.18.0

5 years ago

1.16.2

5 years ago

1.16.1

5 years ago

1.16.0

5 years ago

1.15.2

5 years ago

1.15.1

5 years ago

1.15.0

5 years ago

1.14.6

5 years ago

1.14.5

5 years ago

1.14.4

5 years ago

1.14.3

5 years ago

1.14.2

5 years ago

1.14.1

5 years ago

1.14.0

5 years ago

1.12.0

6 years ago

1.11.6

6 years ago

1.11.5

6 years ago

1.11.4

6 years ago

1.11.3

6 years ago

1.11.2

6 years ago

1.11.1

6 years ago

1.11.0

6 years ago

1.10.2

6 years ago

1.10.1

6 years ago

1.10.0

6 years ago

1.9.1

6 years ago

1.9.0

6 years ago

1.8.9

6 years ago

1.8.8

6 years ago

1.8.7

6 years ago

1.8.6

6 years ago

1.8.5

6 years ago

1.8.4

6 years ago

1.8.3

6 years ago

1.8.2

6 years ago

1.8.1

6 years ago

1.8.0

6 years ago

1.7.1

6 years ago

1.7.0

6 years ago

1.6.1

6 years ago

1.6.0

6 years ago

1.5.3

6 years ago

1.5.2

6 years ago

1.5.1

6 years ago

1.5.0

6 years ago

1.4.2

6 years ago

1.4.1

6 years ago

1.4.0

6 years ago

1.3.1

6 years ago

1.3.0

6 years ago

1.2.0

6 years ago

1.1.0

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago