UNPKG

workbox-build

Version:

A module that integrates into your build process, helping you generate a manifest of local files that workbox-sw should precache.

35 lines (28 loc) 1.24 kB
/* Copyright 2019 Google LLC Use of this source code is governed by an MIT-style license that can be found in the LICENSE file or at https://opensource.org/licenses/MIT. */ const joi = require('@hapi/joi'); const upath = require('upath'); const basePartial = require('../partials/base'); const defaults = require('../defaults'); const injectPartial = require('../partials/inject'); const webpackPartial = require('../partials/webpack'); // See https://github.com/hapijs/joi/blob/v16.0.0-rc2/API.md#anydefaultvalue-description const swSrcBasename = (context) => { const {name} = upath.parse(context.swSrc); // Always use the .js extension when generating a default filename. return name + '.js'; }; swSrcBasename.description = 'derived from the swSrc file name'; const supportedOptions = Object.assign({ compileSrc: joi.boolean().default(defaults.compileSrc), webpackCompilationPlugins: joi.array().items(joi.object()).when( 'compileSrc', {is: false, then: joi.forbidden()}), }, basePartial, injectPartial, webpackPartial); module.exports = joi.object().keys(supportedOptions).keys({ // List this separately, so that the swSrc validation happens first. swDest: joi.string().default(swSrcBasename), });