///<reference path="../../../node_modules/@angular/common/http/src/params.d.ts"/>
/* Copyright CloudLinux Zug GmbH 2010-2017 All Rights Reserved
 *
 * Licensed under CLOUD LINUX LICENSE AGREEMENT
 * http://cloudlinux.com/docs/LICENSE.TXT
 */

/*
 * CustomQueryEncoderHelper
 * Fix plus sign (+) not encoding, so sent as blank space
 * See: https://github.com/angular/angular/issues/11058#issuecomment-247367318
 */

import {HttpParameterCodec} from '@angular/common/http';

export class CustomQueryEncoderHelper implements HttpParameterCodec {
    decodeKey(key: string): string {
        return key;
    }

    decodeValue(value: string): string {
        return value;
    }
    encodeKey(k: string): string {
        return k.replace(/\+/gi, '%2B');
    }
    encodeValue(v: string): string {
        return v.toString().replace(/\+/gi, '%2B');
    }
}
