1.0.2 • Published 8 months ago

@cretadoc/utils v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

@cretadoc/utils

It provides helpers for Cretadoc.

Install

npm install --save-dev @cretadoc/utils
yarn add -D @cretadoc/utils
pnpm add -D @cretadoc/utils

Contents

Constants

It provides some constants that can be used across Cretadoc packages:

  • HTTP_STATUS_CODE: a list of HTTP status codes

Helper functions

Arrays

  • removeUndefined: a type-safe method to be used as array filter to remove undefined values.

Objects

  • deepFreeze: a method to recursively freeze an object,
  • getValueByKeyPath: retrieve a value in an object using a key path (ie. foo.bar.baz),
  • isObjKeyExist: check if a property key exist in the given object,
  • excludeKeysFromObj: remove a list of keys from an object,
  • extractKeysFromObj: extract a list of keys from an object.

Paths

  • isValidPath: check if a path exists,
  • isExecutable: check if a path exists and has execute permission,
  • isReadable: check if a path exists and has read permission,
  • isWritable: check if a path exists and has write permission.

Strings

  • camelCaseToHyphenated: transform a camel case string to a hyphenated one,
  • camelToSnakeCase: transform a camel case string to a snake case one,
  • slugify: transform a string into a slug.

Types

A collection of helpers to check if the given value match a certain type:

  • isBoolean,
  • isNull,
  • isNumber,
  • isObject,
  • isString,
  • isUndefined

Types

This package also provides generic types:

  • CommonKeysOf: create a subtype containing only commons keys in two similar types,
  • KeyPathIn : get an union type of key paths in the given object,
  • KeyPathValueIn: retrieve the type of the given key path,
  • Maybe: convert a type to be of the given type or undefined,
  • Nullable: convert a type to be of the given type or null,
  • RemoveNeverKeys: remove non-optional keys of type never from a type,
  • ReplaceTypesIn: replace the type of each key in an object with the given type,
  • RequiredKeysOf: create a new type with only the required keys in the given type,
  • UniqueKeysOf: create a subtype containing only unique keys by comparing two types.

In addition this package exports some types from type-fest to avoid installing this package in addition to @cretadoc/utils. Those types are:

  • Exact
  • LiteralUnion: create a union type with primitive and literal types without sacrificing auto-completion,
  • PartialDeep: create a deeply optional version of another type,
  • ReadonlyDeep: create a deeply immutable version of another type,
  • Simplify: flatten the type output in editors.

License

This package is released under the MIT license.

The documentation (Markdown files) is released under a Creative Commons license.

The types provided by type-fest are redistributed under the MIT license. See type-fest licenses.