1234567891011121314151617181920212223242526272829303132 |
- 'use strict';
- const CHUNK_OPTIONS = ['all', 'initial'];
- const createResourceHint = require('./resource-hints.js').createResourceHint;
- const common = require('./common.js');
- const matches = common.matches;
- const getScriptName = common.getScriptName;
- const getRawScriptName = common.getRawScriptName;
- const hasScriptName = common.hasScriptName;
- const optionsMatch = (option, scriptName) => {
- return matches(option.chunks, CHUNK_OPTIONS) && matches(scriptName, option.test);
- };
- const addInitialChunkResourceHints = (options, tags) => {
- return tags
- .filter(hasScriptName)
- .reduce((hints, tag) => {
- const scriptName = getScriptName(options, tag);
- if (optionsMatch(options.preload, scriptName)) {
- hints.push(createResourceHint('preload', getRawScriptName(tag)));
- } else if (optionsMatch(options.prefetch, scriptName)) {
- hints.push(createResourceHint('prefetch', getRawScriptName(tag)));
- }
- return hints;
- },
- []
- );
- };
- module.exports = addInitialChunkResourceHints;
|