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

@servable/parse-server-engine

v1.5.0

Published

Servable Parse Server Engine

Downloads

137

Readme

Servable Engine

[!WARNING] Servable is still experimental and its api may change in the future.

logo

npm Package NPM Downloads Build Status License: MIT JavaScript Style Guide

Servable server is the core component of the Servable eco-system. It orchestrates the server deployment, the protocols registration and execution and more. Servable server is used by the Servable CLI to generate new projects.

Documentation

You can find here the complete servable documentation with guides and api reference.

Install

yarn add servable-engine

Quickstart

To make use of servable-engine you need generator-servable

The Yeoman generator will walk you through the steps required to create your app or protocol prompting for the required information.

yarn global add yo
yarn global add generator-servable

To launch the generator simply type:

yo servable

Servable is a Node JS framework built on top of Express JS and Parse Server and tailored for protocols. It provides a concise, easy to use and scalable template to get the best of Parse Server and protocols.

Servable at its core is a server template that uses the servable-engine to orchestrate the different protocols used in an application. Servable streamlines the server development by separating every "groupable" logic to be a protocol, so that it is organically extracted from the base code and possibly migrated into its own package. By doing so, Servable enforces a clear separation of concerns pattern out of the box.

Main features:

  • Quick start and Plug & Play Node JS framework
  • Tailored for protocols
  • Schema based classes and auto-migration
  • Templates for classes
  • Templates for custom protocols

Just like a docker image is made to be platform agnostic, a protocol is designed to be independant from the current environment it's being used in. A protocol might depend on other protocols, but it does not need to know which application it is used for, or call any of its API.

The Servable object acts as a central orchestrator. It holds references to objects every protocol can access (for example the current express app, the Parse Server instance, etc). It can also be used to register special methods provided by protocols and that might be used by other protocols, without knowing the source protocol of the method. For example, an emailable protocol if declared in a ServableApp object will register its implementation of a sendWithTemplate method in Servable.Emailing. This API will be used by other protocols to send emails by following its specific specification.

Why Servable?

At @servable-core we created the protocols in our Node JS + Parse server project. What was an experience to ease the backend development quickly became a good practice that helped us keep a clean codebase. They worked so well we decided to streamline their integration with the code base for future projects. We were inspired by the powerful ways NextJs improved the React experience by providing an efficient template on top of it. Yet we did not want to hide the Parse Server framework behind ours as we truly love Parse. Servable allows to tap into all the existing and upcoming Parse features and yet it dramatically simplifies the development process. A well designed Servable project will comprise almost nothing more than the actual classes and business logic of the platform, other repetitive functions and logics will use existing protocols implemented by the community or entreprise-private protocols.

Should you use Servable?

Servable is likely a good fit for you if...

  • You want to group the development of your server by capacity
  • You want to reuse a capacity (protocol) over different models without copying it over and over
  • You want to make that capacity available throughout your organization or publish it on the web
  • You are building a new platform from scratch but you don't want reinvent the wheel for the usual suspects: social interactions, versionning, data consistency over deletion

Examples of protocols

Followable

  • Gives an object (followed) the capacity to be followed by another object (follower)
  • keeps the number of followers up to date on the followed object
  • creates and maintains join tables with the status of the follow relationship

Emailable

  • Gives a ServableApp the capacity to use transactional emails via a simple API that is registered via the Servable.Mailing object
  • Keeps a list of email templates
  • Can be used with Sendgrid as of now

...you love Parse Server There is no reason not to use Servable if you have previously used a Parse Server.

...you care about productivity and developer experience Servable provides a predetermined template that sets a clear developer's guideline

Servable in your stack

Servable comes bundled with Parse Server that sets up a working set of tables that handle users, sessions and installation. You can use it to bootstrap your platform or as a microservice that you can access through REST or GraphQL without using the _User, Session and installation tables.

License

MIT © servable-core