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

@taboo/cms-core

v2.1.8

Published

Taboo CMS Core

Downloads

5

Readme

Taboo CMS Core

Documentation

This is a core library for Taboo CMS.

@taboo/cms uses this module to bootstrap the application.

Available exports from this module:

_                    - lodash
start                - to start and bootstrap the server and other utils
cwd                  - current working directory
config               - merged application config
app                  - app related attributes
modules              - all the bootsrtapped modules from ./app/modules
logger               - logger function, logger.info('Info'),
                       logger.warn('Warn'), logger.error('Error')
arrayHelper          - helper for array manipulations
filesHelper          - helper for file system manipulations
apiHelper            - helper for api related functions
ejsHelper            - server side templating helper, it uses ejs 
                       templates
cmsHelper            - cms related (mostly koa.js and variation between 
                       apiHelper and filesHelper logic)
mailer               - node mailer to send emails
sockets              - sockets server io to emit/receive messages
events               - events receiver/emitter
koaApp               - bootsrapped koa app
router               - koa router
passport             - authentication passport
loadFileTranslations - loads all app translations from locales files
getFileTranslations  - returns loaded translations from locales files
setLanguage          - sets application language and loads correct 
                       translations
getAclResources      - returns (preloads if needed) acl resources
isAllowed            - implementation of ACL based logic to get if
                       resource is allowed.
getFileTranslationsAsArray - returns all translations as single array
                              of objects

To start the server from your own app:

const { start, logger } = require('@taboo/cms-core');

start().catch(error => {
  logger.error(error);
});

It will bootstrap application from the following app structure:

app
    locales
    modules
        module1
            controllers
            helpers
            models
            services
            ui
                compontents
                    admin
                stores
                helpers
                styles
                    admin
                        index.less
                    index.less
                admin.config.js
                app.config.js
            views
            module.config.js
    policies
    themes
        admin
        blank
        standard
            assets
                fonts
                images
                styles
            templates
                emails
                layout.ejs
            ui
                components
                    admin
                        Settings.jsx
                    Templates.jsx
                config.js
                preview.png
bin
config
    environment
        development.js
        production.js
        staging.js
    custom.js
    index.js
    local.js
data
logs
node_modules
public
scripts
tasks
apidoc.json
gulpfile.js
index.js
package.json
package-lock.json
pm2.json
webpack.config.js

Or simply just use this already built CMS: @taboo/cms

CTX custom properties

// ctx.flashMessages
[
  {
    message: 'Your message',
    type: 'error',
  }
]

// ctx.routeParams
{ 
  clientConfig: {},
  language: 'en',
  locale: 'en-gb',
  translations: {},
  moduleRoute: {
    method: 'GET',
    path: '/',
    action: [AsyncFunction: index],
    policies: [ 'isAuthenticated', 'i18n' ],
    order: 0,
    options: {
        errorResponseAsJson: true,
        aclResource: 'admin.pages.manage',
    },
    modulePath: '/absolute/path/app/modules/main',
  },
  errorResponseAsJson: true,
  aclResource: 'admin.pages.manage',
}

// ctx.viewParams
{
  _template: 'standard',
  _view: 'index',
  // ... all of your custom values to be used in the view
}

// template params
{
  _clientConfig: {
    env: 'development',
    version: '2.1.3',
    debug: true,
    metaTitle: 'Taboo CMS',
    language: 'en',
    locale: 'en-gb',
    translations: {},
    admin: { language: 'en', locale: 'en-gb' },
    languages: [ ],
    server: { port: 3000 },
    sockets: { enabled: true, port: null, path: '/socket.io', rooms: [Array] },
    dateFormat: 'DD/MM/YYYY',
    dateTimeFormat: 'DD/MM/YYYY HH:mm:ss',
    // ... all of your custom values to be used in the view
  },
  _version: '2.1.3',
  _env: 'development',
  _debug: true,
  metaTitle: 'Taboo CMS',
  language: 'en',
  locale: 'en-gb',
  translations: {},
  flashMessages: [],
  _template: 'standard',
  _view: 'index',
  helpers: {
    href: [Function: href],
    linkPrefix: [Function: linkPrefix],
    translate: [Function: translate],
    _data: [Circular],
    _translateText: [Function: bound _translateText]
  },
}