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

pwoli

v1.1.8

Published

[![Github All Releases](https://img.shields.io/npm/dt/pwoli.svg?label=Total%20Installs)]()

Downloads

60

Readme

Github All Releases

npm

https://codespede.github.io/pwoli

Pwoli.js

Pwoli is a NodeJS/TypeScript framework written in TypeScript which can work independantly on a raw NodeJS/TypeScript environement OR, in co-ordination with any other frameworks or libraries like Express.js.

Pwoli can connect to any kind of ORMs by implementing thier corresponding ORM Adapters and works with Sequelize and Mongoose out of the box at present by SequelizeAdapter and MongooseAdapter respectively.

This means that, all Mongoose and Sequelize supported databases like MongoDB, PostgreSQL, MySQL, MariaDB, SQLite, and Microsoft SQL Server are readily usable with Pwoli at present.

For any other DB/ORM support, an ORM Adapter implementing IORMAdapter has to be implemented. Please see how to use a different ORM

Pwoli means "super awesome" and our intention is to make web app development "super awesome"

A basic example of the API features provided by Pwoli:

A simple GridView:

A bit more complex GridView:

A simple ListView:

An example of ActiveForm's capabilities:

Main Features

  • Fully flexible and extensible - thanks to the OOP based architecture.
  • Frontend widgets like ActiveForm, GridView, ListView for SSR(Server Side HTML Rendering) applications.
  • Simple-to-setup REST APIs for the backends of SPA applications, Mobile apps and other API consumers.
  • Works on both raw NodeJS and TypeScript applications.
  • Has reasonable defaults.
  • Well documented and typed code for IDE Intellisense.
  • Can be used in an ongoing project or a new project. Pwoli doesn't require that for using it, the project should be started from scratch.

Installation

npm install pwoli@latest

If you are using any ORM(like Mongoose) other than Sequelize, please click here to see details on how to configure it. Enter these lines in your application's entry script(most probably index.ts or index.js)

import { Application as Pwoli } from 'pwoli'; //if using ES6 modules or "type": "module" is set in your package.json
//if the above doesn't work, try the below two lines as you might be using CommonJS:
const pkg = require('pwoli'); //if using CommonJS
const Pwoli = pkg.Application;
// Pwoli is loaded!

// Now set the viewPath for finding the views:
// Please note: You don't need to set this if your application is just a REST API service
Pwoli.setViewPath(path.join(__dirname, 'views')); // The base path in which your view files are stored. Only applicable for SSR apps.

//You're ready to go!

Get Started

  • Please note: If you are building the backend for an SPA, Mobile App or a REST API client, click here to jump to the tutorial on learning how to use Pwoli for rendering data from backend servers in a paginated, filtered and sorted manner for any model with the matter of a couple of lines of code.

Check out on one of our guides below for learning how to use Pwoli's features:

Try it out

We have made four sample apps in different environments for you to get started quickly by trying them out in your local:

Credits

Pwoli is inspired from PHP's Yii framework.

Kudos to Mahesh, who is the brain behind Pwoli, and has high regards to Yii framework & he believes that this framework and its architecture has shaped his thoughts on modularized development methodologies.

Last but not least, thanks to Yadu Dev for his contributions to Pwoli.

Tests

npm run test

More tests are invited as contributions!

Contributing

The framework is Open Source.

You may join us and:

Support or Contact

Please feel free to shoot a mail to [email protected] for any queries or concerns.

We'll be starting our Slack channel soon where you can directly chat with us on clearing your queries.