UNPKG

pagespeed-quest

Version:

A framework for efficient web front-end speed improvement

62 lines 5.57 kB
import Path from 'path'; function execSpecToCommandArgs(spec) { const args = []; // preset if (spec.preset !== undefined) args.push('--preset', spec.preset); // layout if (spec.columns !== undefined) args.push('--columns', String(spec.columns)); // browser settings if (spec.viewportWidth !== undefined) args.push('--viewport-width', String(spec.viewportWidth)); if (spec.cpuThrottling !== undefined) args.push('--cpu-throttling', String(spec.cpuThrottling)); // timeout if (spec.timeoutSec !== undefined) args.push('--timeout-sec', String(spec.timeoutSec)); // proxy settings if (spec.proxyPort !== undefined) { args.push('--proxy-server', `http://localhost:${spec.proxyPort}`); args.push('--ignore-https-errors'); } // credit if (spec.credit) args.push('--credit', spec.credit); // debug directory if (spec.debugDir) args.push('--debug-dir', spec.debugDir); // output summary if (spec.outputSummary) args.push('--output-summary', spec.outputSummary); return args; } export async function execLoadshow(input, dependency) { const artifactsDir = input.artifactsDir || './artifacts'; const loadshowDir = Path.join(artifactsDir, 'loadshow'); const outputPath = Path.join(artifactsDir, 'loadshow.mp4'); const summaryPath = Path.join(loadshowDir, 'summary.md'); await dependency.mkdirp(loadshowDir); // By form factor const preset = input.deviceType === 'desktop' ? 'desktop' : 'mobile'; const customByDevice = input.deviceType === 'desktop' ? { columns: 2 } : { columns: 3 }; // Convert timeout from milliseconds to seconds const timeoutSec = Math.ceil(input.timeout / 1000); // Basic spec const spec = { preset, proxyPort: input.proxyPort, columns: customByDevice.columns, timeoutSec, credit: input.credit, debugDir: loadshowDir, outputSummary: summaryPath, }; const args = []; args.push('record'); args.push(...execSpecToCommandArgs(spec)); args.push('--output', outputPath); args.push(input.url); await dependency.executeLoadshow(args); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZHNob3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbG9hZHNob3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBeUJ2QixTQUFTLHFCQUFxQixDQUFDLElBQXNCO0lBQ25ELE1BQU0sSUFBSSxHQUFhLEVBQUUsQ0FBQTtJQUV6QixTQUFTO0lBQ1QsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVM7UUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFakUsU0FBUztJQUNULElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTO1FBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBRTVFLG1CQUFtQjtJQUNuQixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUztRQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFBO0lBQy9GLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTO1FBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUE7SUFFL0YsVUFBVTtJQUNWLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTO1FBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBRXRGLGlCQUFpQjtJQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxvQkFBb0IsSUFBSSxDQUFDLFNB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