An open API service indexing awesome lists of open source software.

https://github.com/bahrus/be-fetching

Enhances the input element with type=url with fetching support.
https://github.com/bahrus/be-fetching

Last synced: 3 months ago
JSON representation

Enhances the input element with type=url with fetching support.

Awesome Lists containing this project

README

        

# be-fetching [WIP]

[![Playwright Tests](https://github.com/bahrus/be-fetching/actions/workflows/CI.yml/badge.svg?branch=baseline)](https://github.com/bahrus/be-fetching/actions/workflows/CI.yml)

[![How big is this package in your project?](https://img.shields.io/bundlephobia/minzip/be-fetching?style=for-the-badge)](https://bundlephobia.com/result?p=be-fetching)

*be-fetch* provides fetch support to the adorned element in a number of different ways:

## Example 1 - Enhancing the input element with type url

```html

```

When a valid url is entered, *be-fetching* fetches it. Result goes to oInput.beEnhanced.beFetching.value. oInput fires non bubbling event "enh-by-be-fetching.value-changed" when value changes. While fetch is in progress, adds css class "be-fetching-fetch-in-progress" to the adorned element.

## Example 2 - Same as example 1, but specifying the url before and after the input element.

Suppose we want the input element *be-fetching* adorns to use the input element to only provide a part of the url it should fetch?

*be-fetching* supports that as well:

```html

```

Example 3 -- specify a target [TODO]

```html

...

```

When a target is specified (as above), it will automatically set the target's aria-busy to true until the fetch is complete, and also set aria-live=polite if no other value is specified.

## Running locally

Any web server than can serve static files will do, but...

1. Install git.
2. Do a git clone or a git fork of repository https://github.com/bahrus/be-fetching
3. Install node.js
4. Open command window to folder where you cloned this repo.
5. > npm install
6. > npm run serve
7. Open http://localhost:3030/demo/ in a modern browser.

## Using from ESM Module:

```JavaScript
import 'be-fetching/be-fetching.js';
```

## Using from CDN:

```html

import 'https://esm.run/be-fetching';

```