INNER CODE UNIT · JavaScript
generateMimeTypeData
gildas-lormeau/zip.js · generate-mime-type-data.js:17
function generateMimeTypeData() {
const table = JSON.parse(fs.readFileSync(MIME_TYPES_PATH, "utf8"));
const expectedMimeTypes = {};
for (const type of Object.keys(table).sort()) {
if (!VALID_NAME_REGEXP.test(type)) {
throw new Error("invalid mime type name: " + type);
}
for (const [subtype, value] of Object.entries(table[type])) {
if (!VALID_NAME_REGEXP.test(subtype)) {
throw new Error("invalid mime subtype name: " + type + "/" + subtype);
}
for (const extension of typeof value == "string" ? [value] : value) {
if (!VALID_NAME_REGEXP.test(extension)) {
throw new Error("invalid extension: " + extension + " (" + type + "/" + subtype + ")");
}
if (expectedMimeTypes[extension]) {
throw new Error("duplicate extension: " + extension + " (" + expectedMimeTypes[extension] + " and " + type + "/" + subtype + ")");
}