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

@sqlframes/repl-app

v2.4.0

Published

SQL Frames - REPL App

Downloads

536

Readme

SQL Frames - REPL App

SQL Frames provides low-code API to transform dataframes using familiar SQL constructs. The built-in in-memory analytics engine runs within the browser allowing data transformations right within the browser providing milli-seconds latency interactions. It allows off-loading computation from the database to the end user browser bringing cost savings to expensive cloud databases and at the same time improving productivity and user experience to end users letting them explore data with ease and gain better business insights.

This package bundles the SQL Frames low-code API along with a REPL application that can be used to interactively load data, perform data transformations and create powerful visualizations such as pivot tables and charts.

This README provides a quick introduction to the REPL application. Visit SQL Frames API to learn the API.

The REPL contains input and output sections referred to as STDIN and STDOUT.

STDIN

STDIN is provided using the monaco editor. Any valid JavaScript can be specified. Any value that needs to be displayed should be explicitly returned. For example,

const df = DataFrame.fromURL('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_week.csv');
const { groupBy, agg: { max }, where: { eq }} = SQL;
return df.gdf(groupBy('type'),max('mag'));

STDOUT

Any returned value will be displayed in the STDOUT. The return values are displayed as follows

  1. Individual values are displayed using a viewer specific to the type (class) of that value if available. For example, all the Data Frames in SQL Frames have a viewer that can display data in tabular format.
  2. An array is displayed top to bottom with the elemenst stacked vertically.
  3. A JavaScript object (e.g: { x : 42 } ) is displayed with the field names as tabs each containing the corresponding field value.

It is possible to nest arrays and objects to create complex UI.

Special Variables

  1. S - Scratch

Even though this is called REPL, it doesn't provide a LOOP to repeatedly evaluate code. Instead, the existing code needs to be replaced with new code and re-executed. Sometimes it is desirable to retain the values computed for subsequent execution. It is possible to store any value into a special variable called S (for scratch). For example, a DataFrame based on remote data can be fetched once and stored so it is available for subsequent data exploration. For example, the above code is rewritten to make use of storing the Data Frame as a scratch variable for subsequent evaluation.

if(!S.df) {
	const df = DataFrame.fromURL('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_week.csv');
	S.df = df;
}
const df = S.df;
const { groupBy, agg: { max }, where: { eq }} = SQL;
return df.gdf(groupBy('type'),max('mag'));
  1. C - Cell

The C variable provides some utility functions.

i. C.NONE can be returned to display nothing.

ii. await C.delay(milliseconds,value) can be used to delay certain amount of time and then optionally return a value.

iii. C.md can be used to display markup.

return C.md`Hello **SQL Frames**`