Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 143x 143x 143x 143x 143x 143x 143x 143x 143x 243x 143x 143x 143x 143x 143x 143x 143x 143x 1525x 1525x 1525x 1525x 143x 1365x 1365x 1365x 1365x 4x 4x 1353x 1365x 1365x 1365x 1365x 1365x 1365x 143x 2905x 2905x 2905x 2905x 143x 143x | 'use strict'; const ModuleJob = require('internal/modules/esm/module_job'); const { kImplicitAssertType } = require('internal/modules/esm/assert'); const { ObjectCreate, SafeMap, } = primordials; let debug = require('internal/util/debuglog').debuglog('esm', (fn) => { debug = fn; }); const { ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; const { validateString } = require('internal/validators'); // Tracks the state of the loader-level module cache class ModuleMap extends SafeMap { constructor(i) { super(i); } // eslint-disable-line no-useless-constructor get(url, type = kImplicitAssertType) { validateString(url, 'url'); validateString(type, 'type'); return super.get(url)?.[type]; } set(url, type = kImplicitAssertType, job) { validateString(url, 'url'); validateString(type, 'type'); if (job instanceof ModuleJob !== true && typeof job !== 'function') { throw new ERR_INVALID_ARG_TYPE('job', 'ModuleJob', job); } debug(`Storing ${url} (${ type === kImplicitAssertType ? 'implicit type' : type }) in ModuleMap`); const cachedJobsForUrl = super.get(url) ?? ObjectCreate(null); cachedJobsForUrl[type] = job; return super.set(url, cachedJobsForUrl); } has(url, type = kImplicitAssertType) { validateString(url, 'url'); validateString(type, 'type'); return super.get(url)?.[type] !== undefined; } } module.exports = ModuleMap; |