React friendly API wrapper around MapboxGL JS

Overview

version build downloads

react-map-gl | Docs

react-map-gl is a suite of React components designed to provide a React API for Mapbox GL JS-compatible libraries. More information in the online documentation.

See our Design Philosophy.

Installation

Using react-map-gl requires react >= 16.3.

npm install --save react-map-gl

Example

import * as React from 'react';
import ReactMapGL from 'react-map-gl';

function Map() {
  const [viewport, setViewport] = React.useState({
    latitude: 37.7577,
    longitude: -122.4376,
    zoom: 8
  });

  return (
    <ReactMapGL
      {...viewport}
      width="100%"
      height="100%"
      onViewportChange={(viewport) => setViewport(viewport)}
    />
  );
}

Using Mapbox Tokens

Starting with v2.0, mapbox-gl requires a Mapbox token for any usage, with or without the Mapbox data service. See about Mapbox tokens for your options.

To show maps from a service such as Mapbox you will need to register on their website in order to retrieve an access token required by the map component, which will be used to identify you and start serving up map tiles. The service will be free until a certain level of traffic is exceeded.

There are several ways to provide a token to your app, as showcased in some of the example folders:

  • Provide a mapboxApiAccessToken prop to the map component
  • Set the MapboxAccessToken environment variable (or set REACT_APP_MAPBOX_ACCESS_TOKEN if you are using Create React App)
  • Provide it in the URL, e.g ?access_token=TOKEN
  • Provide mapboxApiUrl prop to the map component to override the default mapbox API URL

But we would recommend using something like dotenv and put your key in an untracked .env file, that will then expose it as a process.env variable, with much less leaking risks.

Limitations

This library provides convenient wrappers around initializing and (to some degree) tracking the state of a Mapbox WebGL map. Because most of the functionality of Mapbox's JS API depends on the use of HTML5 canvases and WebGL, which React is not built to manipulate, the React component does not mirror all the functionality of Mapbox GL JS's Map class. You may access the native Mapbox API exposed by the getMap() function in this library. However, proceed with caution as calling the native APIs may break the connection between the React layer props and the underlying map state.

Examples of replacing common native API calls with their React equivalents can be found on the FAQ page.

Contribute

See contribution guide.

