Skip to content

pex-gl/pex-io

Repository files navigation

pex-io

npm version stability-stable npm minzipped size dependencies types Conventional Commits styled with prettier linted with eslint license

File I/O in PEX.

Installation

npm install pex-io

Usage

import * as io from "pex-io";

try {
  const text = await io.loadText("assets/hello.txt");
  // => DOMString
  const json = await io.loadJson("assets/color.json");
  // => Object
  const image = await io.loadImage("assets/pex.png");
  // => HTMLImageElement
  const blob = await io.loadBlob("assets/data");
  // => Blob
  const arrayBuffer = await io.loadArrayBuffer("assets/data.bin");
  // => ArrayBuffer
} catch (error) {
  console.log(error);
}

API

Modules

pex-io

Typedefs

ImageOptions : object
Resource : object
LoadedResource : string | object | HTMLImageElement | Blob | ArrayBuffer

pex-io

pex-io.loadText(url, options) ⇒ Promise.<string>

Load an item and parse the Response as text.

Kind: static method of pex-io

Param Type
url RequestInfo
options RequestInit

pex-io.loadJson(url, options) ⇒ Promise.<JSON>

Load an item and parse the Response as json.

Kind: static method of pex-io

Param Type
url RequestInfo
options RequestInit

pex-io.loadArrayBuffer(url, options) ⇒ Promise.<ArrayBuffer>

Load an item and parse the Response as arrayBuffer.

Kind: static method of pex-io

Param Type
url RequestInfo
options RequestInit

pex-io.loadBlob(url, options) ⇒ Promise.<Blob>

Load an item and parse the Response as blob.

Kind: static method of pex-io

Param Type
url RequestInfo
options RequestInit

pex-io.loadImage(urlOrOpts, options) ⇒ Promise.<HTMLImageElement>

Load an item, parse the Response as blob and create a HTML Image.

Kind: static method of pex-io

Param Type
urlOrOpts string | ImageOptions
options RequestInit

pex-io.load(resources) ⇒ Promise.<Object.<string, LoadedResource>>

Loads resources from a named map.

Kind: static method of pex-io

Param Type
resources Object.<string, Resource>

Example

const resources = {
  hello: { text: "assets/hello.txt" },
  data: { json: "assets/data.json" },
  img: { image: "assets/tex.jpg" },
  blob: { blob: "assets/blob" },
  hdrImg: { arrayBuffer: "assets/tex.hdr", options: { mode: "no-cors" } },
};

const res = await io.load(resources);
res.hello; // => string
res.data; // => Object
res.img; // => HTMLImageElement
res.blob; // => Blob
res.hdrImg; // => ArrayBuffer

ImageOptions : object

Kind: global typedef Properties

Name Type Description
url string
...rest * HTMLImageElement#properties

Resource : object

Kind: global typedef Properties

Name Type Description
[text] string
[json] string
[image] string
[binary] string
[options] RequestInit Request#parameters

LoadedResource : string | object | HTMLImageElement | Blob | ArrayBuffer

Kind: global typedef

License

MIT. See license file.