First release
This commit is contained in:
commit
fa6c85266e
2339 changed files with 761050 additions and 0 deletions
96
node_modules/@videojs/vhs-utils/scripts/create-test-data.js
generated
vendored
Normal file
96
node_modules/@videojs/vhs-utils/scripts/create-test-data.js
generated
vendored
Normal file
|
@ -0,0 +1,96 @@
|
|||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const baseDir = path.join(__dirname, '..');
|
||||
const formatDir = path.join(baseDir, 'test', 'fixtures', 'formats');
|
||||
const parsingDir = path.join(baseDir, 'test', 'fixtures', 'parsing');
|
||||
|
||||
const getFiles = (dir) => (fs.readdirSync(dir) || []).reduce((acc, d) => {
|
||||
d = path.resolve(dir, d);
|
||||
|
||||
const stat = fs.statSync(d);
|
||||
|
||||
if (!stat.isDirectory()) {
|
||||
return acc;
|
||||
}
|
||||
|
||||
const subfiles = fs.readdirSync(d).map((f) => path.resolve(d, f));
|
||||
|
||||
return acc.concat(subfiles);
|
||||
}, []);
|
||||
|
||||
const buildDataString = function(files, id) {
|
||||
const data = {};
|
||||
|
||||
files.forEach((file) => {
|
||||
// read the file directly as a buffer before converting to base64
|
||||
const base64 = fs.readFileSync(file).toString('base64');
|
||||
|
||||
data[path.basename(file)] = base64;
|
||||
});
|
||||
|
||||
const dataExportStrings = Object.keys(data).reduce((acc, key) => {
|
||||
// use a function since the segment may be cleared out on usage
|
||||
acc.push(`${id}Files['${key}'] = () => {
|
||||
cache['${key}'] = cache['${key}'] || base64ToUint8Array('${data[key]}');
|
||||
const dest = new Uint8Array(cache['${key}'].byteLength);
|
||||
dest.set(cache['${key}']);
|
||||
return dest;
|
||||
};`);
|
||||
return acc;
|
||||
}, []);
|
||||
|
||||
const file =
|
||||
'/* istanbul ignore file */\n' +
|
||||
'\n' +
|
||||
`import base64ToUint8Array from "${path.resolve(baseDir, 'src/decode-b64-to-uint8-array.js')}";\n` +
|
||||
'const cache = {};\n' +
|
||||
`const ${id}Files = {};\n` +
|
||||
dataExportStrings.join('\n') +
|
||||
`export default ${id}Files`;
|
||||
|
||||
return file;
|
||||
};
|
||||
|
||||
/* we refer to them as .js, so that babel and other plugins can work on them */
|
||||
const formatsKey = 'create-test-data!formats.js';
|
||||
const parsingKey = 'create-test-data!parsing.js';
|
||||
|
||||
module.exports = function() {
|
||||
return {
|
||||
name: 'createTestData',
|
||||
buildStart() {
|
||||
this.addWatchFile(formatDir);
|
||||
this.addWatchFile(parsingDir);
|
||||
|
||||
getFiles(formatDir).forEach((file) => this.addWatchFile(file));
|
||||
getFiles(parsingDir).forEach((file) => this.addWatchFile(file));
|
||||
},
|
||||
resolveId(importee, importer) {
|
||||
// if this is not an id we can resolve return
|
||||
if (importee.indexOf('create-test-data!') !== 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
const name = importee.split('!')[1];
|
||||
|
||||
if (name.indexOf('formats') !== -1) {
|
||||
return formatsKey;
|
||||
}
|
||||
|
||||
if (name.indexOf('parsing') !== -1) {
|
||||
return parsingKey;
|
||||
}
|
||||
|
||||
return null;
|
||||
},
|
||||
load(id) {
|
||||
if (id === formatsKey) {
|
||||
return buildDataString.call(this, getFiles(formatDir), 'format');
|
||||
}
|
||||
|
||||
if (id === parsingKey) {
|
||||
return buildDataString.call(this, getFiles(parsingDir), 'parsing');
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue