Skip to content

hypernym-studio/utils

Repository files navigation

Hypernym Utils

A collection of reusable utilities.

Repository ✦ Package ✦ Releases ✦ Discussions


pnpm add @hypernym/utils

Features

  • TypeScript friendly
  • Fully tree-shakeable
  • No dependencies

Usage

After installation, import Hyperutils into your project:

// ESM & TS
import { isNull, isString, ... } from '@hypernym/utils'

// ESM & TS
import { exists, copy, ... } from '@hypernym/utils/fs'

// Types
import type { IsAny, RequiredDeep, ... } from '@hypernym/utils'

CDN

Here are some examples of how to integrate Hyperutils from a CDN via a script tag.

Also, it is possible to download files manually and serve them accordingly.

minified esm

<script type="module">
  import { isNull, isString, ... } from 'https://unpkg.com/@hypernym/utils/dist/index.min.mjs'
</script>

minified iief

<script src="https://unpkg.com/@hypernym/utils/dist/index.iief.mjs"></script>
<script>
  const { isNull, isString, ... } = Hyperutils
</script>

minified umd

<script src="https://unpkg.com/@hypernym/utils/dist/index.umd.mjs"></script>
<script>
  const { isNull, isString, ... } = Hyperutils
</script>

is

isBrowser

Checks if the code is running in the browser.

import { isBrowser } from '@hypernym/utils'

isBrowser // true

isNull

Returns a boolean if the given value is a null.

import { isNull } from '@hypernym/utils'

isNull(null) // => true

isUndefined

Returns a boolean if the given value is a undefined.

import { isUndefined } from '@hypernym/utils'

isUndefined(undefined) // => true

isString

Returns a boolean if the given value is a string.

import { isString } from '@hypernym/utils'

isString('@hypernym/utils') // => true

fs

exists

Checks if the file or directory exists.

import { exists } from '@hypernym/utils/fs'

await exists('dir/file.ts') // => true

read

Reads the entire contents of a file.

import { read } from '@hypernym/utils/fs'

await read('dir/subdir/file.ts')

readdir

Reads the contents of a directory recursively.

import { readdir } from '@hypernym/utils/fs'

await readdir('dir/subdir')

write

Writes data to a file recursively.

import { write } from '@hypernym/utils/fs'

await write('dir/subdir/file.ts', `console.log('Hello World!')`)

copy

Copies files or directories recursively.

Accepts a single source or a range of sources.

import { copy } from '@hypernym/utils/fs'

await copy('src/subdir/file.ts', './dist/subdir')

mkdir

Creates a directory recursively.

Accepts a single path or a range of paths.

import { mkdir } from '@hypernym/utils/fs'

await mkdir('src/subdir')

remove

Removes files and directories recursively.

Accepts a single path or a range of paths.

import { remove } from '@hypernym/utils/fs'

await remove('src/subdir/file.ts')

Types

PartialDeep

Constructs a type by recursively setting all properties as optional.

Use Partial<T> for one level.

type PartialObject = PartialDeep<Object>

// Disables recursive mode for arrays and tuples.
type PartialObject = PartialDeep<Object, { arrays: false }>

RequiredDeep

Constructs a type by recursively setting all properties as required.

Use Required<T> for one level.

type RequiredObject = RequiredDeep<Object>

// Disables recursive mode for arrays and tuples.
type RequiredObject = RequiredDeep<Object, { arrays: false }>

Community

Feel free to ask questions or share new ideas.

Use the official discussions to get involved.

License

Developed in 🇭🇷 Croatia, © Hypernym Studio.

Released under the MIT license.