/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/postal-code-jp@0.2.5/lib/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResolvedResult=exports.dict=exports.cache=void 0;var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var a=r[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(r,t,a){return t&&e(r.prototype,t),a&&e(r,a),r}}(),_fs=require("fs"),_fs2=_interopRequireDefault(_fs),_path=require("path"),_path2=_interopRequireDefault(_path),_bluebird=require("bluebird"),_cache=require("./cache"),_dictionaryLoader=require("./dictionary-loader");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}var cache=exports.cache={CacheManager:_cache.CacheManager,CacheAdapter:_cache.CacheAdapter,MemoryCacheAdapter:_cache.MemoryCacheAdapter},dict=exports.dict={DictionaryLoader:_dictionaryLoader.DictionaryLoader,CacheableDictionaryLoader:_dictionaryLoader.CacheableDictionaryLoader},PREFECTURE_DICT=[null,"北海道","青森県","岩手県","宮城県","秋田県","山形県","福島県","茨城県","栃木県","群馬県","埼玉県","千葉県","東京都","神奈川県","新潟県","富山県","石川県","福井県","山梨県","長野県","岐阜県","静岡県","愛知県","三重県","滋賀県","京都府","大阪府","兵庫県","奈良県","和歌山県","鳥取県","島根県","岡山県","広島県","山口県","徳島県","香川県","愛媛県","高知県","福岡県","佐賀県","長崎県","熊本県","大分県","宮崎県","鹿児島県","沖縄県"],PROPERTIES={0:"prefecture",1:"city",2:"area",3:"street"},result={};Object.keys(PROPERTIES).forEach((function(e){var r=PROPERTIES[e];result[r]=null}));var _emptyResult=result,readFile=_bluebird.Promise.promisify(_fs2.default.readFile),ResolvedResult=exports.ResolvedResult=function(){function e(r,t,a){var i=arguments.length<=3||void 0===arguments[3]?null:arguments[3];_classCallCheck(this,e),this.prefecture=r,this.city=t,this.area=a,this.street=i}return _createClass(e,null,[{key:"fromObject",value:function(r){return new e(r.prefecture,r.city,r.area,r.street)}},{key:"fromArray",value:function(r){var t=e.emptyResult();return r.forEach((function(e,r){var a=PROPERTIES[r];t[a]=0===r?PREFECTURE_DICT[e]:e})),e.fromObject(t)}},{key:"emptyResult",value:function(){return Object.create(_emptyResult)}}]),e}(),AddressResolver=function(){function e(){var r=arguments.length<=0||void 0===arguments[0]?new _cache.MemoryCacheAdapter:arguments[0];_classCallCheck(this,e),this.dictLoader=new _dictionaryLoader.CacheableDictionaryLoader(r)}return _createClass(e,[{key:"find",value:function(e){var r=this;return _bluebird.Promise.bind(this).then((function(){return r.verifyCode(e)})).then((function(e){return e.passed?this.loadAddressByCode(e.postalCode):this.emptyResult()}))}},{key:"verifyCode",value:function(e){var r=(e||"").replace(/-/,""),t=!(r.length<7);return _bluebird.Promise.resolve({passed:t,postalCode:r})}},{key:"loadAddressByCode",value:function(e){var r=this,t=e.substr(0,3);return this.dictLoader.loadFromPrefix(t).then((function(t){if(!t[e])return r.emptyResult();var a=t[e];return ResolvedResult.fromArray(a)}))}},{key:"emptyResult",value:function(){return _bluebird.Promise.resolve(null)}}]),e}();exports.default=AddressResolver;
//# sourceMappingURL=/sm/fc52fe0f01b139f4cb9486e159d2e84228ee719bcc5eec6cae5ed79362174065.map