@nuxt/ufo

URL utils for humans

please migrate to ufo npm package
Last updated 4 years ago by pi0 .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ gnpm install @nuxt/ufo 
SYNC missed versions from official npm registry.

npm version npm downloads Github Actions Codecov bundle

???? ufo

Install

Install using npm or yarn:

npm i ufo
# or
yarn add ufo

Import:

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

// ESM
import { normalizeURL, joinURL } from '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')

resolveURL

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

withQuery

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

getQuery

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

$URL

Implementing URL interface with some improvements:

  • Supporting schemeless and hostless URLs
  • Supporting relative URLs
  • Preserving trailing-slash status
  • Decoded and mutable classs properties (protocol, host, auth, pathname, query, hash)
  • Consistent URL parser independent of environment
  • Consistent encoding independent of environment
  • Punycode support for host encoding

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

Special thanks to Eduardo San Martin Morote (posva) for encoding utlities

Current Tags

  • 0.5.4                                ...           latest (4 years ago)

19 Versions

  • 0.5.4 [deprecated]           ...           4 years ago
  • 0.5.3 [deprecated]           ...           4 years ago
  • 0.5.2 [deprecated]           ...           4 years ago
  • 0.5.1 [deprecated]           ...           4 years ago
  • 0.5.0 [deprecated]           ...           4 years ago
  • 0.4.0 [deprecated]           ...           4 years ago
  • 0.3.1 [deprecated]           ...           4 years ago
  • 0.3.0 [deprecated]           ...           4 years ago
  • 0.2.0 [deprecated]           ...           4 years ago
  • 0.1.6 [deprecated]           ...           4 years ago
  • 0.1.5 [deprecated]           ...           4 years ago
  • 0.1.4 [deprecated]           ...           4 years ago
  • 0.1.3 [deprecated]           ...           4 years ago
  • 0.1.2 [deprecated]           ...           4 years ago
  • 0.1.1 [deprecated]           ...           4 years ago
  • 0.1.0 [deprecated]           ...           4 years ago
  • 0.0.4 [deprecated]           ...           4 years ago
  • 0.0.3 [deprecated]           ...           4 years ago
  • 0.0.2 [deprecated]           ...           4 years ago
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (0)
None
Dev Dependencies (10)
Dependents (1)

Copyright 2013 - present © cnpmjs.org | Home |