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

100% Statements 44/44
100% Branches 13/13
100% Functions 1/1
100% Lines 44/44

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 45132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 826x 826x 826x 826x 826x 826x 826x 826x 822x 822x 818x 818x 818x 818x 821x 585x 826x 309x 763x 493x 486x 795x 795x 795x 795x 795x 826x 132x 132x 132x 132x  
'use strict';
 
const { defaultGetFormat } = require('internal/modules/esm/get_format');
const { defaultGetSource } = require('internal/modules/esm/get_source');
const { translators } = require('internal/modules/esm/translators');
const { validateAssertions } = require('internal/modules/esm/assert');
 
/**
 * Node.js default load hook.
 * @param {string} url
 * @param {object} context
 * @returns {object}
 */
async function defaultLoad(url, context) {
  let {
    format,
    source,
  } = context;
  const { importAssertions } = context;
 
  if (!format || !translators.has(format)) {
    format = defaultGetFormat(url);
  }
 
  validateAssertions(url, format, importAssertions);
 
  if (
    format === 'builtin' ||
    format === 'commonjs'
  ) {
    source = null;
  } else if (source == null) {
    source = await defaultGetSource(url, { format });
  }
 
  return {
    format,
    source,
  };
}
 
module.exports = {
  defaultLoad,
};