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 | 135x 135x 135x 135x 135x 135x 135x 135x 135x 191x 135x 135x 135x 135x 135x 135x 135x 135x 1319x 1319x 1319x 1319x 135x 1133x 1133x 1133x 1133x 4x 4x 1133x 1133x 1133x 1133x 1133x 1133x 1133x 135x 17x 17x 17x 17x 135x 135x | '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; |