Socket
Socket
Sign inDemoInstall

posthtml-fetch

Package Overview
Dependencies
Maintainers
0
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

posthtml-fetch

PostHTML plugin for fetching and displaying remote content.


Version published
Weekly downloads
7.8K
decreased by-8.58%
Maintainers
0
Weekly downloads
 
Created
Source

Fetch Content

A plugin for fetching and working with remote and local content

Version Build License Downloads

About

This plugin allows you to fetch remote or local content and display it in your HTML.

Input:

<fetch url="https://jsonplaceholder.typicode.com/users/1">
  {{ response.name }}'s username is {{ response.username }}
</fetch>

Output:

Leanne Graham's username is Bret

Install

npm i posthtml posthtml-fetch

Usage

const posthtml = require('posthtml')
const posthtmlFetch = require('posthtml-fetch')

posthtml()
  .use(posthtmlFetch())
  .process('<fetch url="https://example.test">{{ response }}</fetch>')
  .then(result => console.log(result.html))

  // => interpolated response body

The response body will be available under the response local variable.

Response types

The plugin supports json and text responses.

Only the response body is returned.

Expressions

The plugin uses posthtml-expressions, so you can use any of its tags to work with the response.

For example, you can iterate over items in a JSON response:

<fetch url="https://jsonplaceholder.typicode.com/users">
  <each loop="user in response">
    {{ user.name }}
  </each>
</fetch>

Options

You may configure the plugin with the following options.

tags

Type: String[]
Default: ['fetch', 'remote']

Array of supported tag names.

Only tags from this array will be processed by the plugin.

Example:

const posthtml = require('posthtml')
const posthtmlFetch = require('posthtml-fetch')

posthtml()
  .use(posthtmlFetch({
    tags: ['get']
  }))
  .process('<get url="https://example.test">{{ response }}</get>')
  .then(result => console.log(result.html))

attribute

Type: String
Default: 'url'

String representing attribute name containing the URL to fetch.

Example:

const posthtml = require('posthtml')
const posthtmlFetch = require('posthtml-fetch')

posthtml()
  .use(posthtmlFetch({
    attribute: 'from'
  }))
  .process('<fetch from="https://example.test">{{ response }}</fetch>')
  .then(result => {
    console.log(result.html) // interpolated response body
  })

ofetch

The plugin uses ofetch to fetch data. You can pass options directly to it, inside the ofetch object.

Example:

const posthtml = require('posthtml')
const posthtmlFetch = require('posthtml-fetch')

posthtml()
  .use(posthtmlFetch({
    ofetch: {
      // pass options to ofetch...
    }
  }))
  .process('<fetch url="https://example.test">{{ response }}</fetch>')
  .then(result => {
    console.log(result.html) // interpolated response body
  })

preserveTag

Type: Boolean
Default: false

When set to true, this option will preserve the tag around the response body.

Example:

const posthtml = require('posthtml')
const posthtmlFetch = require('posthtml-fetch')

posthtml()
  .use(posthtmlFetch({
    preserveTag: true
  }))
  .process('<fetch url="https://example.test">{{ response }}</fetch>')
  .then(result => {
    console.log(result.html)
    // => <fetch url="https://example.test">interpolated response body</fetch>
  })

expressions

Type: Object
Default: {}

You can pass options to posthtml-expressions.

Example:

const posthtml = require('posthtml')
const posthtmlFetch = require('posthtml-fetch')

posthtml()
  .use(posthtmlFetch({
    expressions: {
      delimiters: ['[[', ']]'],
    }
  }))
  .process('<fetch url="https://example.test">[[ response ]]</fetch>')
  .then(result => {
    console.log(result.html) // interpolated response body
  })

Plugins

after/before

List of plugins that will be called after/before receiving and processing locals

Example:

const posthtml = require('posthtml')
const posthtmlFetch = require('posthtml-fetch')

posthtml()
  .use(posthtmlFetch({
    plugins: {
      before: [
        tree => {
          // Your plugin implementation
        },
        tree => {
          // Your plugin implementation
        }
      ],
      after: [
        tree => {
          // Your plugin implementation
        },
        tree => {
          // Your plugin implementation
        }
      ]
    }
  }))
  .process('<fetch url="https://example.test">{{ response }}</fetch>')
  .then(result => {
    console.log(result.html) // interpolated response body
  })

Keywords

FAQs

Package last updated on 25 Jul 2024

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

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc