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-component-model-fragments

v0.1.5

Published

Fragment your Loopback models into bite-sized pieces

Downloads

3,937

Readme

loopback-component-model-fragments

This component enables you to organize your Loopback models into smaller pieces, which are all collected and required during the boot phase of your app. The component looks for a subdirectory named after your model in a set of source folders you specify.

Installation

  npm install loopback-component-model-fragments --save

Configuration

Place the following block at the very top of server/component-config.json:

"loopback-component-model-fragments": {
  "sources": [
    "./models",
    "../common/models"
  ]
}

Two important notes:

  • You must put this configuration above the explorer component, or any routes from your models won't appear in the explorer.
  • It's important and necessary that you specify your model source paths in the component config. (Sorry, at the time being it does not auto-detect paths)

How it works

The component searches all sources paths for sub-directories named after your models and then recursively loads all modules found under the sub-directory. For example, given you have a model named MediaReport and the sample configuration above, the component will attempt to recursively load the following paths:

  ./models/posts/media-report/**/*.js
  ../common/models/media-report/**/*.js

Each script that it loads is expected to export a single function which takes an app handle as a parameter. In this way these files exactly match the behavior of Loopback's normal script file (i.e. media-report.js).

Regarding app path: This module uses app-root-path to determine project root. It then reads package.json from the project root to locate the main server script. If you need to customize the project root folder, use env-var APP_ROOT_PATH.

Best practices

This component will help you build cleaner, more maintainable Loopback model code by breaking down very large model files into descriptive fragments. For example we often structure our model fragments similar to the following,

  common/models/media-report/validations.js
  common/models/media-report/hooks.js
  common/models/media-report/methods.js
  common/models/media-report/overrides/create.js
  common/models/media-report/overrides/upsert.js
  common/models/media-report/remotes/find-linked.js
  common/models/media-report/remotes/find-one-linked.js
  common/models/media-report/remotes/find-one-linked.js

Note: This component does not enforce any particular structure. Use what works best for you.

Contributors

  • Heath Morrison (doublemarked)

License

loopback-component-model-fragments is published under the MIT license. See LICENSE for more details.