All Projects → Meteor-Community-Packages → meteor-packages

Meteor-Community-Packages / meteor-packages

Licence: BSD-3-Clause license
Client for Meteor Package Server API

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to meteor-packages

ostrio-analytics
📊 Visitor's analytics tracking code for ostr.io service
Stars: ✭ 14 (+0%)
Mutual labels:  meteor, meteor-package
Client-Storage
🗄 Bulletproof persistent Client storage, works with disabled Cookies and/or localStorage
Stars: ✭ 15 (+7.14%)
Mutual labels:  meteor, meteor-package
Meteor-Template-helpers
Template helpers for Session, logical operations and debug
Stars: ✭ 35 (+150%)
Mutual labels:  meteor, meteor-package
blaze-integration
Vue integration with Meteor's Blaze rendering engine.
Stars: ✭ 24 (+71.43%)
Mutual labels:  meteor, meteor-package
Meteor-Mailer
📮 Bulletproof email queue on top of NodeMailer with support of multiple clusters and servers setup
Stars: ✭ 21 (+50%)
Mutual labels:  meteor, meteor-package
meteor-computed-field
Reactively computed field for Meteor
Stars: ✭ 18 (+28.57%)
Mutual labels:  meteor, meteor-package
meteor-subscription-scope
Scope queries on collections to subscriptions
Stars: ✭ 20 (+42.86%)
Mutual labels:  meteor, meteor-package
Meteor Transactions
App level transactions for Meteor + Mongo
Stars: ✭ 115 (+721.43%)
Mutual labels:  meteor, meteor-package
meteor-reactive-mongo
Reactive server-side MongoDB queries
Stars: ✭ 14 (+0%)
Mutual labels:  meteor, meteor-package
meteor-two-factor
🔐 Two factor authentication package for accounts-password
Stars: ✭ 80 (+471.43%)
Mutual labels:  meteor, meteor-package
Meteor Google Maps
🗺 Meteor package for the Google Maps Javascript API v3
Stars: ✭ 198 (+1314.29%)
Mutual labels:  meteor, meteor-package
flow-router
🚦 Carefully extended flow-router for Meteor
Stars: ✭ 191 (+1264.29%)
Mutual labels:  meteor, meteor-package
Meteor Peerdb
Reactive database layer with references, generators, triggers, migrations, etc.
Stars: ✭ 128 (+814.29%)
Mutual labels:  meteor, meteor-package
hypersubs
an upgraded version of Meteor subscribe, which helps optimize data and performance!
Stars: ✭ 13 (-7.14%)
Mutual labels:  meteor, meteor-package
Meteor Reactive Publish
Reactive publish endpoints
Stars: ✭ 123 (+778.57%)
Mutual labels:  meteor, meteor-package
Meteor-Cookies
🍪 Isomorphic bulletproof cookie functions for client and server
Stars: ✭ 41 (+192.86%)
Mutual labels:  meteor, meteor-package
Ostrio Neo4jdriver
Most advanced and efficient Neo4j REST API Driver, with support of https and GrapheneDB
Stars: ✭ 55 (+292.86%)
Mutual labels:  meteor, meteor-package
Meteor Comments Ui
Simple templates for comment functionality in your Meteor App
Stars: ✭ 78 (+457.14%)
Mutual labels:  meteor, meteor-package
Meteor-logger-file
🔖 Meteor Logging: Store application log messages into file (FS)
Stars: ✭ 24 (+71.43%)
Mutual labels:  meteor, meteor-package
Meteor-logger-mongo
🍃 Meteor Logging: Store application log messages in MongoDB
Stars: ✭ 20 (+42.86%)
Mutual labels:  meteor, meteor-package

Meteor Package Server Sync

A client for Meteor Package Server API.

Creates and syncs all data about packages to local MongoDB collections and keeps them in sync.

Code Quality

JavaScript Style Guide

This project has been setup with eslint, prettier and editorconfig configurations to ensure clean, consistent, error free code.

Installation

meteor add peerlibrary:meteor-packages

Usage

On the server-side, you initialize it like this:

import { Meteor } from "meteor/meteor";
import { PackageServer } from "meteor/peerlibrary:meteor-packages";

Meteor.startup(function() {
  PackageServer.startSyncing({
    //options - the following are the defaults if not passed
    logging: false, // When true, informational log messages will be printed to the console
    sync: {
      builds: true, // Should information about package builds be stored
      releases: true, // Should information about Meteor releases and release tracks be stored
      stats: true, // Should package stats be fetched and stored
    }
  });
});

Initial syncing might take quite some time.

Then on the server you can register code that will only run after the initial data sync has completed with PackageServer.runIfSyncFinished . For example it will run directly after the sync completes, and then again subsequently at starup when PackageServer.startSyncing() is called. This allows you add things such as collection-hooks that shouldn't run while the initial sync is happening.

import { Meteor } from "meteor/meteor";
import { PackageServer } from "meteor/peerlibrary:meteor-packages";

PackageServer.runIfSyncFinished(() => {
  PackageServer.ReleaseVersions.after.insert((userId, doc) => {
    Feed.addEvent('Meteor Release', doc.version);
  })
});

The following collections can be accessed on the server or client. For the client you'll of course need to publish the necessary data.

  • PackageServer.Packages
  • PackageServer.Versions
  • PackageServer.Builds
  • PackageServer.ReleaseTracks
  • PackageServer.ReleaseVersions
  • PackageServer.LatestPackages
  • PackageServer.Stats

LatestPackages collection is the same as Versions, except that it contains only the latest versions of packages.

Schema of documents is the same as described in the documentation with a couple exceptions.

  1. Versions collection's dependencies field is represented as an array of objects where package name is stored as packageName key. This is to support package names with . in the name without any problems.

  2. Packages collection will contain 2 additional fields, directAdds, and totalAdds which are the direct and total install counts for the corresponding package.

  3. Stats collection adds the date field to the document for ease of querying chronologically.

Types

While this package isn't currently implemented in Typescript, there are type definitions provided for your convenience in the typings.d.ts file in the root of this project.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].