WIP(meteor3): boot progresses past linker + several async fixes

Past the client-bundle underscore linker (pin underscore@1.6.4) and now working
through the server async/await migration on Meteor 3.1 + Mongo 7:

- Removed fibers (imports/startup/server/fibers.js + import) — gone in Meteor 3.
- accounts/oauth.js: upsert -> upsertAsync (top-level await).
- migrations.js: startup async + await Migrations.migrateTo (async in 2.x).
  mongo7 marked at version 18 so historical up() bodies (still sync Mongo) don't
  run — prod data restores already-migrated. Documented.
- subsUnion.js: fully async (fetchAsync/findOneAsync/countAsync/upsertAsync,
  observeAsync with async callbacks).
- facts.js: dropped dead sync findOne.
- email.js: ostrio:mailer 2.5 is a default export (was named import); dropped
  removed static MailTime.Template (built-in default '{{{html}}}').

NEXT wall + remaining chain (multi-session):
1. aldeed:collection2@4.2.0 needs simpl-schema 3.x (app has 1.x) -> 'attachSchema
   is not a function'. Requires upgrading npm simpl-schema to 3.x and migrating
   all collection schemas (SimpleSchema.RegEx.Id etc.) across ~8 files.
2. Rest.js + helpers (countRealFires/firesUnion/whichAreFalsePositives/
   fireFromHash/subscriptionsInsert/upsertFalsePositive) -> *Async.
3. Patch vendored restivus to await async endpoint handlers.
4. methods/publications/comments to async; cron SyncedCron(quave)/Facts imports.
5. alanning:roles@1.2.10 + gadicohen:sitemaps@0.0.17 warn incompatible -> bump.
6. React 16 -> 18 render root.

Run with: NODE_OPTIONS='--dns-result-order=ipv4first --no-network-family-autoselection'
MONGO_URL='mongodb://localhost:27019/fuegos?replicaSet=rs0'
This commit is contained in:
vjrj 2026-07-13 23:46:45 +02:00
parent 8fa10e47c7
commit 25dc1b99c0
9 changed files with 40 additions and 44 deletions

View file

@ -14,7 +14,7 @@ import Notifications from '/imports/api/Notifications/Notifications';
import ActiveFiresUnion from '/imports/api/ActiveFiresUnion/ActiveFiresUnion';
import { Mongo } from 'meteor/mongo';
Meteor.startup(() => {
Meteor.startup(async () => {
// https://github.com/percolatestudio/meteor-migrations
Migrations.config({
@ -255,7 +255,12 @@ Meteor.startup(() => {
});
// Set createdAt in users & subs
Migrations.migrateTo('latest');
// Meteor 3: migrateTo is async now.
// NOTE: the individual up() bodies below still use SYNC Mongo — they only run
// on a DB whose migration version is behind. Production data is restored from
// rsmain already at the latest version, so they never execute. If migrations
// must ever run on a truly-fresh DB, their up() bodies need async conversion.
await Migrations.migrateTo('latest');
// Migrations.migrateTo('14,rerun');
});