geolonia / normalize-japanese-addresses

オープンソースの住所正規化ライブラリ。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

バージョン:1.0.4 で `town.replace is not a function` エラーが発生

hirokoma opened this issue · comments

お世話になっております。

@geolonia/normalize-japanese-addresses
バージョン: 1.0.4

にて以下のエラーが発生しております。

2021-07-02T02:02:13.569Z	4d1a2076-9ae6-4b68-b05c-0472d759878d	ERROR	Invoke Error 	{
    "errorType": "TypeError",
    "errorMessage": "town.replace is not a function",
    "stack": [
        "TypeError: town.replace is not a function",
        "    at /var/task/node_modules/@geolonia/normalize-japanese-addresses/dist/main.js:489:26",
        "    at Array.map (<anonymous>)",
        "    at /var/task/node_modules/@geolonia/normalize-japanese-addresses/dist/main.js:487:33",
        "    at step (/var/task/node_modules/@geolonia/normalize-japanese-addresses/dist/main.js:59:23)",
        "    at Object.next (/var/task/node_modules/@geolonia/normalize-japanese-addresses/dist/main.js:40:53)",
        "    at fulfilled (/var/task/node_modules/@geolonia/normalize-japanese-addresses/dist/main.js:30:58)",
        "    at processTicksAndRejections (internal/process/task_queues.js:95:5)"
    ]
}

少なくとも

東京都**区東日本橋2-9-7
東京都中野区弥生町2-41-17

でエラーが発生したことを確認しましたが、他のあらゆる住所でも発生しているようです。

・ver1.1.0 でも同エラーが発生することを確認致しました。

・昨日 2021年07月01日 17時26分時点ではエラーはございませんでしたが、本日 2021年7月2日 09時59分時点で初めてエラーを確認しました。

・実行端末およびIPアドレスを変えても同エラーが起きることを確認しました。

こちらのtown一覧を返すJSONのフォーマットが変わったことが原因かもしれません。
https://geolonia.github.io/japanese-addresses/api/ja/%E6%9D%B1%E4%BA%AC%E9%83%BD/%E4%B8%AD%E5%A4%AE%E5%8C%BA.json

ver1.1.0のmain.js 515行目にて townが文字列ではなくハッシュになっています。

515行目に

town = town.town

を挿入することでエラーが出なくなりました。

.tsで言うとこちらにあたります。

ありがとうございました。 japanese-addresses の API の仕様変更を対応させる修正が #108 で作業中です。
その間、

import { config } from '@geolonia/normalize-japanese-addresses'
config.japaneseAddressesApi = "https://xxx"

で旧バージョンのAPIを指定することができると思います。

https://raw.githubusercontent.com/geolonia/japanese-addresses/f372f3deaeb10e65689bae8c6960b81855c2ca1b/api/ja ですかね?

ご提示いただいた旧バージョンのAPIを指定することで問題は解決しました。
引き続き #108 の完了をお待ちしております。

ありがとうございました。

確認ありがとうございました。ご迷惑をかけしました 🙇