latest log

酩酊状態で書いたエンジニアポエムです。酩酊状態で読んでください。

add Valid.register

WebModule Valid.js に Valid.register を追加

以下のコードは、これまでは、引数 url は URLString として妥当かどうかではなく String かどうかを確認する機能しかもっていませんでしたが、

function foo(url) { // @arg URLString
//{@dev
    if ( !Valid.type(url, "URLString") ) { // url が妥当かどうかをチェックする
        throw new Error("引数ダメです");
    }
//}@dev
}

Valid.js の Valid.register で型を登録しておくと、既存のコードを変えずに、URLString が URLとして妥当かどうかをチェックするようになります。

// URLString のタイプチェックを実行するフック関数を登録
Valid.register("URLString", function(type, value) {
    return typeof value === "string" && require("uupaa.wmurl.js").isValid(value);
});


function foo(url) { // @arg URLString
//{@dev
    if ( !Valid.type(url, "URLString") ) { // url が妥当かどうかをチェックする
        throw new Error("引数ダメです");
    }
//}@dev
}

Valid.jsWMURL.js モジュールの両方が読み込まれている場合に、type URLString は WMURL.isValud で精査されるようになります。

WebModule なモジュールは単体でも利用できますが、組み合わせることでコンボが発動するという紹介でした。