Test Report

0
0
4
35

ID Title Duration (ms)
1 node-rev generates a manifest without hashing 22
2 node-rev generates a manifest with hashing 6
3 node-rev takes multiple glob patterns separated by commas 3
4 node-rev keeps nested paths even if deeper than one 2

Code Coverage Report

88.16%
76
67
9

lib/index.js

88.16%
76
67
9
Line Lint Hits Source
1 'use strict';
2
3 1 Object.defineProperty(exports, "__esModule", {
4 value: true
5 });
6
7 1 exports.default = function (options) {
8
9 var manifest = {};
10 //use assert to require filesPath, outputDir
11 4 (0, _assert2.default)(options.files, 'files property is required');
12 4 var filesPath = options.files;
13
var outputDir =
options.outputDir
||
__dirname
;
14 4 var outputDest = _path2.default.resolve(outputDir);
15 4 var file = options.file;
16 4 var hash = options.hash || false;
17
18 function writeManifest(manifest) {
19
if (
file
) {
20 4 _fsExtra2.default.ensureFileSync(_path2.default.resolve(file));
21 4 _fsExtra2.default.writeFileSync(_path2.default.resolve(file), JSON.stringify(manifest), 'utf8');
22 } else {
23 _fsExtra2.default.writeFileSync(_path2.default.join(__dirname, 'assets.json'), JSON.stringify(manifest), 'utf8');
24 }
25 }
26
27 4 var filesPathParts = filesPath.split(',');
28 4 var files = [];
29 4 filesPathParts.forEach(function (filePathPart) {
30 files = files.concat(files, _glob2.default.sync(_path2.default.resolve(filePathPart), {}));
31 });
32
33 4 var baseDir = void 0;
34
if (
files
&& files.length === 1) {
35 baseDir = files[0].split('/').slice(0, -1).join('/');
36 } else {
37 4 baseDir = (0, _commondir2.default)(files);
38 }
39
if (
files
&& files.length) {
40 4 files.forEach(function (file) {
41 var parsedPath = _path2.default.parse(file);
42 11 var filename = parsedPath.base;
43 11 var dirParts = parsedPath.dir.split('/');
44 11 var fileDirParts = [];
45 11 while (dirParts.join('/') !== baseDir) {
46 10 fileDirParts.unshift(dirParts.pop());
47 }
48 11 var fileDir = fileDirParts.join('/');
49 11 var buffer = _fsExtra2.default.readFileSync(file);
50 11 if (hash) {
51 9 var _hash = (0, _revHash2.default)(buffer);
52 9 var revdPath = (0, _revPath2.default)(_path2.default.join(fileDir, filename), _hash);
53 9 manifest[_path2.default.join(fileDir, filename)] = revdPath;
54 9 _fsExtra2.default.ensureFileSync(_path2.default.join(outputDest, revdPath));
55 9 _fsExtra2.default.writeFileSync(_path2.default.join(outputDest, revdPath), buffer);
56 } else {
57 2 manifest[_path2.default.join(fileDir, filename)] = _path2.default.join(fileDir, filename);
58 2 _fsExtra2.default.ensureFileSync(_path2.default.join(outputDest, _path2.default.join(fileDir, filename)));
59 2 _fsExtra2.default.writeFileSync(_path2.default.join(outputDest, _path2.default.join(fileDir, filename)), buffer);
60 }
61 });
62 4 writeManifest(manifest);
63 } else {
64 console.warn('No files found matching ' + _path2.default.resolve(filesPath));
65 writeManifest({});
66 }
67 };
68
69 1 var _revHash = require('rev-hash');
70
71 1 var _revHash2 = _interopRequireDefault(_revHash);
72
73 1 var _revPath = require('rev-path');
74
75 1 var _revPath2 = _interopRequireDefault(_revPath);
76
77 1 var _path = require('path');
78
79 1 var _path2 = _interopRequireDefault(_path);
80
81 1 var _fsExtra = require('fs-extra');
82
83 1 var _fsExtra2 = _interopRequireDefault(_fsExtra);
84
85 1 var _glob = require('glob');
86
87 1 var _glob2 = _interopRequireDefault(_glob);
88
89 1 var _commondir = require('commondir');
90
91 1 var _commondir2 = _interopRequireDefault(_commondir);
92
93 1 var _assert = require('assert');
94
95 1 var _assert2 = _interopRequireDefault(_assert);
96
97
function _interopRequireDefault(obj) { return
obj
&& obj.__esModule ?
obj
: { default: obj }; }
98

Linting Report

Nothing to show here, linting is disabled.