Comments
  • > 200 markers cause map slow when dragging

    > 200 markers cause map slow when dragging

    Hi,

    When I render more than 200 markers, I notice the map start moving very slow when dragging. I have no issue with mapbox-gl-js, even with more than 400 markers written in React.

    I decided to switch to react-map-gl because I wrote all markers and popup in React. It becomes cumbersome when integrating mapbox-gl-js with these components.

    I can't change those markers to layer as I need to render 'complex' content (with html, css, etc.) I have tried to improve the performance by adding conditions to shouldComponentUpdate to only update when zoom, lat long, width, height changes. Also using memo or PureComponent for markers, popup. The performance gets slightly better but still, dragging around the map is slow.

    Can anyone advice if is there a solution for my issue please? Thank you.

    opened by thanhphuong612 42
  • Integrating Mapbox's Supercluster with react-map-gl

    Integrating Mapbox's Supercluster with react-map-gl

    Hello! As my title suggests, since mapbox-gl already supports supercluster internally with newly updated spiderfying and other cool jazz, I am wondering if there is a best practice or if anyone has had the experience implementing a clustering layer within react-map-gl wrapper. Or something similar to this?

    opened by winston-bosan 33
  • Click event isn't fired on the original map

    Click event isn't fired on the original map

    Since https://github.com/uber/react-map-gl/pull/565 landed in 3.3.4, the original map layer doesn't capture clicks anymore

    const map = this.mapRef.getMap();
    map.on('click', e => {
      console.log(e);
      // nothing gets logged
    });
    

    This makes it impossible to use certain features, such as handling clicks on clusters for example.

    Is there a way to get the clicks to be passed to the original map layer?

    bug feature 
    opened by vkammerer 30
  • viewport-mercator-project assertion failed

    viewport-mercator-project assertion failed

    I realise that the title relates to another Uber project - viewport-mercator-project, however it looks rather quiet there and I'm using this package within my React app, I thought here might be a better option.

    I've tried to render a Map within a Create React App project: react v: 16.5.2 react-map-gl v: 4.0.2

    When navigating to the page with the Map component, it resulted in this error in the Chrome console

    0efa13d7437878dc03536a9dedddbbf1a8d59712.js:1 Error: viewport-mercator-project: assertion failed.
        at C (0efa13d7437878dc03536a9dedddbbf1a8d59712.js:1)
        at 0efa13d7437878dc03536a9dedddbbf1a8d59712.js:1
        at t.value (0efa13d7437878dc03536a9dedddbbf1a8d59712.js:1)
        at t.value (0efa13d7437878dc03536a9dedddbbf1a8d59712.js:1)
        at 0efa13d7437878dc03536a9dedddbbf1a8d59712.js:1
        at eo (0efa13d7437878dc03536a9dedddbbf1a8d59712.js:1)
        at ko (0efa13d7437878dc03536a9dedddbbf1a8d59712.js:1)
        at Io (0efa13d7437878dc03536a9dedddbbf1a8d59712.js:1)
        at pa (0efa13d7437878dc03536a9dedddbbf1a8d59712.js:1)
        at la (0efa13d7437878dc03536a9dedddbbf1a8d59712.js:1)
    

    The React Map component:

    import React, { PureComponent } from "react";
    import PropTypes from "prop-types";
    import { merge } from "ramda";
    import MapGL, { Marker } from "react-map-gl";
    import Pin from "./Pin";
    
    class LocationMap extends PureComponent {
      static displayName = "LocationMap";
      static propTypes = {
        lat: PropTypes.number,
        lng: PropTypes.number,
        zoom: PropTypes.number,
        pinSize: PropTypes.number
      };
      static defaultProps = {
        pinSize: 20
      };
    
      state = {
        viewport: {
          width: "100%",
          height: 400,
          latitude: 53.795231,
          longitude: -1.54511300000001,
          zoom: 15
        }
      };
    
      render() {
        const { pinSize } = this.props;
        const propsData = { latitude: this.props.latitude, longitude: this.props.longitude };
        const mapConfig = merge(this.state.viewport, propsData);
    
        return (
          <MapGL
            mapboxApiAccessToken={process.env.REACT_APP_MAPBOX_TOKEN}
            onViewportChange={viewport => this.setState({ ...viewport, width: "100%" })}
            {...mapConfig}
          >
            <Marker latitude={this.props.latitude} longitude={this.props.longitude}>
              <Pin size={pinSize} />
            </Marker>
          </MapGL>
        );
      }
    }
    
    export default LocationMap;
    
    

    Does anyone have any ideas about how to resolve this? Perhaps fixing the version of react-map-gl to "^3.." ?

    feature 
    opened by tmhn 28
  • Create example that bundles react-map-gl using webpack

    Create example that bundles react-map-gl using webpack

    react-map-gl is only tested using browserify, and unfortunately it appears to be non trivial getting react-map-gl and mapbox-gl-js working with webpack.

    While we are not ready to commit to formal support for webpack, it would be great to have an example that could serve as a starting point for webpack users.

    docs 
    opened by ibgreen 27
  • DrawControl

    DrawControl

    Is there a way to add a mapbox-gl-draw control to <ReactMapGL>? I was able to get it to appear on the screen by using ref to get a reference to the react component, which allowed me to access the underlying mapbox with getMap(). On that reference was able to successfully call addControl and though it appears correctly, it does not seem to be functioning. Is there anyone who has done this before and can help me out? Even if it's not actually by linking mapbox-gl-draw, any way to allow the user to interactively draw polygons/linestrings in a way that emits events that can be subscribed to would solve my problem. Thanks in advance!

    opened by DeMol-EE 26
  • Building in webpack throws error

    Building in webpack throws error

    ERROR in ./~/glify/index.js
    Module not found: Error: Cannot resolve module 'fs' in /root/RelateRocket/webapp/node_modules/glify
     @ ./~/glify/index.js 5:9-22
    
    opened by KyleAMathews 26
  • RFC: react-map-gl v7.0

    RFC: react-map-gl v7.0

    Background

    react-map-gl was originally created by Uber's visualization team to work with deck.gl. Aside from providing a React-friendly wrapper for Mapbox GL JS, it currently also addresses use cases including:

    • Provide a base map layer for other visualization overlays, most extensively used in deck.gl and kepler.gl.
    • A source of React map components without mapbox-gl dependency, including Marker, Popup and NavigationControl

    The project was transferred to the Urban Computing Foundation in April 2020.

    Issues with the current code base

    Diverged dependencies

    react-map-gl currently have two releases in production:

    • v5.3 supports mapbox-gl v1 and maplibre-gl
    • v6.1 supports mapbox-gl v2

    The divergence happened when Mapbox changed its license, see https://github.com/visgl/react-map-gl/discussions/1380. It has become increasingly difficult to maintain as Maplibre and Mapbox start making more aggressive breaking changes.

    Override of the native event handling

    react-map-gl disables mapbox-gl's native event handling and implements its own. This is arguably the one most controversial design decision of this project, dated back to before the current maintainers were involved. Lengthy discussions have been had (e.g. #569, https://github.com/mapbox/mapbox-gl-js/issues/3746, #725) and continues to generate hard-to-resolve feature requests (#574, #1640, #1353, #775) and performance issues (#1151, #909).

    Despite major efforts to improve the usability of the custom controller, it still has many open issues. The code base is quite complex already, with few developers able to navigate and contribute. Considering the complexity of the task, it is unlikely for the current release to support Mapbox's non-WebMercator projection feature in its current state.

    Proposal

    This RFC is gathering feedback for the following major breaking changes proposed for react-map-gl v7.

    • Make mapbox-gl a peer dependency so that the library is impartial about the version/fork used.
    • Drop the usage of mjolnir.js' EventManager and subsequently MapController altogether. Instead, we will pursue exposing mapbox-gl's native event system and attempt to hijack the camera change under the hood.
    • This will allow users to use the latest rendering and interactive options when they are released by Mapbox.
    • 3rd-party Mapbox addons will be supported by default.
    • We can add a stateful version of MapGL that renders fully asynchronously without any performance impact.
    • Remove transition interpolator classes and use native methods such as Map.flyTo and Map.easeTo.
    • Custom MapController classes will stop working.
    • Remove the overlay classes.
    • Components such as Marker, Popup etc. will no longer be mapbox-independent. We will use React portal to render them into mapbox-gl's control container, instead of floating outside of the map container. deck.gl applications that render these components as children of DeckGL will stop working. I propose we move some of the current code to a new React component library that is independent from mapbox-gl.
    • Rewrite the code base in TypeScript.

    The goal is to have a code base that is less demanding to maintain, and more focused on the most common use cases. To achieve this, we have to drop some niche use cases and/or move their support to other projects.

    opened by Pessimistress 25
  • Unable to use react-map-gl in create-react-app

    Unable to use react-map-gl in create-react-app

    Did someone manage to make it work in create-react-app ?

    I got this error:

    index.js:9Uncaught TypeError: Cannot convert undefined or null to object
        at Function.keys (<anonymous>)
        at new module.exports (index.js:9)
        at Object.<anonymous> (web_worker.js:5)
        at __webpack_require__ (bootstrap 6c4040e…:555)
        at fn (bootstrap 6c4040e…:86)
        at Object.<anonymous> (worker_pool.js:4)
        at __webpack_require__ (bootstrap 6c4040e…:555)
        at fn (bootstrap 6c4040e…:86)
        at Object.<anonymous> (global_worker_pool.js:2)
        at __webpack_require__ (bootstrap 6c4040e…:555)
    

    My component is quite simple

    import React from 'react';
    import MapGL from 'react-map-gl';
    #
    const MAPBOX_TOKEN = 'xxxx';
    
    export function Map() {
      return (
        <div>
          <MapGL
            width={400}
            height={400}
            latitude={37.7577}
            longitude={-122.4376}
            zoom={8}
            mapboxApiAccessToken={MAPBOX_TOKEN}
            onChangeViewport={ (viewport) => {
              const { latitude, longitude, zoom } = viewport;
              // Optionally call `setState` and use the state to update the map.
            }}
          />
        </div>
      );
    }
    

    Thank you in advance for taking interest in this issue.

    opened by gauthierrodaro 21
  • Locate User example not working when used in CRA

    Locate User example not working when used in CRA

    when i try to add the same code to a component and then call it within my react app i keep getting the following error,

    mapbox-gl.js:33 Uncaught TypeError: Cannot read property 'getMaxBounds' of undefined
        at o._isOutOfMapMaxBounds (mapbox-gl.js:33)
        at o._onSuccess (mapbox-gl.js:33)
    

    Map settings are the same as in the example.

    In general all other (that i am using) features are working.

    Any help would be appreciated

    opened by woss 20
  • Is there an API I can use for calling setLayoutProperty method on the map instance?

    Is there an API I can use for calling setLayoutProperty method on the map instance?

    The mapbox API provides setLayoutProperty method for developers to change the layout property of a map instance, such as the language:

    According to mapbox API, I can use it in this way:

    var map = new mapboxgl.Map({
        container: 'map',
        style: 'mapbox://styles/mapbox/light-v9',
        center: [16.05, 48],
        zoom: 2.9
    });
    
    // and the new property value.
    map.setLayoutProperty('country-label-lg', 'text-field', ['get', 'name_zh']);
    

    I am developing project with react-map-gl and deck.gl, I use StaticMap exactly in my project and need to change the display language of maps.

    But after looking through the docs of react-map-gl and StaticMap file, I couldn't find a method to achieve that.

    I found that StaticMap provides a method called getMap():

    https://github.com/uber/react-map-gl/blob/cb173b0ac405c42200ddfdaad5a6bed96d665fbf/src/components/static-map.js#L174-L176

    But when I use this method to make changes to map instance, there's nothing happened.

    const map = this.refMap.current.getMap();
    
    map.on(
    	'load', 
    	() => map.setLayoutProperty('country-label-lg', 'text-field', ['get', 'name_zh-Hans'])
    );
    ...
    
    render() {
    	return (
    		<StaticMap ref={e => {this.refMap = e;}} >
    	);
    }
    
    opened by hijiangtao 19
  • Direct way to store polygons in Databases [Feat]

    Direct way to store polygons in Databases [Feat]

    Target Use Case

    I want to be able to use the draw polygon example in my Projects but I don't know what is a good way to store it in a database, I would request for a feature and data encoding for these polygons in such a way that I can easily add it to a db table.

    Proposal

    We can think of some sort of encoding or representation of the Polygons and then sending that as a callback after one polygon is created or deleted, and also some sort of a unique ID or standard encoding might help. Not sure about the computational geometry that we can use in this, But This might be pretty useful for people.

    feature 
    opened by SoulPancake 1
  • fix `reuseMaps` actions wrong expectations

    fix `reuseMaps` actions wrong expectations

    In this PR I have solved issue #2071 I've tried and created a temporary release in the meantime, you can check out the results here, this forked from issue report.

    Please review and review it, many thanks. ^^

    cc @Pessimistress @theRuslan

    opened by lh0x00 0
  • [Bug] draw polygon don't work with projection globe

    [Bug] draw polygon don't work with projection globe

    Description

    Unexpected behaviour when projection is globe - polygon is not closed by clicking on vertex or same issue after flyTo animation

    Expected Behavior

    No response

    Steps to Reproduce

    https://visgl.github.io/react-map-gl/examples/draw-polygon with projection "globe"

    Environment

    • Framework version: latest
    • Map library: mabox-gl 2
    • Browser: chrome
    • OS: macos 13

    Logs

    No response

    bug 
    opened by 383bd03d 6
  • [Bug] When 3D Terrain is enabled, updating state in React causes Markers to render in their original locations, instead of on top of the terrain.

    [Bug] When 3D Terrain is enabled, updating state in React causes Markers to render in their original locations, instead of on top of the terrain.

    Description

    When I add Markers to a Map and have 3D Terrain enabled, I noticed that changing state in React causes the markers to render in their original location on the map, rather than their modified 3D Terrain location. I'm not sure the technical words to use for this.

    I've created a Code Sandbox as basic as possible to show this behavior. It sounds like this is the preferred way of sharing/showing potential bugs.

    I couldn't find any issues that were related to this, but perhaps this closed issue is along the same vein?

    I'd be happy to help in however I can, but I'll wait to hear back! Thank you!

    Expected Behavior

    Changing state in React will still keep Markers in their existing position on the 3D Terrain.

    Steps to Reproduce

    react-map-gl | 3D Terrain with Locations as Markers

    You can click the Second of the the two buttons in that Code Sandbox demo, which reads "Change State," to see the behavior. Then, if you click and drag to change the map's view state, you can see the Markers render to the correct location on what I assume is the next React state change.

    I didn't use the boiler plate template, because it's configured for a very old version of React. I just used the most up-to-date Create React App template.

    Edit: I created this nearly identical demo, react-map-gl | 3D Terrain with Locations as Layer (Symbols), but with the differences indicated in its name. It uses a layer of symbols instead of markers. This is what I would hope that the Markers would do, but I'm guessing it has something to do with rendering on top of the canvas rather than inside of it? Just a little more investigating by me.

    Environment

    Logs

    No response

    bug 
    opened by joshkautz 2
  • [Feat] Add onStyleImageMissing callback for Map

    [Feat] Add onStyleImageMissing callback for Map

    Target Use Case

    Mapbox throws a warning when you try to load an image that hasn't been added.

    Image [...] could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.

    They have a new map event, styleimagemissing, that I think should be exposed by this React Wrapper. Unless this is already an event type that's supported with another callback handler that I've been overlooking.

    Proposal

    The usage might look something like this. I'm happy to help contribute in this feature if it's something that folks think would be good to add. I'll wait to hear back from a maintainer first though 😄

    <Map
       {...initialViewState}
       mapboxAccessToken={MAPBOX_TOKEN}
       projection={'globe'}
       style={{ position: 'absolute', top: '0', bottom: '0', left: '0', right: '0' }}
    
       onStyleImageMissing={evt => {
          evt.target.loadImage(
             "./icons/mapbox-marker-icon-20px-red.png",
             (error, image) => {
                if (error)
                   throw error;
                evt.target.addImage(mapImages.Default, image);
             }
          );
       }}
    />
    
    feature 
    opened by joshkautz 3
  • Bump express from 4.17.2 to 4.18.2

    Bump express from 4.17.2 to 4.18.2

    Bumps express from 4.17.2 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(v6.1.21)
Owner
Vis.gl
Frameworks for WebGL-powered large-scale data visualization
Vis.gl
:leaves: JavaScript library for mobile-friendly interactive maps

Leaflet is the leading open-source JavaScript library for mobile-friendly interactive maps. Weighing just about 39 KB of gzipped JS plus 4 KB of gzipp

Leaflet 36.5k Jan 1, 2023
A simple web extension that redirects Twitter, YouTube, Instagram & Google Maps requests to privacy friendly alternatives.

Get Donate FIRO aEyKPU7mwWBYRFGoLiUGeQQybyzD8jzsS8 BTC: 3JZWooswwmmqQKw5iW6AYFfK5gcWTrvueE ETH: 0x90049dc59365dF683451319Aa4632aC61193dFA7 About A web

Simon Brazell 1.6k Dec 29, 2022
A modern study React component of leaflet draw for react-leaflet

React Leaflet Draft A modern study React component of leaflet draw for react-leaflet React component of leaflet-draw for react-leaflet Table of conten

Giovane Santos Silva 16 Oct 20, 2022
React components for Leaflet maps

React Leaflet React components for Leaflet maps. Documentation Getting started API reference Changes See the CHANGELOG file. Contributing See the CONT

Paul Le Cam 4.4k Jan 3, 2023
Mapbox JavaScript API, a Leaflet Plugin

mapbox.js A Mapbox plugin for Leaflet, a lightweight JavaScript library for traditional raster maps. For the state-of-the-art Mapbox vector maps libra

Mapbox 1.9k Dec 23, 2022
Node.js REST API for PostGres Spatial Entities. AKA: SpatialServer

PGRestAPI (a.k.a. Chubbs Spatial Server) Overview Node.js REST API for PostgreSQL Spatial Tables. An introduction to PGRestAPI can be found here A few

SpatialDev 429 Dec 9, 2022
A web based data mining tool for OpenStreetMap using the Overpass API.

overpass turbo https://overpass-turbo.eu/ – stable version https://tyrasd.github.io/overpass-turbo/ – latest version This is a GUI for testing and dev

Martin Raifer 607 Dec 29, 2022
Implements the tilelive API for generating vector tiles from PostGIS

tilelive-postgis Implements the tilelive API for generating mapnik vector tiles from PostGIS. Installation npm install @mapbox/tilelive tilelive-postg

Stepan Kuzmin 50 Dec 12, 2022
This map is tracking the position of ISS(international space setallite) at every 1 second. I use Nasa's "where the iss" API and "Leaflet.js" for the map.

ISS-tracking-map About This map is tracking the position of ISS(international space setallite) at every 1 second. I use Nasa's "where the iss" API and

