Socket
Book a DemoInstallSign in
Socket

@hyperjump/uri-template

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hyperjump/uri-template

An RFC-6570 URI Template implementation

0.3.0
latest
Source
npmnpm
Version published
Maintainers
1
Created
Source

URI Template

This is an implementation of RFC 6570 - URI Template.

  • Supports Level 4
  • Separate parse and expand steps
    • More efficient expansion
    • Introspect a template
    • Validate that a template is correct without expanding
  • Partially expand template with incomplete data
  • Detailed error messaging

Installation

npm install @hyperjump/uri-template

Usage

const UriTemplate = require("@hyperjump/uri-template");


// Parse and expand in one step
UriTemplate.expand("/foo{?foo,bar}", { foo: "aaa", bar: "bbb" }); // => /foo?foo=aaa&bar=bbb

// Parse a URI Template
const template = UriTemplate.parse("/foo{?foo,bar}");

// Expand a URI Template from the pre-parsed template
UriTemplate.expand(template, { foo: "aaa", bar: "bbb" }); // => /foo?foo=aaa&bar=bbb
UriTemplate.expand(template, { foo: "ccc", bar: "ddd" }); // => /foo?foo=ccc&bar=ddd

// Convert a parsed template back into a string
UriTemplate.stringify(template); // => /foo{?foo,bar}

// Partially expand template with incomplete data
const template = UriTemplate.expandPartial("/foo/{foo}{?bar}", { foo: "aaa" });
UriTemplate.stringify(template); // => /foo/aaa{?bar}
UriTemplate.expand(template, { bar: "bbb" }); // => /foo/aaa?bar=bbb

API

  • parse: (string) => Template

    Parse a URI Template

  • expand: (Template | string, Object) => string

    Expand a URI template. The first argument can either be a URI Template AST (the result of parse) or a URI Template string.

  • expandPartial: (Template | string, Object) => Template

    Partially expand a URI template. This function will expand the expressions using the data passed, but it will skip any expressions it doesn't have defined data for. The first argument can either be a URI Template AST (the result of parse) or a URI Template string. The result is a URI Template AST.

  • stringify: (Template) => string

    Convert a URI Template AST back into a URI Template string

  • Template: array

    An AST representing URI Template

Contributing

Tests

Run the tests

npm test

Run the tests with a continuous test runner

npm test -- --watch

Keywords

URI Template

FAQs

Package last updated on 05 Sep 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.