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

100% Statements 30/30
100% Branches 6/6
100% Functions 3/3
100% Lines 30/30

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 3190x 90x 90x 90x 90x 90x 90x 90x 90x 90x 90x 90x 90x 409x 409x 409x 90x 358x 358x 6x 6x 346x 346x 358x 90x 6x 6x 6x 90x 90x  
'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) {
      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;