Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9fa038b

Browse files
committed
build: store all files in src/ in same format
1 parent cd106e2 commit 9fa038b

File tree

3 files changed

+31
-26
lines changed

3 files changed

+31
-26
lines changed

scripts/build.js

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,11 @@
22
var db = {}
33

44
// initialize with all the IANA types
5-
require('../src/iana.json').forEach(function (mime) {
6-
// i don't think the name is useful,
7-
// and i don't think we need to bother with the "Reference"
8-
// just look at the site yourself!
9-
10-
var template = mime.template
11-
12-
if (!template) {
13-
// some types don't have a template, so we guess it
14-
console.log('guessing: %s/%s', mime.type, mime.name)
15-
template = mime.type + '/' + mime.name
16-
}
17-
18-
if (!~template.indexOf('/')) {
19-
// i don't know what templates exactly are,
20-
// but some aren't valid mime types.
21-
console.log('prefixing: %s/%s', mime.type, template)
22-
template = mime.type + '/' + template
23-
}
24-
25-
db[template.toLowerCase()] = {
26-
source: 'iana'
27-
}
5+
var mime = require('../src/iana.json')
6+
Object.keys(mime).forEach(function (type) {
7+
var d = mime[type]
8+
var t = type.toLowerCase()
9+
var o = db[t] = db[t] || {source: 'iana'}
2810
})
2911

3012
// add the mime extensions from Apache

scripts/types.js

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,22 @@ co(function* () {
2020
get('text'),
2121
]
2222

23-
fs.writeFileSync('src/iana.json', JSON.stringify(results.reduce(concat, [])))
23+
// flatten results
24+
results = results.reduce(concat, [])
25+
26+
var json = {}
27+
results.forEach(function (result) {
28+
var mime = result.mime
29+
30+
if (mime in json && result.template !== json[mime].template) {
31+
throw new Error('duplicate entry for ' + mime)
32+
}
33+
34+
delete result.mime
35+
json[mime] = result
36+
})
37+
38+
fs.writeFileSync('src/iana.json', JSON.stringify(json))
2439
})()
2540

2641
function* get(type) {
@@ -34,7 +49,15 @@ function* get(type) {
3449

3550
return mimes.map(function (row) {
3651
var data = row.reduce(reduceRows, {type: type})
37-
if (data.template !== type + '/example') return data
52+
53+
if (data.template === type + '/example') {
54+
return
55+
}
56+
57+
// guess mime type
58+
data.mime = (data.template || (type + '/' + data.name)).toLowerCase()
59+
60+
return data
3861
})
3962
}
4063

src/iana.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)