Mercurial > personal > weather-server
view weather_server/static/amd/mad.js @ 31:9bc3687e1e5e
logfile: Add an index, and don't keep everything in RAM.
- Adds index BSON file, updated upon writing.
- Limits amount of data in RAM.
- Gracefully handles writes that don't update index.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Tue, 07 Jul 2020 19:51:30 -0400 |
parents | 47987502bf4c |
children |
line wrap: on
line source
"use strict"; class MADRegistry { constructor() { this.mods = new Map(); } define(name, deps, factory) { this.mods.set(name, { deps, factory, exports: null }); } require(dep, srcMod) { if (dep === 'require') { return (child) => this.require(child, srcMod); } if (dep === 'exports') { if (!srcMod) throw new Error('Internal consistency error.'); return srcMod.exports; } const mod = this.mods.get(dep); if (!mod) throw new Error('Undefined module.'); if (mod.exports) return mod.exports; mod.exports = {}; const deps = mod.deps.map(child => this.require(child, mod)); mod.factory(...deps); return mod.exports; } install(to) { to['define'] = (name, deps, factory) => this.define(name, deps, factory); to['require'] = (dep) => this.require(dep); } } //# sourceMappingURL=mad.js.map