Files
talk/src/core/client/count/getCurrentScriptOrigin.ts
T
VinhandWyatt Johnson 3bfcc509d2 [CORL-678] Transition to eslint (#2634)
* chore: setup eslint

* chore: tslint checks with types & check for import order

* chore: complete eslint transition

* fix: tests

* fix: linting after rebase, faster lint for lint-staged

* chore: remove line

* fix: lint rules

* feat: add a11y linter and fix errors

* fix: tests
2019-10-15 22:56:38 +00:00

26 lines
862 B
TypeScript

/**
* getCurrentScriptOrigin will try to find the script origin.
* For legacy browsers a fallbackIdentifier is required.
*
* @param fallbackID id attached to a script tag to get its origin from for legacy browsrs.
*/
function getCurrentScriptOrigin(fallbackID?: string) {
// Find current script (modern browsers).
let script = document.currentScript as HTMLScriptElement | null;
if (!script && fallbackID) {
// Find script tag with `fallbackIdentifier` as its id.
script = document.getElementById(fallbackID) as HTMLScriptElement | null;
if (!script) {
// Find script tag with `fallbackIdentifier` as its className.
script = document.querySelector(`.${fallbackID}`);
}
}
if (!script) {
throw new Error("Current script not found");
}
return new URL(script.src).origin;
}
export default getCurrentScriptOrigin;