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

loopback-with-domain

v1.4.4

Published

loopback-with-domain

Downloads

14

Readme

loopback-with-domain

run loopback server with "domain"

domain is in this context business logic, the same as Domain-Driven Design (DDD).

connection with base-domain

also, this loopback extends original loopback.

  • admin
  • push notification

follow these section to see how to use admin and push notification

install

npm install loopback-with-domain

simplest run, without domain

you can just run loopback without domain information by

require('loopback-with-domain').runWithoutDomain().then (lbInfo) ->

    console.log lbInfo.getURL()         # loopback api root
    console.log lbInfo.getAccessToken() # access token of admin

then loopback server (with admin, push-notification function) runs

run with domain

before running, you can prepare a directory which contains custom config information.

(config-dir) # any name is acceptable
|-- model-definitions.coffee
|-- common
|   |-- server.coffee
|   `-- admin.coffee
|-- development
|   `-- datasources.coffee
`-- production
    `-- datasources.coffee
lbWithDomain = require 'loopback-with-domain'

configDir = '/path/to/config-dir'

domain = require('base-domain').createInstance(dirname: 'domain')

lbWithDomain.runWithDomain(domain, configDir).then ->
    # loopback started

admin

(coming soon)

push notification

(coming soon)

configs

these are the config names.

  • admin
  • datasources
  • middleware
  • server
  • push-credentials

see JSON files in "default-values/non-model-configs" directory. you can set the same properties as these JSONs.

admin

config key | meaning -------------|----------------------- accessToken | accessToken for admin

datasources

config key | meaning -------------|----------------------- memory | on memory datasource db | datasource for domain entities

server

config key | meaning | default -------------|---------------|---------------- restApiRoot | REST api root | /api port | port number | 3000

push-credentials

config key | meaning -----------------|------------------------------------------- gcmServerApiKey | api key for Google Cloud Messaging (GCM) apnsCertData | certificate pem contents for APNs apnsKeyData | key pem contents for APNs

model definitions

module.exports =
    player: # model name
        base: 'User'  # the same as loopback model settings.base
        aclType: 'admin' # specific for this system

    instrument:
        aclType: 'owner-read'

the same format as loopback model definition except "aclType" value. name, base, relations and properties are automatically set from domain information.

aclType

loopback-with-domain generates acls from aclType.

three types are available.

aclType | meaning -------------|----------------------------------------------------- admin | only admin can CRUD the model owner | admin and the owner of the model can CRUD public-read | everyone can READ the model and admin can CRUD none | everyone can CRUD the model

switching environment

running script with environment variable "NODE_ENV" like

$ NODE_ENV=production node app.js

"development" is selected by default.

when your config dir is

(config-dir) # any name is acceptable
|-- common
|   |-- server.coffee
|   `-- admin.coffee
|-- development
|   `-- datasources.coffee
|-- local
|   `-- datasources.coffee
|-- production
|   `-- datasources.coffee

and launching script like

$ NODE_ENV=local node app.js

then, loopback-with-domain selects configs in "local" directory.

passing custom environment with argument

env = 'production'

lbWithDomain.runWithDomain(domain, configDir, env)

env is prior to NODE_ENV settings.

modified loopback-datasource-juggler

using CureApp/loopback-datasource-juggler.

this repository is almost the same as original one except 'memory' connector handles id as string (orignally integer).