UNPKG

url-resolver-fs

Version:

resolves urls and provides fs like access

534 lines (338 loc) 19.7 kB
[![npm](https://img.shields.io/npm/v/url-resolver-fs.svg)](https://www.npmjs.com/package/url-resolver-fs) [![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) [![minified size](https://badgen.net/bundlephobia/min/url-resolver-fs)](https://bundlephobia.com/result?p=url-resolver-fs) [![downloads](http://img.shields.io/npm/dm/url-resolver-fs.svg?style=flat-square)](https://npmjs.org/package/url-resolver-fs) [![GitHub Issues](https://img.shields.io/github/issues/arlac77/url-resolver-fs.svg?style=flat-square)](https://github.com/arlac77/url-resolver-fs/issues) [![Build Status](https://secure.travis-ci.org/arlac77/url-resolver-fs.png)](http://travis-ci.org/arlac77/url-resolver-fs) [![codecov.io](http://codecov.io/github/arlac77/url-resolver-fs/coverage.svg?branch=master)](http://codecov.io/github/arlac77/url-resolver-fs?branch=master) [![Coverage Status](https://coveralls.io/repos/arlac77/url-resolver-fs/badge.svg)](https://coveralls.io/r/arlac77/url-resolver-fs) [![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier) [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/) [![Known Vulnerabilities](https://snyk.io/test/github/arlac77/url-resolver-fs/badge.svg)](https://snyk.io/test/github/arlac77/url-resolver-fs) [![Greenkeeper](https://badges.greenkeeper.io/arlac77/url-resolver-fs.svg)](https://greenkeeper.io/) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/arlac77/url-resolver-fs) ## url-resolver-fs resolves urls and provides fs like access # API <!-- Generated by documentation.js. Update this documentation by updating the source code. --> ### Table of Contents - [Resolver](#resolver) - [Parameters](#parameters) - [Properties](#properties) - [registerScheme](#registerscheme) - [Parameters](#parameters-1) - [schemeForURL](#schemeforurl) - [Parameters](#parameters-2) - [resolve](#resolve) - [Parameters](#parameters-3) - [createContext](#createcontext) - [Parameters](#parameters-4) - [provideCredentials](#providecredentials) - [Parameters](#parameters-5) - [Context](#context) - [Parameters](#parameters-6) - [Properties](#properties-1) - [base](#base) - [resolve](#resolve-1) - [Parameters](#parameters-7) - [provideCredentials](#providecredentials-1) - [Parameters](#parameters-8) - [HTTPScheme](#httpscheme) - [Parameters](#parameters-9) - [Properties](#properties-2) - [fetch](#fetch) - [Parameters](#parameters-10) - [get](#get) - [Parameters](#parameters-11) - [put](#put) - [Parameters](#parameters-12) - [stat](#stat) - [Parameters](#parameters-13) - [addAuthorizationHeader](#addauthorizationheader) - [Parameters](#parameters-14) - [name](#name) - [defaultPort](#defaultport) - [optionsFromEnvironment](#optionsfromenvironment) - [Parameters](#parameters-15) - [HTTPSScheme](#httpsscheme) - [name](#name-1) - [defaultPort](#defaultport-1) - [isSecure](#issecure) - [URLScheme](#urlscheme) - [Parameters](#parameters-16) - [Properties](#properties-3) - [name](#name-2) - [defaultPort](#defaultport-2) - [isSecure](#issecure-1) - [list](#list) - [Parameters](#parameters-17) - [get](#get-1) - [Parameters](#parameters-18) - [stat](#stat-1) - [Parameters](#parameters-19) - [put](#put-1) - [Parameters](#parameters-20) - [delete](#delete) - [Parameters](#parameters-21) - [history](#history) - [Parameters](#parameters-22) - [provideCredentials](#providecredentials-2) - [Parameters](#parameters-23) - [methods](#methods) - [isSecure](#issecure-2) - [defaultPort](#defaultport-3) - [defaultOptions](#defaultoptions) - [optionsFromEnvironment](#optionsfromenvironment-1) - [Parameters](#parameters-24) - [options](#options) - [Parameters](#parameters-25) - [URLMapperScheme](#urlmapperscheme) - [Parameters](#parameters-26) - [Properties](#properties-4) - [remap](#remap) - [Parameters](#parameters-27) - [parseAuthenticate](#parseauthenticate) - [Parameters](#parameters-28) - [ResponseError](#responseerror) ## Resolver **Extends URLScheme** Holds a map of url-schemes and dispatches requests ### Parameters - `config` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** (optional, default `{}`) - `predefinedConstructors` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[URLScheme](#urlscheme)>** schemes to start with (optional, default `[]`) - `env` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** environment variables as present in process.env (optional, default `{}`) ### Properties - `schemes` **[Map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Map)&lt;[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [URLScheme](#urlscheme)>** - `authProviders` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>** ### registerScheme Register a scheme for later lookup #### Parameters - `scheme` **[URLScheme](#urlscheme)** ### schemeForURL Get URLScheme for a given url #### Parameters - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** Returns **[URLScheme](#urlscheme)** for a given url or undefined if nothing found ### resolve Resolve for a given url. Passes url to the registered scheme for remapping #### Parameters - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** to be resolved Returns **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** resolved url or original URL if no remapping found ### createContext Create a new context #### Parameters - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** context Returns **[Context](#context)** newly created context ### provideCredentials Called when authorization is required. Forwards the request to the registered auth providers #### Parameters - `realm` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** requested realm Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** credentials as given by one of the registered auth providers ## Context Holds context information ### Parameters - `resolver` **[Resolver](#resolver)** - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** (optional, default `{}`) ### Properties - `resolver` **[Resolver](#resolver)** - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** - `base` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** the current base URL ### base Type: [URL](https://developer.mozilla.org/docs/Web/API/URL/URL) ### resolve #### Parameters - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** Returns **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** ### provideCredentials Called when authorization is required for a given realm asks options.provideCredentials() and resolver.provideCredentials() #### Parameters - `realm` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** requested (decoded) realm Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>** credentials for the given realm ## HTTPScheme **Extends URLScheme** URLScheme for http requests ### Parameters - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** - `options.proxy` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** ### Properties - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** ### fetch #### Parameters - `context` **[Context](#context)** execution context - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** (optional, default `{}`) Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)** fetch result ### get Execute a GET request #### Parameters - `context` **[Context](#context)** execution context - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** source - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)** body of the response ### put Execute a PUT request #### Parameters - `context` **[Context](#context)** execution context - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** destination - `stream` **[Stream](https://nodejs.org/api/stream.html)** content to be put to the url - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** ### stat Execute a HEAD request #### Parameters - `context` **[Context](#context)** execution context - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** - `options.method` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** response object ### addAuthorizationHeader inserts the authorization data into the reguest header #### Parameters - `headers` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** http credentials will be inserted into - `credentials` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if auth info has been written into headers ### name Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 'http' ### defaultPort Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** 80 the http default port ### optionsFromEnvironment Extract options suitable for the constructor form the given set of environment variables #### Parameters - `env` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** undefined if no suitable environment variables have been found ## HTTPSScheme **Extends HTTPScheme** URLScheme for https requests ### name Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 'https' ### defaultPort Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** 443 the https default port ### isSecure Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true ## URLScheme ### Parameters - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** raw config ### Properties - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** raw config ### name Should be overwritten to reflect the scheme name Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** scheme name (defaults to the class name) ### defaultPort Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** default from static defaultPort ### isSecure Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** default from static isSecure ### list List collection (directory) #### Parameters - `context` **[Context](#context)** execution context - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)** resolves to iterable entries ### get Get content of a url #### Parameters - `context` **[Context](#context)** execution context - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)** resolves to the content ### stat Delivers meta information for a given url #### Parameters - `context` **[Context](#context)** execution context - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)** resolves to one entry ### put Put the content of a stream to a given url #### Parameters - `context` **[Context](#context)** execution context - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** - `stream` **[Stream](https://nodejs.org/api/stream.html)** - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)** resolves if stream has ben put to the url ### delete Deletes object at a given url #### Parameters - `context` **[Context](#context)** execution context - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)** resolves to the history of the object at the given url ### history Deliver history information for a given url #### Parameters - `context` **[Context](#context)** execution context - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)** resolves to the history of the object at the given url ### provideCredentials Called when authorization is required for a given realm Tries provideCredentials() on the options object first and then calls provideCredentials() on the context. #### Parameters - `context` **[Context](#context)** execution context - `realm` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** requested (decoded) realm Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>** holding the credentials ### methods supported methods Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** 'get', 'stat', 'put', 'delete', 'list', 'history' ### isSecure Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** false ### defaultPort Returns **mumber** undefined by default ### defaultOptions Default configuration options Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** ### optionsFromEnvironment Extract options suitable for the constructor form the given set of environment variables #### Parameters - `env` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** undefined if no suitable environment variables have been found ### options Pepare configuration by mixing together defaultOptions with actual options #### Parameters - `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** raw config Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** combined options ## URLMapperScheme **Extends URLScheme** Remap url special:some/path -> <https://myserver.com/repo/some/path> name: special baseScheme: https prefix: <https://myserver.com/repo/> ### Parameters - `baseScheme` **[URLScheme](#urlscheme)** - `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** of the newly created scheme - `prefix` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** urls will be prefixed by this value - `options` ### Properties - `baseScheme` **[URLScheme](#urlscheme)** - `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** of the newly created scheme - `prefix` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** urls will be prefixed by this value ### remap Remapps url by separating scheme (and direct following '/') from suffix and appending the suffix (in front) #### Parameters - `url` **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** to be remapped Returns **[URL](https://developer.mozilla.org/docs/Web/API/URL/URL)** remapped url ## parseAuthenticate - **See: rfc7235** Parse WWW-Authenticate header and provide parts as object. provides a two level structure 1st. the algorithm and then the algorithm attributes ### Parameters - `source` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** http header 'WWW-Authenticate' - `result` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** where to put result into (optional, default `{}`) Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** same as result ## ResponseError **Extends Error** general fetch response error # install With [npm](http://npmjs.org) do: ```shell npm install url-resolver-fs ``` # license BSD-2-Clause