Waz.sheeran 2 Oct 25, 2021
MERN stack travel app using mapbox API, Travel and drop pin , share reviews and rate the location

MERN-Travel-Map Travel Map Pin A single page application built with MERN Stack from scratch (MongoDB + Mongoose, Express, React & NodeJs) Table of Con

Bùi Quốc Trọng 11 Dec 29, 2022
React friendly API wrapper around MapboxGL JS

react-map-gl | Docs react-map-gl is a suite of React components designed to provide a React API for Mapbox GL JS-compatible libraries. More informatio

Vis.gl 6.9k Jan 2, 2023
spotify.ts is an wrapper built around Spotify's Web API

spotify.ts About spotify.ts is an wrapper built around Spotify's Web API. Features Fast Object Oriented Typescript, ESM, CJS support Easy to Use Insta

null 6 Nov 17, 2022
A tiny wrapper built around fetch with an intuitive syntax. :candy:

Wretch A tiny (~ 3Kb g-zipped) wrapper built around fetch with an intuitive syntax. f[ETCH] [WR]apper Wretch 1.7 is now live ?? ! Please check out the

Julien Elbaz 2.7k Jan 3, 2023
Thin wrapper around Rant-Lang for Obsidian.md

Obsidian Rant-Lang Thin wrapper around the Rant language Rust crate to be used in Obsidian. "Rant is a high-level procedural templating language with

Leander Neiss 10 Jul 12, 2022
A thin wrapper around arweave-js for versioned permaweb document management.

?? ar-wrapper A thin wrapper around arweave-js for versioned permaweb document management. Helps to abstract away complexity for document storage for

verses 8 May 12, 2022
A simple nodejs module which is wrapper around solc that allows you to compile Solidity code

Simple Solidity Compiler It's a simple nodejs module which is wrapper around solc that allows you to compile Solidity code and get the abi and bytecod

King Rayhan 4 Feb 21, 2022
A nuxt 2 wrapper around derrickreimer/fathom-client to be able to use usefathom.com in all its glory

This package is a nuxt 2 wrapper around derrickreimer/fathom-client to be able to use usefathom.com in all its glory. Thanks to @derrickreimer for this framework agnostic library ❤️‍??.

wellá 6 Aug 18, 2022
A tiny wrapper around pg that makes PostgreSQL a lot of fun to use. Written in TypeScript.

A tiny wrapper around pg that makes PostgreSQL a lot of fun to use. Written in TypeScript.

Mojolicious 8 Nov 29, 2022
A maybe slightly safer-ish wrapper around eval Function constructors

evalish A maybe slightly safer-ish wrapper around eval Function constructors Please maybe try something else first.. Please. evalish is a small helper

Phil Pluckthun 24 Sep 6, 2022
A jQuery plugin wrapper around Bootstrap Alerts, to create Notifications (Toasts)

bootstrap-show-notification A jQuery plugin wrapper around Bootstrap 4 Alerts, to show them as toasts (also called notifications) dynamically from Jav

Stefan Haack 10 Aug 22, 2022