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

periodicjs

v10.70.92

Published

Periodic is a rapid enterprise application framework for data driven web and mobile applications.

Downloads

545

Readme

Periodic is a library for rapidily developing database agnostic enterprise applications and APIs with express & node.js.

Build Status NPM version Downloads Per Month npm Coverage Status Join the chat at https://gitter.im/repetere/periodicjs

Download Stats

Getting Started

Getting started

With Periodic 10, you can get up and running with periodic with zero configuration. It takes 30 seconds to create your first application server with periodic.

$ npm install periodicjs -g 
$ periodicjs setup [name-of-application] 
$ cd [name-of-application]
$ npm install
$ npm start [name of environment]

The four step install

  1. Install periodic globally to use the Command Line Interface (CLI)
  2. Create a new application
  3. Change directory to your new application root and Install periodic's dependencies
  4. Start your application

1. Install periodic globally to use the CLI (optional)

$ npm install periodicjs -g 

Periodic comes with a built in CLI, REPL and other tools to fast track development. Using the CLI is completely optional.

2. Create a new node application with the CLI (optional)

$ periodicjs setup [name-of-application]

The setup command will create a zero-configuration scaffolded node.js web application.

  • The setup command create's a new directory for your application, this directory is what is referred to as the app_root or your application root.
  • After your app_root directory is created, two scaffolded package.json and index.js files are created
index.js
//example ES6 import periodic from 'periodic'; //periodic singleton
//example index.js - ES5
'use strict';
const periodic = require('periodicjs'); //periodic singleton
periodic.init()
  .then(console.log.bind(console)) //log startup status
  .catch(console.error.bind(console)) //log any errors
package.json
{
  "name": "[name-of-application]",
  "description": "Simple app server.",
  "version": "0.0.1",
  "main": "index.js",
  "engines": {
    "node": "^6.x"
  },
  "scripts": {
    "start": "node index.js --e",
    "test": "mocha -R spec --recursive"
  },
  "dependencies": {
    "periodicjs": "^10.0.0"
  }
}

3. Change directory to your new application root and install periodic dependencies

$ cd [name-of-application] 
$ npm install

The scaffolded package.json file only has one dependency periodicjs. In order to use multiple databases you may need to install other dependencies (read more about configuring periodic).

4. Start your application

$ npm start [name of environment]

Periodic requires a runtime environment to be defined when your application starts. Your periodic application can have an unlimited number of environments all with different configuration settings.

Cheatsheet

Runtime options

$ node index.js development
$ NODE_ENV=development node index.js
$ ENV=development node index.js
$ node index.js -e development
$ node index.js --e=development

Custom controller middleware view rendering

const periodic = require('periodicjs');

function someMiddleWareFunction(req, res){
  const viewtemplate = 'user/profile';
  const viewdata = req.user.profile;
  periodic.core.controller.renderView(req, res, viewtemplate, viewdata);
}

Extensions / Containers

$ periodicjs [extension|ext|container|con] [name] [task] [args]
$ periodicjs extension periodicjs.ext.dbseed export path/to/some/seedfile.json
---
$ npm i [name-of-extension]
$ periodicjs addExtension [name-of-extension]
---
$ npm rm [name-of-extension]
$ periodicjs removeExtension [name-of-extension]
---
$ periodicjs createExtension [name-of-extension]

Configurations

$ periodicjs createConfig [type] [name] [environment] [filepath]
---
$ periodicjs createConfig extension periodicjs.ext.dbseed development ~/Desktop/dev.dbseed-config.json
$ periodicjs createConfig application my-web-app development ~/Desktop/dev.application-config.json
---
$ periodicjs addConfig path/to/some/file.json
$ periodicjs addConfig ~/my-documents/my-app-config.json
---
$ periodicjs removeConfig [id-of-db-config]
$ periodicjs removeConfig 5914a3711a04c73349623be5

[type]

  • application
  • extension
  • extension-local
  • container
  • container-local

Command Line Interface / Interactive Shell

$ periodicjs repl
$ #alternatively 
$ node [path/to/app_root/]index.js --cli --repl 

NEXT: How Periodic works

Periodic

Building scalable enterprise applications

Periodic provides:

  • A simple way to create a dynamic web application or app with well-structured routes, templates and models
  • A beautiful React-based Isomorphic Admin UI based on database models
  • Entreprise Security & Authentication with extensions for hosting an OAuth2 Servers, Multi-factor authentication, integrations with several session stores and authentication mechanisms
  • Support for multiple protocols, websockets, REST, RPC and more
  • Scaffolding for web integrations, ERP, ECM, CMS applications and more

Community

We have a friendly, growing community and welcome everyone to get involved.

Here are some ways:

  • Follow @PeriodicJS on twitter for news and announcements
  • Chat with us on slack (https://periodicjs.slack.com)
  • Ask technical questions on Stack Overflow and tag them periodicjs
  • Report bugs and issues on our issue tracker
  • ... or preferably, submit pull request with patches and / or new features

Contributing

If you can, please contribute by reporting issues, discussing ideas, or submitting pull requests with patches and new features. We do our best to respond to all issues and pull requests within a day or two, and make patch releases to npm regularly.

Thanks

PeriodicJS is a free and open source community-driven project. Thanks to our many contributors and users for making it great.

Periodic's development is led by Yaw Etse, Jan Bialostok and Alan Garcia.

License

(The MIT License)

Copyright (c) 2017 repetere

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.