-
Couldn't load subscription status.
- Fork 39
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation
Description
What happened?
お世話になっております。
バージョン3.1.3において、normalize関数にoptions.japaneseAddressesApiでローカルの file:// パスを指定しても、設定が無視され、デフォルトのCDNが参照されてしまう問題について報告します。
環境
- ライブラリバージョン: [email protected]
- 実行環境: Node.js(v22.16.0)
- OS: Windows11
問題の詳細
ローカルの住所データを参照する目的で、以下のようなコードを実行しました。
この際、参照先のディレクトリ (C:\myAppPath\data\japanese-addresses) は、ローカルファイルが参照されているかを確かめるために空にしています。
import { normalize } from '@geolonia/normalize-japanese-addresses';
const address = '東京都新宿区西新宿2-8-1';
const localAddressesUrl = 'file://C:\\myAppPath\\data\\japanese-addresses\\ja';
// options にてローカルファイルのパスを指定
const normalizedResult = await normalize(address, {
japaneseAddressesApi: localAddressesUrl,
});
console.log(normalizedResult);期待される挙動
指定されたローカルパスからデータを読み込もうと試み、ファイルが存在しないためエラーが発生する。
実際の挙動
オプションが無視され、デフォルトのCDNへフォールバックします。結果として、正規化された住所オブジェクトが正常に返却されてしまいます。
調査
デバッガーで内部の動作を確認したところ、以下の点が判明しました。
node_modules\@geolonia\normalize-japanese-addresses\dist\main-node-esm.mjs内のfetchOrReadFile関数において、config$1.japaneseAddressesApiの値が、optionsで渡したパスではなく、デフォルトのCDN URL (https://japanese-addresses-v2.geoloniamaps.com/api/ja) になっていました。
// myAppPath\node_modules\@geolonia\normalize-japanese-addresses\dist\main-node-esm.mjs
const fetchOrReadFile = (input, options) => __awaiter(void 0, void 0, void 0, function* () {
// ↓ ここの config$1.japaneseAddressesApi がデフォルト値のままになっている
const fileURL = new URL(`${config$1.japaneseAddressesApi}${input}`);- 回避策の検証
同ファイル内の設定オブジェクトを直接書き換えることで、期待通りの動作になることを確認しました。
// 変更前
const currentConfig = {
japaneseAddressesApi: defaultEndpoint,
// ...
};
// 変更後(ローカルパスをハードコード)
const currentConfig = {
japaneseAddressesApi: 'file://C:\\myAppPath\\data\\japanese-addresses\\ja',
// ...
};この変更後、
- ローカルディレクトリが空の場合 → 想定通りエラーが発生した
- ローカルディレクトリに住所データを配置した場合 → 想定通りローカルファイルを使って正規化に成功した
以上のことから、normalize関数に渡されたoptionsが、内部のデータ取得処理で参照される設定オブジェクトに正しく反映されていない不具合があるものと考えられます。
ご確認いただけますと幸いです。
Steps to reproduce
No response
Relevant log output
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation