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

@javascriptnotebook/local-client

v1.0.1

Published

This coding notebook is the JavaScript equivalent of the Jupyter Python Notebook. You can add multiple code cells, add code to the cells, and preview the output in the adjacent preview window. You can also add a markdown cells to take notes, with a previe

Downloads

9

Readme

Indepth JavaScript - JavaScript Coding Notebook built with React, TypeScript, and Redux

This coding notebook is the JavaScript equivalent of the Jupyter Python Notebook. You can add multiple code cells, add code to the cells, and preview the output in the adjacent preview window. You can also add a markdown cells to take notes, with a preview window included for each cell.

Cumlative Code Execution

Just like a Jupyter Notebook, this coding notebook has cumlative code execution. Any variable or function defined in a previous code cell is avaliable in the current code cell.

ESBuild and Unpkg for Transpiling and Bundling Code

I use ESBuild to quickly transpile and bundle code inputted by user in code cells - it's actually much faster than webpack.

Also user can import almost any npm module by placing import statement in the code cell. You can import React from 'react' or any other npm module you may need.

The npm imports are handled with a custom ESBuild plugins that checks the input code for import statements, and uses Unpkg to obtain the npm package. The npm packages are cached to the browser (using localForage), to improve performance.

Monaco Editor for inputting and editing code in Code Cells

Implimented Monaco Editor to provide best user experience. It's the same editor used in VS Code.

I've configured this Editor to provide basic syntax error checking, syntax coloring, and IntelliSence.

Plus, I added a Format button at the upper right of each code cell that when clicked uses Prettier to format the user inputed code.

For the Markdown editor used react md editor.

Secure Code Sandbox using an iframe

Created a secure code sandbox by executing the transpiled and bundled code in an iframe, and submitting the code to that iframe using postMessage. There is an EventListener in the iframe that listens for the message, and once recieved, executes the code.

show() function - display variables, objects, JSX, or even a React components to the preview screen

Created a custom show() function that allows the user to output any variable, object, JSX, or React component to the preview screen.

Redux Store is used to handle all state management