@koine/browser 2.0.0-beta.15 → 2.0.0-beta.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/createStorage.js CHANGED
@@ -1,10 +1,6 @@
1
1
  import { __assign } from "tslib";
2
- import decode from "@koine/utils/decode";
3
- import encode from "@koine/utils/encode";
4
- import isBrowser from "@koine/utils/isBrowser";
5
- import isNullOrUndefined from "@koine/utils/isNullOrUndefined";
6
- import noop from "@koine/utils/noop";
7
- import on from "@koine/dom/on";
2
+ import { decode, encode, isBrowser, isNullOrUndefined, noop, } from "@koine/utils";
3
+ import { on } from "@koine/dom";
8
4
  import storage from "./storage.js";
9
5
  export var createStorage = function (config, useSessionStorage) {
10
6
  var client = useSessionStorage ? storage.s : storage.l;
package/getZonedDate.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import utcToZonedTime from "date-fns-tz/utcToZonedTime";
2
- import isBrowser from "@koine/utils/isBrowser";
2
+ import { isBrowser } from "@koine/utils";
3
3
  export function getZonedDate(dateString, timeZone) {
4
4
  if (dateString === void 0) { dateString = ""; }
5
5
  if (!dateString.endsWith("Z"))
package/gtagPageview.js CHANGED
@@ -1,4 +1,4 @@
1
- import isUndefined from "@koine/utils/isUndefined";
1
+ import { isUndefined } from "@koine/utils";
2
2
  export var gtagPageview = function () {
3
3
  var args = [];
4
4
  for (var _i = 0; _i < arguments.length; _i++) {
package/index.d.ts CHANGED
@@ -3,6 +3,8 @@ export { getZonedDate } from "./getZonedDate.js";
3
3
  export { gtagPageview, type GtmPageviewArgs } from "./gtagPageview.js";
4
4
  export { isIE } from "./isIE.js";
5
5
  export { isMobile } from "./isMobile.js";
6
+ export { listenUrlSearch } from "./listenUrlSearch.js";
7
+ export { listenUrlSearchParams } from "./listenUrlSearchParams.js";
6
8
  export { navigateToHash } from "./navigateToHash.js";
7
9
  export { navigateToHashParams } from "./navigateToHashParams.js";
8
10
  export { navigateToMergedHashParams } from "./navigateToMergedHashParams.js";
package/index.js CHANGED
@@ -3,6 +3,8 @@ export { getZonedDate } from "./getZonedDate.js";
3
3
  export { gtagPageview } from "./gtagPageview.js";
4
4
  export { isIE } from "./isIE.js";
5
5
  export { isMobile } from "./isMobile.js";
6
+ export { listenUrlSearch } from "./listenUrlSearch.js";
7
+ export { listenUrlSearchParams } from "./listenUrlSearchParams.js";
6
8
  export { navigateToHash } from "./navigateToHash.js";
7
9
  export { navigateToHashParams } from "./navigateToHashParams.js";
8
10
  export { navigateToMergedHashParams } from "./navigateToMergedHashParams.js";
package/isIE.js CHANGED
@@ -1,4 +1,4 @@
1
- import isServer from "@koine/utils/isServer";
1
+ import { isServer } from "@koine/utils";
2
2
  export function isIE(ssrValue) {
3
3
  if (ssrValue === void 0) { ssrValue = true; }
4
4
  if (isServer) {
package/isMobile.js CHANGED
@@ -1,4 +1,4 @@
1
- import isServer from "@koine/utils/isServer";
1
+ import { isServer } from "@koine/utils";
2
2
  export function isMobile(ssrValue) {
3
3
  if (ssrValue === void 0) { ssrValue = true; }
4
4
  if (isServer) {
@@ -0,0 +1,3 @@
1
+ type Handler = (prevLocationSearch: string, newLocationSearch: string) => void;
2
+ export declare function listenUrlSearch(handler: Handler): () => void;
3
+ export default listenUrlSearch;
@@ -0,0 +1,54 @@
1
+ import { __values } from "tslib";
2
+ import { on } from "@koine/dom";
3
+ function extendHistoryMethod(fn, runHandlers, before) {
4
+ return function interceptor() {
5
+ var args = [];
6
+ for (var _i = 0; _i < arguments.length; _i++) {
7
+ args[_i] = arguments[_i];
8
+ }
9
+ if (before) {
10
+ runHandlers();
11
+ return fn.apply(this, args);
12
+ }
13
+ var result = fn.apply(this, args);
14
+ runHandlers();
15
+ return result;
16
+ };
17
+ }
18
+ var prevSearch = location.search;
19
+ function runHandlers() {
20
+ var e_1, _a;
21
+ var newSearch = location.search;
22
+ if (newSearch !== prevSearch) {
23
+ var listeners = history.__.h.values();
24
+ try {
25
+ for (var listeners_1 = __values(listeners), listeners_1_1 = listeners_1.next(); !listeners_1_1.done; listeners_1_1 = listeners_1.next()) {
26
+ var listener = listeners_1_1.value;
27
+ listener(prevSearch, newSearch);
28
+ }
29
+ }
30
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
31
+ finally {
32
+ try {
33
+ if (listeners_1_1 && !listeners_1_1.done && (_a = listeners_1.return)) _a.call(listeners_1);
34
+ }
35
+ finally { if (e_1) throw e_1.error; }
36
+ }
37
+ }
38
+ prevSearch = newSearch;
39
+ }
40
+ export function listenUrlSearch(handler) {
41
+ if (!history.__) {
42
+ history.pushState = extendHistoryMethod(history.pushState, runHandlers);
43
+ history.replaceState = extendHistoryMethod(history.replaceState, runHandlers);
44
+ on(window, "popstate", runHandlers);
45
+ history.__ = { h: new Set() };
46
+ }
47
+ if (!history.__.h.has(handler)) {
48
+ history.__.h.add(handler);
49
+ }
50
+ return function () {
51
+ history.__.h.delete(handler);
52
+ };
53
+ }
54
+ export default listenUrlSearch;
@@ -0,0 +1,2 @@
1
+ export declare const listenUrlSearchParams: (paramName: string, handler: (paramNewValue: string | null) => void) => () => void;
2
+ export default listenUrlSearchParams;
@@ -0,0 +1,12 @@
1
+ import listenUrlSearch from "./listenUrlSearch.js";
2
+ export var listenUrlSearchParams = function (paramName, handler) {
3
+ return listenUrlSearch(function (prevSearch, newSearch) {
4
+ var prevParams = new URLSearchParams(prevSearch);
5
+ var newParams = new URLSearchParams(newSearch);
6
+ var newValue = newParams.get(paramName);
7
+ if (prevParams.get(paramName) !== newValue) {
8
+ handler(newValue);
9
+ }
10
+ });
11
+ };
12
+ export default listenUrlSearchParams;
@@ -1,3 +1,3 @@
1
- import type { AnyQueryParams } from "@koine/utils/location";
1
+ import { type AnyQueryParams } from "@koine/utils";
2
2
  export declare function navigateToHashParams(params?: string | AnyQueryParams, hash?: string): string;
3
3
  export default navigateToHashParams;
@@ -1,5 +1,4 @@
1
- import buildUrlQueryString from "@koine/utils/buildUrlQueryString";
2
- import getUrlHashPathname from "@koine/utils/getUrlHashPathname";
1
+ import { buildUrlQueryString, getUrlHashPathname, } from "@koine/utils";
3
2
  export function navigateToHashParams(params, hash) {
4
3
  if (params === void 0) { params = {}; }
5
4
  if (hash === void 0) { hash = ""; }
@@ -1,3 +1,3 @@
1
- import type { AnyQueryParams } from "@koine/utils/location";
1
+ import { type AnyQueryParams } from "@koine/utils";
2
2
  export declare function navigateToMergedHashParams(params?: NonNullable<AnyQueryParams>, hash?: string): string;
3
3
  export default navigateToMergedHashParams;
@@ -1,5 +1,4 @@
1
- import getUrlHashParams from "@koine/utils/getUrlHashParams";
2
- import mergeUrlQueryParams from "@koine/utils/mergeUrlQueryParams";
1
+ import { getUrlHashParams, mergeUrlQueryParams, } from "@koine/utils";
3
2
  import { navigateToHashParams } from "./navigateToHashParams.js";
4
3
  export function navigateToMergedHashParams(params, hash) {
5
4
  if (params === void 0) { params = {}; }
@@ -1,3 +1,3 @@
1
- import type { AnyQueryParams } from "@koine/utils/location";
1
+ import { type AnyQueryParams } from "@koine/utils";
2
2
  export declare function navigateToMergedParams(params?: NonNullable<AnyQueryParams>, replace?: boolean): string;
3
3
  export default navigateToMergedParams;
@@ -1,5 +1,4 @@
1
- import getUrlQueryParams from "@koine/utils/getUrlQueryParams";
2
- import mergeUrlQueryParams from "@koine/utils/mergeUrlQueryParams";
1
+ import { getUrlQueryParams, mergeUrlQueryParams, } from "@koine/utils";
3
2
  import { navigateToParams } from "./navigateToParams.js";
4
3
  export function navigateToMergedParams(params, replace) {
5
4
  if (params === void 0) { params = {}; }
@@ -1,3 +1,3 @@
1
- import type { AnyQueryParams } from "@koine/utils/location";
1
+ import { type AnyQueryParams } from "@koine/utils";
2
2
  export declare function navigateToParams(params?: string | AnyQueryParams, replace?: boolean): string;
3
3
  export default navigateToParams;
@@ -1,5 +1,4 @@
1
- import buildUrlQueryString from "@koine/utils/buildUrlQueryString";
2
- import isBrowser from "@koine/utils/isBrowser";
1
+ import { buildUrlQueryString, isBrowser, } from "@koine/utils";
3
2
  import navigateToUrl from "./navigateToUrl.js";
4
3
  export function navigateToParams(params, replace) {
5
4
  if (params === void 0) { params = {}; }
@@ -1,4 +1,4 @@
1
- import getUrlQueryParams from "@koine/utils/getUrlQueryParams";
1
+ import { getUrlQueryParams } from "@koine/utils";
2
2
  import navigateToParams from "./navigateToParams.js";
3
3
  export function navigateWithoutUrlParam(paramName, replace) {
4
4
  var params = {};
package/package.json CHANGED
@@ -2,8 +2,8 @@
2
2
  "name": "@koine/browser",
3
3
  "sideEffects": false,
4
4
  "dependencies": {
5
- "@koine/dom": "2.0.0-beta.15",
6
- "@koine/utils": "2.0.0-beta.15"
5
+ "@koine/dom": "2.0.0-beta.17",
6
+ "@koine/utils": "2.0.0-beta.17"
7
7
  },
8
8
  "types": "./index.d.ts",
9
9
  "type": "module",
@@ -27,6 +27,12 @@
27
27
  "./isMobile": {
28
28
  "import": "./isMobile.js"
29
29
  },
30
+ "./listenUrlSearch": {
31
+ "import": "./listenUrlSearch.js"
32
+ },
33
+ "./listenUrlSearchParams": {
34
+ "import": "./listenUrlSearchParams.js"
35
+ },
30
36
  "./navigateToHash": {
31
37
  "import": "./navigateToHash.js"
32
38
  },
@@ -59,5 +65,5 @@
59
65
  }
60
66
  },
61
67
  "peerDependencies": {},
62
- "version": "2.0.0-beta.15"
68
+ "version": "2.0.0-beta.17"
63
69
  }
package/redirectTo.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import type { AnyQueryParams } from "@koine/utils/location";
1
+ import { type AnyQueryParams } from "@koine/utils";
2
2
  export declare function redirectTo(url: string, params?: AnyQueryParams): void;
3
3
  export default redirectTo;
package/redirectTo.js CHANGED
@@ -1,5 +1,4 @@
1
- import buildUrlQueryString from "@koine/utils/buildUrlQueryString";
2
- import isBrowser from "@koine/utils/isBrowser";
1
+ import { buildUrlQueryString, isBrowser, } from "@koine/utils";
3
2
  export function redirectTo(url, params) {
4
3
  if (isBrowser) {
5
4
  var queryString = buildUrlQueryString(params);
package/storageClient.js CHANGED
@@ -1,5 +1,4 @@
1
- import isBrowser from "@koine/utils/isBrowser";
2
- import isString from "@koine/utils/isString";
1
+ import { isBrowser, isString } from "@koine/utils";
3
2
  var methodsMap = { g: "getItem", s: "setItem", r: "removeItem" };
4
3
  export var storageClient = function (useSessionStorage) {
5
4
  var nativeMethod = function (method, key, value) {