4nm
Version:
TypeScript reimplementation of Telegram's official library for communicating with Telegram Web Apps.
27 lines (26 loc) • 947 B
JavaScript
import { ThemeParams } from '../ThemeParams';
import { createSearchParamsSchemaParser, parseSearchParamAsString, } from '../parsing';
import { InitData } from '../InitData';
/**
* Parses value as web app init data.
* @param value - parameter value.
*/
const parseInitData = value => {
return InitData.fromRaw(parseSearchParamAsString(value));
};
/**
* Parses value as web app theme params.
* @param value - parameter value.
*/
const parseThemeParams = value => {
return ThemeParams.fromJSONString(parseSearchParamAsString(value));
};
/**
* Extracts WebApp meta information from specified search params.
*/
export const extractWebAppMeta = createSearchParamsSchemaParser({
initData: ['tgWebAppData', parseInitData],
platform: ['tgWebAppPlatform', parseSearchParamAsString],
version: ['tgWebAppVersion', parseSearchParamAsString],
themeParams: ['tgWebAppThemeParams', parseThemeParams],
});