UNPKG

1.86 kBJavaScriptView Raw
1'use strict';
2
3var _getIterator2 = require('babel-runtime/core-js/get-iterator');
4
5var _getIterator3 = _interopRequireDefault(_getIterator2);
6
7function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
9/*
10 Copyright 2017 Google Inc.
11
12 Licensed under the Apache License, Version 2.0 (the "License");
13 you may not use this file except in compliance with the License.
14 You may obtain a copy of the License at
15
16 https://www.apache.org/licenses/LICENSE-2.0
17
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
23*/
24
25var crypto = require('crypto');
26
27module.exports = function (compositeUrl, dependencyDetails) {
28 var totalSize = 0;
29 var compositeHash = '';
30
31 var _iteratorNormalCompletion = true;
32 var _didIteratorError = false;
33 var _iteratorError = undefined;
34
35 try {
36 for (var _iterator = (0, _getIterator3.default)(dependencyDetails), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
37 var fileDetails = _step.value;
38
39 totalSize += fileDetails.size;
40 compositeHash += fileDetails.hash;
41 }
42 } catch (err) {
43 _didIteratorError = true;
44 _iteratorError = err;
45 } finally {
46 try {
47 if (!_iteratorNormalCompletion && _iterator.return) {
48 _iterator.return();
49 }
50 } finally {
51 if (_didIteratorError) {
52 throw _iteratorError;
53 }
54 }
55 }
56
57 var md5 = crypto.createHash('md5');
58 md5.update(compositeHash);
59 var hashOfHashes = md5.digest('hex');
60
61 return {
62 file: compositeUrl,
63 hash: hashOfHashes,
64 size: totalSize
65 };
66};
\No newline at end of file