Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

nodesi

Package Overview
Dependencies
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nodesi

ESI: the good parts in node.js

  • 1.0.14
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
7.6K
increased by10.21%
Maintainers
1
Weekly downloads
 
Created
Source

What is this?

It's a subset of Edge Side Include standard implemented with promise-based interface.

Features

  • Support for esi:include tags
  • Built-in memory cache (easily replaceable)
  • Cache respects Cache-Control server header
  • Graceful degradation to custom content upon server error
  • Custom logging

...and more, take a look at test cases for complete list.

Installation

npm install nodesi

Usage

Basic:
    var ESI = require('nodesi');

    var esi = new ESI();
    esi.process('<esi:include src="http://full-resource-path/stuff.html" />').then(function(result) {
        // result is a fetched html
    });
With base URL for relative paths:
    var ESI = require('nodesi');

    var esi = new ESI({
        baseUrl: 'http://full-resource-path'
    });
    esi.process('<esi:include src="/stuff.html" />').then(function(result) {
        // result is a fetched html
    });

Error handling

You can provide onError callback to a ESI constructor. It will recieve two arguments: source URL and error object.

It should return a string that will be put in place of errorous content.

Example
    var esi = new ESI({
        onError: function(src, error) {
            if(error.statusCode === 404) {
                return 'Not found';
            }
            return '';
        }
    });

Logging

It's a common anti-pattern that libraries write to stdout w/o users permission.

We want to be nice so you can provide your own logging output with logTo configuration option.

It's expected to be an object with "write" method on it that accepts a single string.

Examples

Logging to a custom object

    var esi = new ESI({
        logTo: {
            write: function(log) {
                // do some stuff with log string here
            }
        }
    });

Logging to a standard output (same as console.log):

    var esi = new ESI({
        logTo: process.stdout
    });

Logging to a file (possible, but please don't do that):

    var logFile = require('fs').createWriteStream('./log.txt');
    var esi = new ESI({
        logTo: logFile
    });

Performance testing

You can run performance tests with npm run perf [args]

This tool assumes you have Siege installed and added to your Path variable.

[args] are list of arguments that will be passed to Siege.

Keywords

FAQs

Package last updated on 25 Mar 2015

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