All files / lib/internal/modules/esm module_map.js

100% Statements 31/31
100% Branches 7/7
100% Functions 3/3
100% Lines 31/31

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 32142x 142x 142x 142x 142x 142x 142x 142x 142x 142x 142x 142x 142x 23520x 23520x 23520x 142x 23456x 23456x 23456x 5x 5x 23446x 23446x 23456x 142x 5x 5x 5x 142x 142x  
'use strict';
 
const ModuleJob = require('internal/modules/esm/module_job');
const {
  SafeMap,
} = primordials;
const debug = require('internal/util/debuglog').debuglog('esm');
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 {
  get(url) {
    validateString(url, 'url');
    return super.get(url);
  }
  set(url, job) {
    validateString(url, 'url');
    if (job instanceof ModuleJob !== true &&
        typeof job !== 'function') {
      throw new ERR_INVALID_ARG_TYPE('job', 'ModuleJob', job);
    }
    debug(`Storing ${url} in ModuleMap`);
    return super.set(url, job);
  }
  has(url) {
    validateString(url, 'url');
    return super.has(url);
  }
}
module.exports = ModuleMap;