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

fsql

v0.1.0

Published

A ghosting SQL server backed by firebase firestore

Downloads

4

Readme

Firebase-SQL

This is a node.js server using PostgreSQL database for storing your application data.

Why?

Firebase is an amazing service and offers a vast set of tools for going serverless while developing applications for web and mobile.

However, there are often times I faced an increase of complexity by trying to map application that have high-coupling between datasets that could be easily described using SQL.

Thats why this project was born: it aims to use Firebase's Firestore as a fallback datastore while exposing it as SQL-powered server.

How?

The basic idea is to map you own data on a SQL database schema and let the tool do the rest.

Say you have an users table with the following data

	User = {
		userId,
		name,
		role,
	}

Now lets assume, in an attempt to implement RBAC, you'd like to assign the role entry a reference to a specific type contained in the roles table

	Role = {
		roleId,
		name,
		description,
	}

Having this initial structure, you can now track what an user does by assigning its ID into an history table, where each entry can be described as:

	Entry = {
		user,
		action,
	}

But each action is described on its own table, action, with the following structure:

	Action: {
		actionId,
		name,
		description,
	}

It becomes clear that each of these tables can be directly mapped into a Firestore collection, having a property serving as Foreign Key - although not enforcing it.

That's my premisse for trying to map the tables as collections and isolating in the SQL side the enforcement of constraints, while saving the data on Firebase in case it needs to be restored (while Firebase ensures your data wont be lost, this service might not, depending on how you host it).

-- for now, these are the guidelines. I'll add extra info as I progress in developing its features.