Guide - acarsy01/hsfs GitHub Wiki

Hey,

Welcome to the hsfs guide!

HSFS can run in browser, node and CLI.

To use in browser,

you must include necessary scripts.

<script src="http://unpkg.com/hsfs/dist/XXXXAdapter.js"></script>
<script src="http://unpkg.com/hsfs/dist/HSFS.js"></script>

XXXXAdapter must be adapter in A group.

Then you must to write your code in script tag;

<script>
  (async() => { // To use await, because hsfs.finalize() is promise.
    let request = HSFS.request("http://site.domain/"); // Set URL where request
    request = request.setAdapter(XXXXAdapter); // Set adapter
    request = request.setMethod("HTTP_METHOD") // e.g. "POST", default method is "GET" so it isn't necessary.
    request = request.addHeader("HEADER_NAME", "HEADER_VALUE"); // Add a header
    request = request.addHeaders("HEADER_NAME", "HEADER_VALUE", "HEADER_NAME", "HEADER_VALUE"); // Add headers
    request = request.deleteHeader("HEADER_NAME", "HEADER_VALUE"); // Delete a header
    request = request.setData("DATA_TO_SEND_WITH_REQUEST"); // Data to send with request, data methods (e.g. "POST") is necessary.
    request = request.useFormData(FormData); // Use FormData when request, data is necessary.
    request = await request.finalize(); // Make request
    console.log(request); // Request response
    console.log(HSFS.version); // hsfs version
  })(); 
</script>

To use in node,

you must install dependency.

npm install hsfs

Then you must to write your code in file which has js extension;

const hsfs = require("hsfs");
const XXXXAdapter = require("hsfs/requestAdapters/XXXXAdapter");
const formData = require("form-data");

(async() => { // To use await, because hsfs.finalize() is promise.
  let request = hsfs.request("http://site.domain/"); // Set URL where request
  request = request.setAdapter(XXXXAdapter); // Set adapter
  request = request.setMethod("HTTP_METHOD"); // e.g. "POST", default method is "GET" so it isn't necessary.
  request = request.addHeader("HEADER_NAME", "HEADER_VALUE"); // Add a header
  request = request.addHeaders("HEADER_NAME", "HEADER_VALUE", "HEADER_NAME", "HEADER_VALUE"); // Add headers
  request = request.deleteHeader("HEADER_NAME", "HEADER_VALUE"); // Delete a header
  request = request.setData("DATA_TO_SEND_WITH_REQUEST"); // Data to send with request, data methods (e.g. "POST") is necessary.
  request = request.useFormData(formData); // Use FormData when request, data is necessary.
  request = await request.finalize(); // Make request
  console.log(request); // Request response
  console.log(hsfs.version); // hsfs version
})();

XXXXAdapter must be adapter in B group..

To use in CLI,

you must install dependency globally.

npm i -g hsfs

Then you must to write your command in CLI. (e.g. windows cmd, powershell, terminal)

hsfs [options]

options

Option Class prototype Class function
url url constructor(url)
adapter adapter setAdapter(adapter)
method method setMethod(method)
data data setData(data)

Example usage

hsfs --url=http:/example.com --adapter=XXXXAdapter --method=POST --data=DATA_WHICH_SEND

XXXXAdapter must be adapter in B group. Result is request's response.

Adapters

Adapter Group Description
FetchAdapter A Using MDN's fetch API.
XMLHttpRequestAdapter A Using MDN's XMLHttpRequest API.
HTTPAdapter B Using Node's http API.
HTTP2Adapter B Using Node's http2 API.
⚠️ **GitHub.com Fallback** ⚠️