Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | 3x 8x 3x 4x 4x 4x 4x 4x 3x 3x 9x | import qs from "query-string";
import { AnyResponse } from "./shared.types";
/**
* Форматирует часть даты
* @param {number} x
* @return {string}
*/
const fd = (x: number) => x.toString().padStart(2, "0");
/**
* Форматирует дату в понятную для QIWI строку:
*
* `ГГГГ-ММ-ДДTЧЧ:ММ:СС+\-ЧЧ:ММ`
*
* @param {Date | number | string} date Аргумент для конструктора
* @return {string}
*/
export function formatDate(date: Date | number | string): string {
const d = new Date(date);
const tz = d.getTimezoneOffset();
const sign = tz > 0 ? "-" : "+";
const base = d.toISOString().split(".")[0];
return base + sign + fd(Math.trunc(Math.abs(tz) / 60)) + ":" + fd(tz % 60);
}
/**
* Разбирает строку запроса, в том формате, который передаёт QIWI
* @param {string} querystring Строка запроса
* @return {*}
*/
export function parseQS(querystring: string): AnyResponse {
return qs.parse(querystring, {
arrayFormat: "index",
parseBooleans: true,
parseNumbers: true
}) as any;
}
/**
* Создаёт строку запроса, в формате, который понимает QIWI
*
* @param {AnyResponse} object Объект для преобразования
* @return {string}
*/
export function createQS(object: AnyResponse): string {
return qs.stringify(object as any, {
arrayFormat: "index",
skipNull: true,
skipEmptyString: false
});
}
|