npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@enjoytech/logging-api

v5.2.3

Published

Enjoy Javascript Logging API

Downloads

17

Readme

Javascript Logging API

Dependencies

This library is using async / await and Promise and will therefore you must provide a polyfill for generators in older browsers. @babel/polyfill is good catch-all to provide that functionality and many others.

Endpoint Configuration

The D3 API endpoint URL and path is determined by window.location.hostname

UK: https://event-logging.uk.enjoy.com/prod/<source>

US: https://event-logging.enjoy.com/prod/<source>

The source is determined by the domain name. When the domain name is enjoy.com this is set to expert, otherwise it is set to internal.

Examples:

  • A development server at https://capcom.local.enjoytechnology.com will use the endpoint https://event-logging.enjoy.com/prod/internal
  • A staging server at https://unicorn.stg.enjoytechnology.com will use the endpoint https://event-logging.enjoy.com/prod/internal
  • A production UK server at https://capcom.uk.enjoy.com will use the endpoint https://event-logging.uk.enjoy.com/prod/expert
  • A production US server at https://capcom.enjoy.com will use the endpoint https://event-logging.enjoy.com/prod/expert

Config Options

developmentMode

boolean: (optional) Enables development mode

endpoint

string: (optional) [development mode only] A custom endpoint to send log events to. Override default endpoint configuration (above)

environment

string: (optional) [development mode only] Override default environment configuration (above)

source

string: (optional) [development mode only] Override default source configuration (above)

eventSource

string: (optional) Include a custom value in the source when logging. Will default to <hostname>/client, but specifying this will set it to <hostname>/<eventSource>

eventPrefix

string: (optional) Prefix all events logged with logEvent with the specified string

appStateMethod

() => object | Promise<object>: (optional) If you app has global state that you would like to be recorded with every event, you can provide a method that will return the serializable object representing that state. This can also return a Promise which will be resolved before recording the event. NOTE: This will be sent with every event, so be aware of the total size of the state you are sending down.

Usage

import LoggingApi from 'logging-api'
import store from './myReduxStore'

const config = {
  eventSource: 'my-source',
  eventPrefix: 'mysrc_',
  // Synchronous app state example, but this could also return a Promise
  appStateMethod: () => store.getState(),
}

const logger = new LoggingAPI(config)

logger.logEvent('my_event_name', { foo: 'bar' })
// Will emit an event named `mysrc_my_event_name`