Skip to content

undoZen/rev-rewriter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rev-rewriter

input revMap and string, output string replaced based on revMap

##usage

I'm too lazy to write the doc, if you want to use it you can refer to test/rewrite plz, here's the whole file ;)

'use strict';
var tape = require('tape');
var rewrite = require('../');

tape('keep original', function (t) {
    t.plan(1);
    var original = '<script src="/assets/a.js"></script>';
    var result = rewrite({}, original);
    t.equal(result, original);
});

tape('replace with revMap without leading slash', function (t) {
    t.plan(1);
    var original = '<script src="/assets/a.js"></script>';
    var result = rewrite({
        revMap: {
            'a.js': 'b.js'
        }
    }, original);
    t.equal(result, '<script src="b.js"></script>');
});

tape('replace with revMap and assetPathPrefix and leading slash', function (t) {
    t.plan(1);
    var original = '<script src="/static/a.js"></script>';
    var result = rewrite({
        assetPathPrefix: '/static',
        revMap: {
            '/a.js': '/b.js'
        }
    }, original);
    t.equal(result, '<script src="/b.js"></script>');
});

tape('with all options set', function (t) {
    t.plan(1);
    var original = '<script src="/static/a.js"></script>';
    var result = rewrite({
        assetPathPrefix: '/static',
        revMap: {
            '/a.js': '/b.js'
        },
        revPost: function(revvedFilePath) {
            return '/assets' + revvedFilePath;
        }
    }, original);
    t.equal(result, '<script src="/assets/b.js"></script>');
});

tape('no need to match in revMap, revPost still apply', function (t) {
    t.plan(1);
    var original = '<script src="/static/a.js"></script>';
    var result = rewrite({
        assetPathPrefix: '/static',
        revPost: function(revvedFilePath) {
            return '/assets' + revvedFilePath;
        }
    }, original);
    t.equal(result, '<script src="/assets/a.js"></script>');
});

About

input revMap and string, output string replaced based on revMap

Resources

License

Stars

Watchers

Forks

Packages

No packages published