// generates fake data for many computer systems properties function System (faker) { // generates a file name with extension or optional type this.fileName = function (ext, type) { var str = faker.fake("{{random.words}}.{{system.fileExt}}"); str = str.replace(/ /g, '_'); str = str.replace(/\,/g, '_'); str = str.replace(/\-/g, '_'); str = str.replace(/\\/g, '_'); str = str.toLowerCase(); return str; }; this.commonFileName = function (ext, type) { var str = faker.random.words() + "." + (ext || faker.system.commonFileExt()); str = str.replace(/ /g, '_'); str = str.replace(/\,/g, '_'); str = str.replace(/\-/g, '_'); str = str.replace(/\\/g, '_'); str = str.toLowerCase(); return str; }; this.mimeType = function () { return faker.random.arrayElement(Object.keys(faker.definitions.system.mimeTypes)); }; // returns a commonly used file type this.commonFileType = function () { var types = ['video', 'audio', 'image', 'text', 'application']; return faker.random.arrayElement(types) }; // returns a commonly used file extension based on optional type this.commonFileExt = function (type) { var types = [ 'application/pdf', 'audio/mpeg', 'audio/wav', 'image/png', 'image/jpeg', 'image/gif', 'video/mp4', 'video/mpeg', 'text/html' ]; return faker.system.fileExt(faker.random.arrayElement(types)); }; // returns any file type available as mime-type this.fileType = function () { var types = []; var mimes = faker.definitions.system.mimeTypes; Object.keys(mimes).forEach(function(m){ var parts = m.split('/'); if (types.indexOf(parts[0]) === -1) { types.push(parts[0]); } }); return faker.random.arrayElement(types); }; this.fileExt = function (mimeType) { var exts = []; var mimes = faker.definitions.system.mimeTypes; // get specific ext by mime-type if (typeof mimes[mimeType] === "object") { return faker.random.arrayElement(mimes[mimeType].extensions); } // reduce mime-types to those with file-extensions Object.keys(mimes).forEach(function(m){ if (mimes[m].extensions instanceof Array) { mimes[m].extensions.forEach(function(ext){ exts.push(ext) }); } }); return faker.random.arrayElement(exts); }; this.directoryPath = function () { // TODO }; this.filePath = function () { // TODO }; } module['exports'] = System;