You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

deposit

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

deposit

Inject dynamic resources into your html pages

1.1.0
latest
Source
npmnpm
Version published
Weekly downloads
2
Maintainers
1
Weekly downloads
 
Created
Source

deposit NPM Version Build Status

Inject dynamic resources into your html pages

Install

npm install deposit --save

Usage

var fs = require('fs');
var http = require('http');
var deposit = require('deposit');

var d = deposit();

// Set up injectors
d.injector('fetch', require('deposit-fetch'));
d.injector('env', function (options, done) {
  
  // Do stuff
  
  done();
});

http.createServer(function (req, res) {

  fs.createReadStream('/path/to/some/file.html')
    .pipe(d)
    .pipe(res);

}).listen(3000);

Sample HTML file


<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  <!-- inject:env -->
  <script>window.__env = {};</script>
  <!-- endinject -->

</head>
<body>
  
  <!-- inject:fetch url=http://some.site.com/page timeout=5 assign=bob -->
  <h1>Default Content</h1>
  <p>This is what it looks like if the data doesn’t get fetched (or gets fetched with an error).</p>
  <!-- endinject -->

</body>
</html>

API

deposit([options])

  • options

d.injector(name, function (options, done) {})

  • name - The name of the inejctor. This is the name you will use in your html document. Only slug-valid names are allowed (i.e. fetch, custom-injector, etc).

d.tree([filepath, function (err, contents) {}])

Parse and inject a file. By default, the function returns a stream. You may also provide a callback and it will be called and return the parsed file contents. This method also has a streaming interface.

  • filepath - The path to the file to parse and inject.

d.blockTree([filepath, function (err blocks) {}])

Parse the given html file and return an object representation of the parseable blocks. This method also has a streaming interface.

  • filepath - The path to the file to parse and inject.

Injectors

Injectors are used to put dynamic content into the html as static content. Injectors are basically plugins that exports a function:

module.exports = function (options, done) {

});

The injector function recieves 2 parameters:

  • options - This is an object map of the options in the commented markup. If the html had <!-- inject:fetch url=http://some.site.com/page timeout=5 assign=bob -->, the options would be
    • url: http://some.site.com/page
    • timeout: 5
    • assign: bob
  • done - This callback gets called with these values - done(err, content). The content will be injected and replace the commented markup

Run Test

npm install
npm test

Keywords

inject

FAQs

Package last updated on 16 Dec 2014

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