mirror of
https://github.com/videojs/video.js.git
synced 2024-12-23 02:04:34 +02:00
42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
|
/**
|
||
|
* Remove parts of files from outputs. Everything between a pair of `/* start-delete-from-build *\u002f`
|
||
|
* and `/* end-delete-from-build *\u002f` comments
|
||
|
*
|
||
|
* Based on https://github.com/se-panfilov/rollup-plugin-strip-code
|
||
|
*/
|
||
|
|
||
|
import { createFilter } from '@rollup/pluginutils';
|
||
|
|
||
|
const START_COMMENT = 'start-delete-from-build';
|
||
|
const END_COMMENT = 'end-delete-from-build';
|
||
|
|
||
|
/**
|
||
|
* Remove lines of code surrounded by comments
|
||
|
*
|
||
|
* @param {Object} [options] Options
|
||
|
* @param {string} [options.include] Files to inlcude
|
||
|
* @param {string} [options.exclude] Files to exclude
|
||
|
* @param {string} [options.startComment] Starting keywork, default start-delete-from-build
|
||
|
* @param {string} [options.endComment] Eding keywork, default end-delete-from-build
|
||
|
* @param {RegExp} [options.pattern] Custom regex
|
||
|
* @return void
|
||
|
*/
|
||
|
export default function excludeLines(options = {}) {
|
||
|
// assume that the myPlugin accepts options of `options.include` and `options.exclude`
|
||
|
const filter = createFilter(options.include, options.exclude);
|
||
|
|
||
|
return {
|
||
|
transform(code, id) {
|
||
|
if (!filter(id)) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
const startComment = options.startComment || START_COMMENT;
|
||
|
const endComment = options.endComment || END_COMMENT;
|
||
|
const defaultPattern = new RegExp(`([\\t ]*\\/\\* ?${startComment} ?\\*\\/)[\\s\\S]*?(\\/\\* ?${endComment} ?\\*\\/[\\t ]*\\n?)`, 'g');
|
||
|
|
||
|
return code.replace(options.pattern || defaultPattern, '');
|
||
|
}
|
||
|
};
|
||
|
}
|