Skip to content

Commit

Permalink
Merge pull request #24 from Fsss126/feat/metrika-origin
Browse files Browse the repository at this point in the history
feat: Configure metrika origin
  • Loading branch information
hcodes authored Nov 18, 2024
2 parents 3b7c968 + 06f6619 commit fd7470e
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 2 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
node_modules
.DS_Store
manual-test/manual-test.js
.idea
2 changes: 2 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import { getRandom } from './number';
import { sendData } from './transport';
import { prepareUrl } from './url';

export { configureTransport } from './transport';

export interface LyamHitParams {
referrer?: string;
title?: string;
Expand Down
18 changes: 16 additions & 2 deletions src/transport.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,22 @@
import { queryStringify } from './url';
import {normalizeOrigin, queryStringify} from './url';
import type { LyamQueryParams } from './index';

interface LyamTrasportConfigParams {
metrikaOrigin: string;
}

let metrikaOrigin = 'https://mc.yandex.ru';

/**
* Конфигурирует транспорт отправки событий
* @param params
*/
export function configureTransport(params: LyamTrasportConfigParams) {
metrikaOrigin = normalizeOrigin(params.metrikaOrigin);
}

export function sendData(counterId: string, queryParams: LyamQueryParams): void {
const url = 'https://mc.yandex.ru/watch/' + counterId + '?' + queryStringify(queryParams);
const url = metrikaOrigin + '/watch/' + counterId + '?' + queryStringify(queryParams);
const hasBeacon = typeof navigator !== 'undefined' && navigator.sendBeacon;

if (!hasBeacon || !navigator.sendBeacon(url, ' ')) {
Expand Down
8 changes: 8 additions & 0 deletions src/url.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,11 @@ const MAX_URL_LEN = 1024;
export function prepareUrl(url: string): string {
return truncate(url, MAX_URL_LEN);
}

export function normalizeOrigin(origin: string): string {
if (origin.endsWith('/')) {
return origin.slice(0, origin.length - 1)
}

return origin;
}

0 comments on commit fd7470e

Please sign in to comment.