Skip to content

hypernym-studio/utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f6a91c7 Â· Feb 25, 2025
Nov 2, 2024
Nov 2, 2024
Sep 8, 2024
Sep 20, 2024
Feb 16, 2025
Sep 19, 2023
Jan 7, 2024
May 23, 2023
Jul 1, 2023
May 23, 2023
Feb 16, 2025
Feb 6, 2025
Feb 25, 2025
Sep 8, 2024
Feb 25, 2025
Feb 25, 2025
Sep 8, 2024
Sep 20, 2024

Repository files navigation

Utils

A collection of reusable utilities.

Repository ✦ Package ✦ Releases ✦ Discussions


pnpm add @hypernym/utils

Features

  • TypeScript friendly
  • Fully tree-shakeable
  • No dependencies

Installation

Install @hypernym/utils package:

# via pnpm
pnpm add @hypernym/utils
# via npm
npm install @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.

ESM (minified)

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

IIFE (minified)

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

UMD (minified)

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

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'

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.