JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2168
  • Score
    100M100P100Q15991F
  • License MIT

URL utils for humans

Package Exports

  • @nuxt/ufo

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@nuxt/ufo) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

npm version npm downloads Github Actions Codecov bundle

👽 ufo

  • Depending on native URL to parse urls and encoding
  • Zero dependency
  • Treeshakable

Install

Install using npm or yarn:

npm i @nuxt/ufo
# or
yarn add @nuxt/ufo

Import:

// CommonJS
const { normalizeURL, joinURL } = require('@nuxt/ufo')

// ESM
import { normalizeURL, joinURL } from '@nuxt/ufo'

Notice: You may need to transpile package and add URL polyfill for legacy environments

Usage

normalizeURL

  • Ensures URL is properly encoded
  • Ensures pathname starts with slash
  • Preserves protocol/host if provided
// Result: test?query=123%20123#hash,%20test
normalizeURL('test?query=123 123#hash, test')

// Result: http://localhost:3000/
normalizeURL('http://localhost:3000')

joinURL

// Result: a/b/c
joinURL('a', '/b', '/c')

// Result: http://foo.com/foo/bar/baz?test=123#token
joinURL('http://foo.com/foo?test=123#token', 'bar', 'baz')

withparams

// Result: /foo?page=a&token=secret
withParams('/foo?page=a', { token: 'secret' })

getParams

// Result: { test: '123', unicode: '好' }
getParams('http://foo.com/foo?test=123&unicode=%E5%A5%BD')

withTrailingSlash

Ensures url ends with a trailing slash

// Result: /foo/
withTrailingSlash('/foo')

withoutTrailingSlash

Ensures url does not ends with a trailing slash

// Result: /foo
withoutTrailingSlash('/foo/')

cleanDoubleSlashes

Ensures url does not have double slash (except for protocol)

// Result: /foo/bar/
cleanDoubleSlashes('//foo//bar//')
// Result: http://example.com/analyze/http://localhost:3000/
cleanDoubleSlashes('http://example.com/analyze//http://localhost:3000//')

License

MIT. Made with 💖