mime-explorer 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.MD +7 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/module.d.ts +2 -2
- package/package.json +19 -35
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/module.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/module.ts"],"sourcesContent":["import type { TypeMap, TypeMeta } from './type';\nimport db from './db.json';\n\nconst map : Record<string, TypeMeta> = {};\nconst extensionMap : Record<string, string> = {};\n\n/**\n * Define meta information/extensions for a mime type.\n *\n * @param key\n * @param value\n */\nexport function define(key: string, value: string[] | TypeMeta) {\n let meta : TypeMeta = {\n extensions: [],\n };\n\n if (Array.isArray(value)) {\n meta.extensions = value;\n } else {\n meta = {\n ...meta,\n ...value,\n };\n }\n\n if (meta.extensions.length === 0) {\n return;\n }\n\n meta.extensions = meta.extensions.map((t) => t.toLowerCase());\n\n key = key.toLowerCase();\n\n for (let j = 0; j < meta.extensions.length; j++) {\n const ext = meta.extensions[j] as string;\n\n if (!Object.prototype.hasOwnProperty.call(extensionMap, ext)) {\n extensionMap[ext] = key;\n }\n }\n\n // Use first extension as default\n if (!Object.prototype.hasOwnProperty.call(map, key)) {\n map[key] = meta;\n }\n}\n\n/**\n * Remove meta information.\n *\n * @param input\n */\nexport function undefine(input: string) {\n if (!Object.prototype.hasOwnProperty.call(map, input)) {\n return;\n }\n\n delete map[input];\n\n const keys = Object.keys(extensionMap);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i] as string;\n\n if (extensionMap[key] === input) {\n delete extensionMap[key];\n }\n }\n}\n\n/**\n * Define multiple mime type -> extension/meta mappings.\n *\n * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});\n */\nexport function defineMany(typeMap: TypeMap) {\n const keys : string[] = Object.keys(typeMap);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key) {\n define(key, typeMap[key] as string[] | TypeMeta);\n }\n }\n}\n\n/**\n * Lookup a mime type based on extension\n *\n * @param input\n */\nexport function getType(input: string) : string | undefined {\n const last = input.replace(/^.*[/\\\\]/, '').toLowerCase();\n const ext = last.replace(/^.*\\./, '').toLowerCase();\n\n const hasPath = last.length < input.length;\n const hasDot = ext.length < last.length - 1;\n\n if (hasDot || !hasPath) {\n return extensionMap[ext];\n }\n\n return undefined;\n}\n\n/**\n * Get the file extension associated with a mime type.\n *\n * @param input\n */\nexport function getExtension(input: string) : string | undefined {\n const meta = get(input);\n if (meta) {\n const ext = meta.extensions[0] as string;\n return (ext[0] !== '*') ? ext : ext.slice(1);\n }\n\n return undefined;\n}\n\n/**\n * Retrieve meta information associated with a mime type.\n *\n * @param input\n */\nexport function get(input: string) : TypeMeta | undefined {\n const type = /^\\s*([^;\\s]*)/.test(input) && RegExp.$1;\n if (!type) {\n return undefined;\n }\n\n return map[type.toLowerCase()];\n}\n\ndefineMany(db);\n"],"names":["map","extensionMap","define","key","value","meta","extensions","Array","isArray","length","t","toLowerCase","j","ext","Object","prototype","hasOwnProperty","call","defineMany","typeMap","keys","i","get","input","type","test","RegExp","$1","slice","last","replace","hasPath"],"mappings":"aAGA,MAAMA,EAAiC,CAAA,EACjCC,EAAwC,CAAA,EAQvC,SAASC,EAAOC,EAAaC,GAChC,IAAIC,EAAkB,CAClBC,WAAY,IAYhB,GATIC,MAAMC,QAAQJ,GACdC,EAAKC,WAAaF,EAElBC,EAAO,IACAA,KACAD,GAIoB,IAA3BC,EAAKC,WAAWG,OAApB,CAIAJ,EAAKC,WAAaD,EAAKC,WAAWN,KAAKU,GAAMA,EAAEC,gBAE/CR,EAAMA,EAAIQ,cAEV,IAAK,IAAIC,EAAI,EAAGA,EAAIP,EAAKC,WAAWG,OAAQG,IAAK,CAC7C,MAAMC,EAAMR,EAAKC,WAAWM,GAEvBE,OAAOC,UAAUC,eAAeC,KAAKhB,EAAcY,KACpDZ,EAAaY,GAAOV,EAE5B,CAGKW,OAAOC,UAAUC,eAAeC,KAAKjB,EAAKG,KAC3CH,EAAIG,GAAOE,EAhBf,CAkBJ,CA6BO,SAASa,EAAWC,GACvB,MAAMC,EAAkBN,OAAOM,KAAKD,GACpC,IAAK,IAAIE,EAAI,EAAGA,EAAID,EAAKX,OAAQY,IAAK,CAClC,MAAMlB,EAAMiB,EAAKC,GACblB,GACAD,EAAOC,EAAKgB,EAAQhB,GAE5B,CACJ,CAyCO,SAASmB,EAAIC,GAChB,MAAMC,EAAO,gBAAgBC,KAAKF,IAAUG,OAAOC,GACnD,GAAKH,EAIL,OAAOxB,EAAIwB,EAAKb,cACpB,CAEAO,+hrIAxBO,SAAsBK,GACzB,MAAMlB,EAAOiB,EAAIC,GACjB,GAAIlB,EAAM,CACN,MAAMQ,EAAMR,EAAKC,WAAW,GAC5B,MAAmB,MAAXO,EAAI,GAAcA,EAAMA,EAAIe,MAAM,EAC9C,CAGJ,kBA3BO,SAAiBL,GACpB,MAAMM,EAAON,EAAMO,QAAQ,WAAY,IAAInB,cACrCE,EAAMgB,EAAKC,QAAQ,QAAS,IAAInB,cAEhCoB,EAAUF,EAAKpB,OAASc,EAAMd,OAGpC,GAFeI,EAAIJ,OAASoB,EAAKpB,OAAS,IAE3BsB,EACX,OAAO9B,EAAaY,EAI5B,mBAjDO,SAAkBU,GACrB,IAAKT,OAAOC,UAAUC,eAAeC,KAAKjB,EAAKuB,GAC3C,cAGGvB,EAAIuB,GAEX,MAAMH,EAAON,OAAOM,KAAKnB,GACzB,IAAK,IAAIoB,EAAI,EAAGA,EAAID,EAAKX,OAAQY,IAAK,CAClC,MAAMlB,EAAMiB,EAAKC,GAEbpB,EAAaE,KAASoB,UACftB,EAAaE,EAE5B,CACJ"}
|