function once(key) {

    const oHandler = on(key);
    const rHandler = remove(key);

    function down(listener) {
        oHandler.down(listener);
        oHandler.down(remove);

        function remove() {
            rHandler.down(listener);
            rHandler.down(remove);
        };

        return { down, up };
    };

    function up(listener) {
        oHandler.up(listener);
        oHndler.up(remove);

        function remove() {
            rHandler.up(listener);
            rHandler.up(remove);
        };

        return { down, up };
    };

    return { down, up };
}
// ability to use a listener one single time and then disable it.
ability to use a listener one single time and then disable it.
ability to use a listener one single time and then disable it .
function once(key) {
    const oHandler = on(key);
    const rHandler = remove(key);
    function down(listener) {
        oHandler.down(listener);
        oHandler.down(remove);
        function remove() {
            rHandler.down(listener);
            rHandler.down(remove);
        };
        return { down, up };
    };
    function up(listener) {
        oHandler.up(listener);
        oHndler.up(remove);
        function remove() {
            rHandler.up(listener);
            rHandler.up(remove);
        };
        return { down, up };
    };
    return { down, up };
}
function once ( key ) { const oHandler = on ( key ) ; const rHandler = remove ( key ) ; function down ( listener ) { oHandler . down ( listener ) ; oHandler . down ( remove ) ; function remove ( ) { rHandler . down ( listener ) ; rHandler . down ( remove ) ; } ; return { down , up } ; } ; function up ( listener ) { oHandler . up ( listener ) ; oHndler . up ( remove ) ; function remove ( ) { rHandler . up ( listener ) ; rHandler . up ( remove ) ; } ; return { down , up } ; } ; return { down , up } ; }
ability to use a listener one single time and then disable it.
ability to use a listener one single time and then disable it .