UNPKG

usn

Version:

Command line tool and library for working with USN data

2 lines 4.81 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault"),_defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty")),_slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")),_toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})),keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var source,i=1;i<arguments.length;i++)source=null==arguments[i]?{}:arguments[i],i%2?ownKeys(Object(source),!0).forEach(function(key){(0,_defineProperty2["default"])(target,key,source[key])}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))});return target}var _require=require("path"),extname=_require.extname,_require2=require("ramda"),invertObj=_require2.invertObj,takeWhile=_require2.takeWhile,NPC_DOMAIN="http://www.public.navy.mil",MAX_MESSAGE_TEXT_LENGTH=5e3,MESSAGE_TYPE_LOOKUP={NAV:"NAVADMIN",ALN:"ALNAV"},YEAR_FORMAT_LENGTH=2,createMessageId=function(_ref){var type=_ref.type,year=_ref.year,num=_ref.num;return"".concat(type).concat(year).concat(num)},createNpcPageUrl=function(_ref2){var type=_ref2.type,year=_ref2.year;// eslint-disable-line no-magic-numbers return"".concat(NPC_DOMAIN,"/bupers-npc/reference/messages/").concat(type,"S/Pages/").concat(type,"20").concat(function format(year){return(year+"").length===4?+year.substr(-2):year}(year),".aspx")},createMessageUrl=function(_ref3){var num=_ref3.num,type=_ref3.type,year=_ref3.year,code=invertObj(MESSAGE_TYPE_LOOKUP)[type],yearNumber=parseInt(year,10),isNAVADMIN="NAV"===code,isOldMessage=18>yearNumber,fragment="bupers-npc/reference/messages/Documents".concat(isNAVADMIN&&isOldMessage?"2":"");return"".concat(NPC_DOMAIN,"/").concat(fragment,"/").concat(isNAVADMIN&&!isOldMessage||"ALN"===code?"".concat(type,"S/"):"").concat(code,"20").concat(year,"/").concat(code).concat(year).concat(num,".txt")},createYearsString=function(years){return years.sort().slice(0,-1).map(function(year){return"20".concat(year)}).join(", ").concat("".concat(2<years.length?",":"").concat(1<years.length?" and ":"","20").concat(years.slice(-1)))},dict=function(val){return new Map(Object.entries(val))},getCurrentYear=function(){return+(new Date().getFullYear()+"").substring(2)},isNotNumber=function(value){return isNaN(+value)},isNumberLike=function(value){return!isNaN(+value)},parseMessageName=function(value){var code=takeWhile(isNotNumber,(0,_toConsumableArray2["default"])(value)).join("").toUpperCase(),type=MESSAGE_TYPE_LOOKUP[code],year=value.substring(code.length,code.length+YEAR_FORMAT_LENGTH),num=value.substring(code.length+YEAR_FORMAT_LENGTH),url=createMessageUrl({num:num,type:type,year:year}),id=createMessageId({num:num,type:type,year:year});return{code:code,id:id,num:num,type:type,url:url,year:year}},parseMessageId=function(value){var type=takeWhile(isNotNumber,(0,_toConsumableArray2["default"])(value)).join("").toUpperCase(),code=invertObj(MESSAGE_TYPE_LOOKUP)[type],year=value.substring(type.length,type.length+YEAR_FORMAT_LENGTH),num=value.substring(type.length+YEAR_FORMAT_LENGTH),name="".concat(code).concat(year).concat(num);return parseMessageName(name)},parseMessageUri=function(value){var _value$split$reverse=value.split("/").reverse(),_value$split$reverse2=(0,_slicedToArray2["default"])(_value$split$reverse,1),filename=_value$split$reverse2[0],_filename$split=filename.split("."),_filename$split2=(0,_slicedToArray2["default"])(_filename$split,1),messageId=_filename$split2[0],ext=extname(value);return _objectSpread({},parseMessageName(messageId),{ext:ext})},partitionByKeyLength=function(key,length,value){var val=value[key]+"",times=Math.ceil(val.length/length);return(0,_toConsumableArray2["default"])("x".repeat(times)).map(function(_,index){var left=index*length;return _objectSpread({},value,(0,_defineProperty2["default"])({},key,val.substring(left,left+length)))})};module.exports={MAX_MESSAGE_TEXT_LENGTH:MAX_MESSAGE_TEXT_LENGTH,NPC_DOMAIN:NPC_DOMAIN,createMessageId:createMessageId,createMessageUrl:createMessageUrl,createNpcPageUrl:createNpcPageUrl,createYearsString:createYearsString,dict:dict,getCurrentYear:getCurrentYear,isNotNumber:isNotNumber,isNumberLike:isNumberLike,parseMessageId:parseMessageId,parseMessageName:parseMessageName,parseMessageUri:parseMessageUri,partitionByKeyLength:partitionByKeyLength};