|
|
@ -1,9 +1,10 @@ |
|
|
|
const generate = require('videojs-generate-rollup-config'); |
|
|
|
const worker = require('@gkatsev/rollup-plugin-bundle-worker'); |
|
|
|
const worker = require('rollup-plugin-worker-factory'); |
|
|
|
const {terser} = require('rollup-plugin-terser'); |
|
|
|
const createTestData = require('./create-test-data.js'); |
|
|
|
const replace = require('@rollup/plugin-replace'); |
|
|
|
|
|
|
|
let syncWorker; |
|
|
|
// see https://github.com/videojs/videojs-generate-rollup-config
|
|
|
|
// for options
|
|
|
|
const options = { |
|
|
@ -26,11 +27,13 @@ const options = { |
|
|
|
}); |
|
|
|
}, |
|
|
|
plugins(defaults) { |
|
|
|
defaults.module.splice(2, 0, 'worker'); |
|
|
|
defaults.browser.splice(2, 0, 'worker'); |
|
|
|
defaults.test.splice(3, 0, 'worker'); |
|
|
|
|
|
|
|
defaults.test.splice(0, 0, 'createTestData'); |
|
|
|
// add worker and createTestData to the front of plugin lists
|
|
|
|
defaults.module.unshift('worker'); |
|
|
|
defaults.browser.unshift('worker'); |
|
|
|
// change this to `syncWorker` for syncronous web worker
|
|
|
|
// during unit tests
|
|
|
|
defaults.test.unshift('worker'); |
|
|
|
defaults.test.unshift('createTestData'); |
|
|
|
|
|
|
|
// istanbul is only in the list for regular builds and not watch
|
|
|
|
if (defaults.test.indexOf('istanbul') !== -1) { |
|
|
@ -41,20 +44,35 @@ const options = { |
|
|
|
return defaults; |
|
|
|
}, |
|
|
|
primedPlugins(defaults) { |
|
|
|
return Object.assign(defaults, { |
|
|
|
defaults = Object.assign(defaults, { |
|
|
|
replace: replace({ |
|
|
|
// single quote replace
|
|
|
|
"require('@videojs/vhs-utils/es": "require('@videojs/vhs-utils/cjs", |
|
|
|
// double quote replace
|
|
|
|
'require("@videojs/vhs-utils/es': 'require("@videojs/vhs-utils/cjs' |
|
|
|
}), |
|
|
|
worker: worker(), |
|
|
|
uglify: terser({ |
|
|
|
output: {comments: 'some'}, |
|
|
|
compress: {passes: 2} |
|
|
|
}), |
|
|
|
createTestData: createTestData() |
|
|
|
}); |
|
|
|
|
|
|
|
defaults.worker = worker({type: 'browser', plugins: [ |
|
|
|
defaults.resolve, |
|
|
|
defaults.json, |
|
|
|
defaults.commonjs, |
|
|
|
defaults.babel |
|
|
|
]}); |
|
|
|
|
|
|
|
defaults.syncWorker = syncWorker = worker({type: 'mock', plugins: [ |
|
|
|
defaults.resolve, |
|
|
|
defaults.json, |
|
|
|
defaults.commonjs, |
|
|
|
defaults.babel |
|
|
|
]}); |
|
|
|
|
|
|
|
return defaults; |
|
|
|
}, |
|
|
|
babel(defaults) { |
|
|
|
const presetEnvSettings = defaults.presets[0][1]; |
|
|
@ -75,27 +93,19 @@ if (process.env.CI_TEST_TYPE) { |
|
|
|
} |
|
|
|
const config = generate(options); |
|
|
|
|
|
|
|
if (config.builds.browser) { |
|
|
|
config.builds.syncWorkers = config.makeBuild('browser', { |
|
|
|
output: { |
|
|
|
name: 'httpStreaming', |
|
|
|
format: 'umd', |
|
|
|
file: 'dist/videojs-http-streaming-sync-workers.js' |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
config.builds.syncWorkers.plugins[0] = syncWorker; |
|
|
|
} |
|
|
|
|
|
|
|
// Add additonal builds/customization here!
|
|
|
|
|
|
|
|
// export the builds to rollup
|
|
|
|
export default [ |
|
|
|
config.makeBuild('browser', { |
|
|
|
input: 'src/decrypter-worker.js', |
|
|
|
output: { |
|
|
|
format: 'iife', |
|
|
|
name: 'decrypterWorker', |
|
|
|
file: 'src/decrypter-worker.worker.js' |
|
|
|
}, |
|
|
|
external: [] |
|
|
|
}), |
|
|
|
|
|
|
|
config.makeBuild('browser', { |
|
|
|
input: 'src/transmuxer-worker.js', |
|
|
|
output: { |
|
|
|
format: 'iife', |
|
|
|
name: 'transmuxerWorker', |
|
|
|
file: 'src/transmuxer-worker.worker.js' |
|
|
|
}, |
|
|
|
external: [] |
|
|
|
}) |
|
|
|
].concat(Object.values(config.builds)); |
|
|
|
export default Object.values(config.builds); |