npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@allbin/output-helpers

v2.2.6

Published

## Usage

Downloads

24

Readme

output-helpers

Usage

import oh from output-helpers

Optionally use oh.config(config_object) to configure default languages and setup translation dictionaries.

Functions

oh.addDictionary

oh.addDictionary(dictionary): undefined

Add additional dictionaries for the translate function to use for lookups.

See Dictionary definition.

oh.dateToMoment

oh.dateToMoment(date, utc): Moment

Converts a javascript date to a Moment.

date <Date, required> - The input javascript date to be converted.

utc <bool, default true> - Instruct moment to use utc parsing.

oh.format

oh.format(value, options): string

value <number, required> - The value to be formatted.

options <object, default {}> - An object with optional parameters:

round <number, optional> - Equivalent to power of oh.roundTo.
ceil <number, optional> - Equivalent to power of oh.roundUpTo.
floor <number, optional> - Equivalent to power of oh.roundDownTo.
integer_padding <number, optional> - Minimum number of characters before the decimal point. Padding with zeros.
decimal_padding <number, optional> - Minimum number of characters after the decimal point. Padding with zeros.
padding <number, optional> - Ensures the total length of the output to be at least padding length.
trunc <bool, default false> - Truncates the value, returning the integer part only using Math.trunc().
grouping <bool, default false> - Groups digits before decimal point in groups of 3.

Ex: oh.format(1354.342, { round: 1, grouping: true }) > "1 350".

oh.formatDateAsString

oh.formatDateAsString(date, output_format, input_format, utc): string

Formats a given date according to output_format. Formats are specified according to Moment standard.

date <Date|string|Moment|number, required> - The date to be formatted.

output_format <string, default YYYY-MM-DD HH:mm> - The output format.

input_format <string, optional> - If input date is a string optionally a input format can be specified for Moments parser.

utc <bool, default false> - Instruct moment to use utc parsing.

oh.formatDateAsTimeString

oh.formatDateAsTimeString(date, input_format, utc): string

Formats given date as HH:mm. Equivalent to oh.formatDateAsString(date, "HH:mm").

date <Date|string|Moment|number, required> - Date to be formatted.

input_format <string, optional> - If input date is a string optionally a input format can be specified for Moments parser.

utc <bool, default true> - Instruct moment to use utc parsing.

oh.formatSecondsToMS

oh.formatSecondsToMS(value, always_include, padding, colon): string

Converts a value (seconds) to a [m]m[s]s format: 1m2s.

value <integer, required> - Number of seconds to be formatted.

always_include <"none"|"minutes"|"seconds"|"both", default "none"> - Optional specifyer for which parts to always include.
none - If not enough for a minute only returns seconds, if an exact minute the seconds will not be included.
minutes - If value not above 60 "0m" will be prepended to the seconds.
seconds - If value is exact minute "0s" will be appended after the minute.
both - Will always prepend and append "0m" and "0s" respectively as needed.

padding <bool, default false> - Toggles if values should be padded so 4 becomes 04. Both minutes and seconds will be padded. Defaults to false.

colon <bool, default false> - Changes the output format to be "mm:ss" instead of "[m]m[s]s". Will always include both minutes and seconds, always padding. Defaults to false.

oh.getCurrentConfig

oh.getCurrentConfig(): OutputHelpers config object

oh.getDateLocale

oh.getDateLocale(language): Moment locale object

Returns a Moment locale object for the given language. This is used with Moments moment.defineLocale function to add locale support for calendars etc.
NOTE: OH will automatically add all available locales to moment! You only need to use this if you are running a separate moment instance or to change the definition and re-define the locale with moment manually.

language <"sv-SE"|"en-US", defaults to configured language> - The language for which to return the locale specifications.

oh.getFallbackLang

oh.getFallbackLang(): "sv-SE" | "en-US"

Returns the currently configured fallback language used by oh.translate when primary language is not found.

oh.getLang

oh.getLang(): "sv-SE" | "en-US"

Returns the currently configured language used by oh.translate.

oh.roundDownTo

oh.roundDownTo(value, power): number

Returns value rounded down to the power.

value <number, required> - The value to be rounded.

power <number, default 0> - The power to round to.

Ex: roundDownTo(1345.341, 1) > 1340

oh.roundTo

oh.roundTo(value, ???): number

Returns value rounded to the power.

value <number, required> - The value to be rounded.

power <number, default 0> - The power to round to.

Ex: roundTo(1345.341, 1) > 1350

oh.roundUpTo

oh.roundUpTo(value, ???): number

Returns value rounded to the power.

value <number, required> - The value to be rounded.

power <number, default 0> - The power to round to.

Ex: roundUpTo(1345.341, 2) > 1400

oh.setConfig

oh.setConfig(config_options): undefined

Sets the config options. Should be an object with any of the following settings.

date_locale <"sv-SE"|"en-US", default same as *lang*> - Specifies the locale used by Moment.
fallback_language <"sv-SE"|"en-US", default "en-US"> - Fallback used by translate function if lang is not available.
lang <"sv-SE"|"en-US", default "en-US"> - Default language used by translate function.
extend_with <object, default null> - An object to extend the OH object with. Use this to attach additional dynamic functionality to OH.

oh.translate

oh.translate(key, capitalize, language, empty_on_error, dictionary): string

Looks up key in dictionary for language and returns specified value.
Will use the configured language and dictionaries unless specified.

key <string, required> - The key to look for in dictionary.

capitalize <bool, default true - Capitalizes the returned value.

language <"sv-SE"|"en-US", default to configured language> - Language to check for in dictionary.

empty_on_error <true|false, default false> - When true an empty string will be returned when the requested key or language is not found. When false the key is returned.
NOTE: Does not affect error logging.

dictionary <object, default to configured and added dictionaries> - See the oh.addDictionary() docs.

oh.translateTyped

oh.translateTyped<T>(key, capitalize, language, empty_on_error, dictionary): string

Equivalent to oh.translate but takes in a Type T with which to match the key, eg: key keyof T. If the key is not present in T it will not allow compilation.

Dictionary definition

A dictionary an object with a key for each language supported by the dictionary. Each language should be an object with signature key: string, value: string.

Optionally a prefix key can also be supplied, in which case it will be used to prefix every key in the dictionary to avoid collissions with other dictionaries keys.
NOTE: You will have to prefix all keys in your invokations of oh.translate with the same value. This can be done by wrapping the oh.translate function in a separate function which automatically adds the prefix.

Example dictionary

{
    sv-SE: {
        email: "epost",
        name: "namn",
        ...
    },
    en-US: {
        email: "email",
        name: "name",
        ...
    },
    prefix: "my-prefix"
}

Example wrapper

function translate(str) {
    return oh.translate(prefix + str);
}