@backpack/luggage
Advanced tools
+3
| { | ||
| "presets": ["latest"] | ||
| } |
| {"version":3,"sources":["../src/fill-calculator.js"],"names":["module","exports","utils","require","calculateFill","items","total","reduce","acc","item","weight","normalizedWeight","volume","normalizedVolume","price","undefined","Number","filledWeight","Math","round","weightPercent","filledVolume","volumePercent","numItems","length","itemWeight","itemVolume","itemPrice"],"mappings":";;AAAA;;;;AAIAA,OAAOC,OAAP,GAAkB,YAAY;AAC5B,MAAMC,QAAQC,QAAQ,SAAR,CAAd;;AAEA;;;;;;;AAOA,WAASC,aAAT,CAAuBC,KAAvB,EAA8B;AAC5B,QAAMC,QAAQD,MAAME,MAAN,CAAa,UAAUC,GAAV,EAAeC,IAAf,EAAqB;AAC9C,UAAMC,SAASF,IAAIE,MAAJ,GAAaR,MAAMS,gBAAN,CAAuBF,IAAvB,CAA5B;AACA,UAAMG,SAASJ,IAAII,MAAJ,GAAaV,MAAMW,gBAAN,CAAuBJ,IAAvB,CAA5B;AACA,UAAMK,QAAQN,IAAIM,KAAJ,IAAaL,KAAKK,KAAL,KAAeC,SAAf,GAA2B,CAA3B,GAA+BC,OAAOP,KAAKK,KAAZ,CAA5C,CAAd;AACA,aAAO,EAAEJ,cAAF,EAAUE,cAAV,EAAkBE,YAAlB,EAAP;AACD,KALa,EAKX;AACDJ,cAAQ,CADP;AAEDE,cAAQ,CAFP;AAGDE,aAAO;AAHN,KALW,CAAd;;AAWA,QAAMG,eAAeC,KAAKC,KAAL,CAAWjB,MAAMkB,aAAN,CAAoBd,MAAMI,MAA1B,CAAX,CAArB;AACA,QAAMW,eAAeH,KAAKC,KAAL,CAAWjB,MAAMoB,aAAN,CAAoBhB,MAAMM,MAA1B,CAAX,CAArB;;AAEA,WAAO;AACLW,gBAAUlB,MAAMmB,MADX;AAELC,kBAAYnB,MAAMI,MAFb;AAGLgB,kBAAYpB,MAAMM,MAHb;AAILK,gCAJK;AAKLI,gCALK;AAMLM,iBAAWT,KAAKC,KAAL,CAAWb,MAAMQ,KAAjB;AANN,KAAP;AAQD;;AAED,SAAOV,aAAP;AACD,CApCiB,EAAlB","file":"fill-calculator.js","sourcesContent":["/**\n * @author masum\n * @since 8/28/16\n */\nmodule.exports = (function () {\n const utils = require('./utils');\n\n /**\n * Calculate luggage fill information of items.\n *\n * @param items {Array<{length: number, width: number, height: number, weight: number, price: number}>}\n * @returns {{numItems: number,\n * itemWeight: number, itemVolume: number, filledWeight: number, filledVolume: number, itemPrice: number}}\n */\n function calculateFill(items) {\n const total = items.reduce(function (acc, item) {\n const weight = acc.weight + utils.normalizedWeight(item);\n const volume = acc.volume + utils.normalizedVolume(item);\n const price = acc.price + (item.price === undefined ? 0 : Number(item.price));\n return { weight, volume, price };\n }, {\n weight: 0,\n volume: 0,\n price: 0,\n });\n\n const filledWeight = Math.round(utils.weightPercent(total.weight));\n const filledVolume = Math.round(utils.volumePercent(total.volume));\n\n return {\n numItems: items.length,\n itemWeight: total.weight,\n itemVolume: total.volume,\n filledWeight,\n filledVolume,\n itemPrice: Math.round(total.price),\n };\n }\n\n return calculateFill;\n}());\n"]} |
| {"version":3,"sources":["../src/utils.js"],"names":["module","exports","constants","require","volumePercent","volume","percent","LUGGAGE_VOLUME","Math","round","weightPercent","weight","LUGGAGE_WEIGHT","normalizedVolume","item","length","toNumber","AVG_ITEM_LENGTH","width","AVG_ITEM_WIDTH","height","AVG_ITEM_HEIGHT","normalizedWeight","AVG_ITEM_WEIGHT","val","defaultValue","trim","Number"],"mappings":";;AAAA;;;;;AAKAA,OAAOC,OAAP,GAAkB,YAAY;AAC5B,MAAMC,YAAYC,QAAQ,cAAR,CAAlB;;AAEA;;;;;;AAMA,WAASC,aAAT,CAAuBC,MAAvB,EAA+B;AAC7B,QAAMC,UAAWD,SAAS,GAAV,GAAiBH,UAAUK,cAA3C;AACA,WAAOC,KAAKC,KAAL,CAAWH,UAAU,EAArB,IAA2B,EAAlC;AACD;;AAED;;;;;AAKA,WAASI,aAAT,CAAuBC,MAAvB,EAA+B;AAC7B,QAAML,UAAWK,SAAS,GAAV,GAAiBT,UAAUU,cAA3C;AACA,WAAOJ,KAAKC,KAAL,CAAWH,UAAU,EAArB,IAA2B,EAAlC;AACD;;AAED;;;;;;;AAOA,WAASO,gBAAT,CAA0BC,IAA1B,EAAgC;AAC9B,QAAMC,SAASC,SAASF,KAAKC,MAAd,EAAsBb,UAAUe,eAAhC,CAAf;AACA,QAAMC,QAAQF,SAASF,KAAKI,KAAd,EAAqBhB,UAAUiB,cAA/B,CAAd;AACA,QAAMC,SAASJ,SAASF,KAAKM,MAAd,EAAsBlB,UAAUmB,eAAhC,CAAf;AACA,WAAON,SAASG,KAAT,GAAiBE,MAAxB;AACD;;AAED;;;;;;;AAOA,WAASE,gBAAT,CAA0BR,IAA1B,EAAgC;AAC9B,WAAOE,SAASF,KAAKH,MAAd,EAAsBT,UAAUqB,eAAhC,CAAP;AACD;;AAED;;;;;;;;AAQA,WAASP,QAAT,CAAkBQ,GAAlB,EAAuBC,YAAvB,EAAqC;AACnC,QAAI,OAAOD,GAAP,KAAe,WAAnB,EAAgC;AAC9B,aAAOC,YAAP;AACD;;AAED,QAAID,QAAQ,IAAZ,EAAkB;AAChB,aAAOC,YAAP;AACD;;AAED,QAAI,OAAOD,GAAP,KAAe,QAAnB,EAA6B;AAC3B,UAAIA,IAAIE,IAAJ,OAAe,EAAnB,EAAuB;AACrB,eAAOD,YAAP;AACD;AACF;;AAED,WAAOE,OAAOH,GAAP,CAAP;AACD;;AAED,SAAO;AACLpB,gCADK;AAELM,gCAFK;AAGLG,sCAHK;AAILS,sCAJK;AAKLN;AALK,GAAP;AAOD,CAlFiB,EAAlB","file":"utils.js","sourcesContent":["/**\n * @author masum\n * @since 8/28/16\n */\n\nmodule.exports = (function () {\n const constants = require('../constants');\n\n /**\n * Percentage of given volume to a single luggage volume.\n *\n * @param volume\n * @returns {number}\n */\n function volumePercent(volume) {\n const percent = (volume * 100) / constants.LUGGAGE_VOLUME;\n return Math.round(percent * 10) / 10;\n }\n\n /**\n * Percentage of given weight to a single luggage weight.\n * @param weight\n * @returns {number}\n */\n function weightPercent(weight) {\n const percent = (weight * 100) / constants.LUGGAGE_WEIGHT;\n return Math.round(percent * 10) / 10;\n }\n\n /**\n * Normalized volume of the item. By \"normalized\" we mean if a dimension is not present, we take the average for\n * that dimension.\n *\n * @param item {{length: number, width: number, height: number}}\n * @returns {number}\n */\n function normalizedVolume(item) {\n const length = toNumber(item.length, constants.AVG_ITEM_LENGTH);\n const width = toNumber(item.width, constants.AVG_ITEM_WIDTH);\n const height = toNumber(item.height, constants.AVG_ITEM_HEIGHT);\n return length * width * height;\n }\n\n /**\n * Normalized weight of the item. By \"normalized\" we mean if the weight is not present, we use the empirical\n * average weight.\n *\n * @param item {{weight: number}}\n * @returns {number}\n */\n function normalizedWeight(item) {\n return toNumber(item.weight, constants.AVG_ITEM_WEIGHT);\n }\n\n /**\n * Convert a given value to number. If the value is undefined, null or a blank/empty string,\n * returns the default value.\n *\n * @param val\n * @param defaultValue\n * @returns {*}\n */\n function toNumber(val, defaultValue) {\n if (typeof val === 'undefined') {\n return defaultValue;\n }\n\n if (val === null) {\n return defaultValue;\n }\n\n if (typeof val === 'string') {\n if (val.trim() === '') {\n return defaultValue;\n }\n }\n\n return Number(val);\n }\n\n return {\n volumePercent,\n weightPercent,\n normalizedVolume,\n normalizedWeight,\n toNumber,\n };\n}());\n"]} |
Sorry, the diff of this file is too big to display
+24
-21
@@ -0,3 +1,6 @@ | ||
| 'use strict'; | ||
| /* eslint comma-dangle: 0 */ | ||
| /** | ||
| * Luggage related constants. | ||
| * Luggage related constants. This file MUST be in ES2015 only. | ||
| * | ||
@@ -7,8 +10,8 @@ * @author masum | ||
| */ | ||
| const LB_TO_OZ = 16; | ||
| var LB_TO_OZ = 16; | ||
| const AVG_ITEM_LENGTH = 7; | ||
| const AVG_ITEM_WIDTH = 5; | ||
| const AVG_ITEM_HEIGHT = 2; | ||
| const AVG_ITEM_WEIGHT = 21.5; | ||
| var AVG_ITEM_LENGTH = 7; | ||
| var AVG_ITEM_WIDTH = 5; | ||
| var AVG_ITEM_HEIGHT = 2; | ||
| var AVG_ITEM_WEIGHT = 21.5; | ||
@@ -18,7 +21,7 @@ // | ||
| // | ||
| const LUGGAGE_LENGTH = 24; | ||
| const LUGGAGE_WIDTH = 14; | ||
| const LUGGAGE_HEIGHT = 10; | ||
| var LUGGAGE_LENGTH = 24; | ||
| var LUGGAGE_WIDTH = 14; | ||
| var LUGGAGE_HEIGHT = 10; | ||
| const LUGGAGE_VOLUME = LUGGAGE_LENGTH * LUGGAGE_WIDTH * LUGGAGE_HEIGHT; | ||
| var LUGGAGE_VOLUME = LUGGAGE_LENGTH * LUGGAGE_WIDTH * LUGGAGE_HEIGHT; | ||
@@ -28,18 +31,18 @@ // | ||
| // | ||
| const LUGGAGE_WEIGHT = 45 * LB_TO_OZ; // 45 lb | ||
| var LUGGAGE_WEIGHT = 45 * LB_TO_OZ; // 45 lb | ||
| module.exports = { | ||
| LB_TO_OZ, | ||
| LB_TO_OZ: LB_TO_OZ, | ||
| AVG_ITEM_LENGTH, | ||
| AVG_ITEM_WIDTH, | ||
| AVG_ITEM_HEIGHT, | ||
| AVG_ITEM_WEIGHT, | ||
| AVG_ITEM_LENGTH: AVG_ITEM_LENGTH, | ||
| AVG_ITEM_WIDTH: AVG_ITEM_WIDTH, | ||
| AVG_ITEM_HEIGHT: AVG_ITEM_HEIGHT, | ||
| AVG_ITEM_WEIGHT: AVG_ITEM_WEIGHT, | ||
| LUGGAGE_LENGTH, | ||
| LUGGAGE_WIDTH, | ||
| LUGGAGE_HEIGHT, | ||
| LUGGAGE_LENGTH: LUGGAGE_LENGTH, | ||
| LUGGAGE_WIDTH: LUGGAGE_WIDTH, | ||
| LUGGAGE_HEIGHT: LUGGAGE_HEIGHT, | ||
| LUGGAGE_VOLUME, | ||
| LUGGAGE_WEIGHT, | ||
| LUGGAGE_VOLUME: LUGGAGE_VOLUME, | ||
| LUGGAGE_WEIGHT: LUGGAGE_WEIGHT | ||
| }; |
+7
-2
@@ -0,7 +1,12 @@ | ||
| 'use strict'; | ||
| /* eslint comma-dangle: 0, quotes: 0 */ | ||
| /** | ||
| * Entry point. This file MUST be in ES2015 only. | ||
| * | ||
| * @author masum | ||
| * @since 8/31/16 | ||
| */ | ||
| const utils = require('./lib/utils'); | ||
| const calculateFill = require('./lib/fill-calculator'); | ||
| var utils = require('./lib/utils'); | ||
| var calculateFill = require('./lib/fill-calculator'); | ||
@@ -8,0 +13,0 @@ module.exports = { |
+17
-14
@@ -0,1 +1,3 @@ | ||
| 'use strict'; | ||
| /** | ||
@@ -5,4 +7,4 @@ * @author masum | ||
| */ | ||
| module.exports = (function () { | ||
| const utils = require('./utils'); | ||
| module.exports = function () { | ||
| var utils = require('./utils'); | ||
@@ -17,15 +19,15 @@ /** | ||
| function calculateFill(items) { | ||
| const total = items.reduce(function (acc, item) { | ||
| const weight = acc.weight + utils.normalizedWeight(item); | ||
| const volume = acc.volume + utils.normalizedVolume(item); | ||
| const price = acc.price + (item.price === undefined ? 0 : Number(item.price)); | ||
| return { weight, volume, price }; | ||
| var total = items.reduce(function (acc, item) { | ||
| var weight = acc.weight + utils.normalizedWeight(item); | ||
| var volume = acc.volume + utils.normalizedVolume(item); | ||
| var price = acc.price + (item.price === undefined ? 0 : Number(item.price)); | ||
| return { weight: weight, volume: volume, price: price }; | ||
| }, { | ||
| weight: 0, | ||
| volume: 0, | ||
| price: 0, | ||
| price: 0 | ||
| }); | ||
| const filledWeight = Math.round(utils.weightPercent(total.weight)); | ||
| const filledVolume = Math.round(utils.volumePercent(total.volume)); | ||
| var filledWeight = Math.round(utils.weightPercent(total.weight)); | ||
| var filledVolume = Math.round(utils.volumePercent(total.volume)); | ||
@@ -36,5 +38,5 @@ return { | ||
| itemVolume: total.volume, | ||
| filledWeight, | ||
| filledVolume, | ||
| itemPrice: Math.round(total.price), | ||
| filledWeight: filledWeight, | ||
| filledVolume: filledVolume, | ||
| itemPrice: Math.round(total.price) | ||
| }; | ||
@@ -44,2 +46,3 @@ } | ||
| return calculateFill; | ||
| }()); | ||
| }(); | ||
| //# sourceMappingURL=fill-calculator.js.map |
+16
-13
@@ -0,1 +1,3 @@ | ||
| 'use strict'; | ||
| /** | ||
@@ -6,4 +8,4 @@ * @author masum | ||
| module.exports = (function () { | ||
| const constants = require('../constants'); | ||
| module.exports = function () { | ||
| var constants = require('../constants'); | ||
@@ -17,3 +19,3 @@ /** | ||
| function volumePercent(volume) { | ||
| const percent = (volume * 100) / constants.LUGGAGE_VOLUME; | ||
| var percent = volume * 100 / constants.LUGGAGE_VOLUME; | ||
| return Math.round(percent * 10) / 10; | ||
@@ -28,3 +30,3 @@ } | ||
| function weightPercent(weight) { | ||
| const percent = (weight * 100) / constants.LUGGAGE_WEIGHT; | ||
| var percent = weight * 100 / constants.LUGGAGE_WEIGHT; | ||
| return Math.round(percent * 10) / 10; | ||
@@ -41,5 +43,5 @@ } | ||
| function normalizedVolume(item) { | ||
| const length = toNumber(item.length, constants.AVG_ITEM_LENGTH); | ||
| const width = toNumber(item.width, constants.AVG_ITEM_WIDTH); | ||
| const height = toNumber(item.height, constants.AVG_ITEM_HEIGHT); | ||
| var length = toNumber(item.length, constants.AVG_ITEM_LENGTH); | ||
| var width = toNumber(item.width, constants.AVG_ITEM_WIDTH); | ||
| var height = toNumber(item.height, constants.AVG_ITEM_HEIGHT); | ||
| return length * width * height; | ||
@@ -86,8 +88,9 @@ } | ||
| return { | ||
| volumePercent, | ||
| weightPercent, | ||
| normalizedVolume, | ||
| normalizedWeight, | ||
| toNumber, | ||
| volumePercent: volumePercent, | ||
| weightPercent: weightPercent, | ||
| normalizedVolume: normalizedVolume, | ||
| normalizedWeight: normalizedWeight, | ||
| toNumber: toNumber | ||
| }; | ||
| }()); | ||
| }(); | ||
| //# sourceMappingURL=utils.js.map |
+11
-7
| { | ||
| "name": "@backpack/luggage", | ||
| "version": "1.0.6", | ||
| "version": "1.0.7", | ||
| "description": "Backpack luggage related code", | ||
| "main": "index.js", | ||
| "scripts": { | ||
| "pretest": "./node_modules/.bin/eslint index.js constants.js lib test", | ||
| "test": "./node_modules/.bin/mocha", | ||
| "lint": "./node_modules/.bin/eslint index.js constants.js lib test", | ||
| "browserify": "browserify test/api.js test/utils.js -o dist/test.js" | ||
| "build": "babel -s -d lib src", | ||
| "pretest": "npm run lint", | ||
| "test": "mocha", | ||
| "lint": "eslint index.js constants.js src test", | ||
| "browserify": "browserify test/api.js test/utils.js -o dist/test.js", | ||
| "prepublish": "npm run build" | ||
| }, | ||
@@ -19,10 +21,12 @@ "author": "Masum <just.unix@gmail.com>", | ||
| "devDependencies": { | ||
| "mocha": "^3.0.2", | ||
| "babel-cli": "^6.18.0", | ||
| "babel-preset-latest": "^6.16.0", | ||
| "chai": "^3.5.0", | ||
| "eslint": "^3.4.0", | ||
| "eslint-config-standard": "^6.0.0", | ||
| "eslint-plugin-import": "^1.14.0", | ||
| "eslint-plugin-promise": "^2.0.1", | ||
| "eslint-plugin-standard": "^2.0.0", | ||
| "eslint-plugin-import": "^1.14.0" | ||
| "mocha": "^3.0.2" | ||
| } | ||
| } |
Sorry, the diff of this file is not supported yet
Explicitly Unlicensed Item
LicenseSomething was found which is explicitly marked as unlicensed.
Found 1 instance in 1 package
Explicitly Unlicensed Item
LicenseSomething was found which is explicitly marked as unlicensed.
Found 1 instance in 1 package
101745
893.12%17
30.77%277
2.97%9
28.57%