1.2.0 • Published 3 years ago
@jundao/zut v1.2.0
Pretty error overlay for browser side JS errors.
  Zut (French word for "damn", pronouced /zyt/)
Features
- UI Agnostic - Built with vanilla JS and DOM & works with any framework.
- Useful - Uses source maps when available to preview the exact source code.
- Language Agnostic - Config options for extending default preview languages.
- Type Safe - Entirely coded in Typescript.
- Modern - Uses the latest available ES & CSS features.
Usage
Install @jundao/zut:
npm install @jundao/zut
# or
yarn add @jundao/zut
# or
pnpm add @jundao/zutImport and run:
import Zut from "@jundao/zut";
try {
  yourCode();
} catch (error) { // Supports any throwable
  new Zut(error);
}:sparkles: All done!
API
.close()
Programmatically close the overlay.
const zut = new Zut(error);
zut.close();Options
interface ZutOptions {
  maxHighlightLenght?: number;
  noStacktraceTranslation?: string;
  unknownTranslation?: string;
  toggleMutedTranslation?: string;
  presetExtension?: Record<string, string>;
  mutedEntries?: RegExp[];
  closable?: boolean;
  theme?: Partial<ZutTheme>;
}maxHighlightLenght
Maximum code length to highlight (freezes on large files).
new Zut(error, {
  maxHighlightLenght: 4000, // length in characters
});noStacktraceTranslation, unknownTranslation, toggleMutedTranslation
new Zut(error, {
  noStacktraceTranslation: "No Stacktrace",
  unknownTranslation: "Unknown",
  toggleMutedTranslation: "Show All",
});presetExtension
Preview highlight languages (values from highlight.js) per file extension (key).
new Zut(error, {
  presetExtension: {
    coffee: "coffeescript",
  },
});mutedEntries
Stacklist entries to mute (regex matched on file path).
new Zut(error, {
  mutedEntries: [
    /my_folder/,
  ],
});closable
Whether the overlay should close when clicked outside. (defaults to true)
new Zut(error, {
  closable: false,
});theme
interface ZutTheme {
  background: string; // color
  activeBackground: string; // color
  hoverBackground: string; // color
  highlightedBackground: string; // color
  textColor: string; // color
  mutedOpacity: number; // from 0 to 1
  accentColor: string; // color
  sansFont: string; // font name
  monoFont: string; // font name
}new Zut(error, {
  theme: {
    background: "#000",
    ...
}});Contributing
Before contributing please refer to CONTRIBUTING.md.
All contributions are moderated under the Contributor Covenant Code of Conduct.