Sha256: 8576c3ea023a55dc3f6ca98361669f722b2b04cc75a708d5af1ee3bc88128ac3

Contents?: true

Size: 1.62 KB

Versions: 23

Compression:

Stored size: 1.62 KB

Contents

import { get } from "@rails/request.js";

export async function getHTML(url: string): Promise<string> {
  const response = await get(url, { headers: { "X-Shimmer": "true" } });
  if (response.ok) {
    return await response.response.text();
  }
  return "";
}

export const loaded: Promise<void> = new Promise((res) => {
  document.addEventListener("DOMContentLoaded", () => {
    res();
  });
});

export async function nextFrame(): Promise<void> {
  return new Promise((res) => {
    setTimeout(res, 10);
  });
}

export function createElement(
  parent: HTMLElement,
  className: string
): HTMLDivElement {
  const element = document.createElement("div");
  element.className = className;
  parent.append(element);
  return element;
}

export function guid(): string {
  function s4(): string {
    return Math.floor((1 + Math.random()) * 0x10000)
      .toString(16)
      .substring(1);
  }
  return [s4() + s4(), s4(), s4(), s4(), s4() + s4() + s4()].join("-");
}

export function wait(seconds: number): Promise<void> {
  return new Promise((res) => {
    setTimeout(res, seconds * 1000);
  });
}

export function getCookie(key: string): string | null {
  if (!document.cookie) return null;
  return (
    document.cookie
      .split(";")
      .map((v) => v.split("="))
      .reduce((acc, v) => {
        acc[decodeURIComponent(v[0].trim())] = decodeURIComponent(v[1].trim());
        return acc;
      }, {})[key] ?? null
  );
}

export function setCookie(key: string, value: string): void {
  const date = new Date();
  date.setTime(date.getTime() + 365 * 24 * 60 * 60 * 1000);
  document.cookie = `${key}=${value}; expires=${date.toUTCString()}`;
}

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
shimmer-0.0.41 src/util.ts
shimmer-0.0.40 src/util.ts
shimmer-0.0.39 src/util.ts
shimmer-0.0.38 src/util.ts
shimmer-0.0.37 src/util.ts
shimmer-0.0.36 src/util.ts
shimmer-0.0.35 src/util.ts
shimmer-0.0.34 src/util.ts
shimmer-0.0.33 src/util.ts
shimmer-0.0.32 src/util.ts
shimmer-0.0.31 src/util.ts
shimmer-0.0.30 src/util.ts
shimmer-0.0.29 src/util.ts
shimmer-0.0.28 src/util.ts
shimmer-0.0.27 src/util.ts
shimmer-0.0.26 src/util.ts
shimmer-0.0.25 src/util.ts
shimmer-0.0.24 src/util.ts
shimmer-0.0.23 src/util.ts
shimmer-0.0.22 src/util.ts