CodeVetter · Repo Unpack · Extension points
meteor/meteor
Meteor exposes extension mechanisms at both build time and application runtime. CLI commands and source processors use explicit registries, while applications add packages, methods, publications, HTTP middleware, and authentication handlers. Collection driver selection and Rspack configuration provide additional implementation seams.
- New CLI commands plug into main.registerCommand, which supports hierarchical names, rejects duplicates, and requires a catalogRefresh strategy.
- Package manifests declare build plugins and client/server modules through Package.registerBuildPlugin and Package.onUse; Package.onTest separately wires package-specific tests.
- Plugin.registerCompiler and registerLinter add factories to dedicated source-processor sets and associate registration with explicit Isobuild feature packages.
- Plugin.registerMinifier accepts only js/css extensions, rejects filename-based registration, and registers its factory in the minifier source-processor set.
- DDP methods register function-valued handlers with duplicate-name rejection; publications register named handlers or universal handlers, and publication results support synchronous values or promises.
- Accounts.registerLoginHandler appends wrapped named handlers, _runLoginHandlers tries them until one handles the request, and _attemptLogin invokes validation before creating the logged-in session.
- WebApp exposes handlers/rawHandlers aliases, its Express app and HTTP server, onListening callbacks, and an overridable startListening function for custom listening behavior.
- Collection setup accepts custom connection/driver choices, otherwise selects server Mongo or LocalCollectionDriver; Rspack's config resolver recognizes js, ts, mjs, and cjs in precedence order.