Dieses Paket analysiert MIME -Typen in ein strukturiertes Format, das dann manipuliert und serialisiert werden kann:
const MIMEType = require ( "whatwg-mimetype" ) ;
const mimeType = new MIMEType ( `Text/HTML;Charset="utf-8"` ) ;
console . assert ( mimeType . toString ( ) === "text/html;charset=utf-8" ) ;
console . assert ( mimeType . type === "text" ) ;
console . assert ( mimeType . subtype === "html" ) ;
console . assert ( mimeType . essence === "text/html" ) ;
console . assert ( mimeType . parameters . get ( "charset" ) === "utf-8" ) ;
mimeType . parameters . set ( "charset" , "windows-1252" ) ;
console . assert ( mimeType . parameters . get ( "charset" ) === "windows-1252" ) ;
console . assert ( mimeType . toString ( ) === "text/html;charset=windows-1252" ) ;
console . assert ( mimeType . isHTML ( ) === true ) ;
console . assert ( mimeType . isXML ( ) === false ) ;
Parsing ist ein ziemlich komplexer Prozess; Details finden Sie in der Spezifikation (und ähnlich für die Serialisierung).
Die Algorithmen dieses Pakets entsprechen denen des Whg -Mime -Sniffing -Standards und sind auf 8E9A7DD ausgerichtet.
MIMEType
-API Der Standard -Export des Pakets des Hauptmoduls ist eine Klasse, MIMEType
. Sein Konstruktor nimmt eine Schnur, die versucht, in einen MIME -Typ zu analysieren; Wenn das Parsen fehlschlägt, wird ein Error
geworfen.
parse()
statische Fabrikmethode Als Alternative zum Konstruktor können Sie MIMEType.parse(string)
verwenden. Der einzige Unterschied besteht darin, dass parse()
beim fehlgeschlagenen Parsen null
zurückkehrt, während der Konstruktor werfen wird. Es ist somit am sinnvollsten, den Konstruktor in Fällen zu verwenden, in denen beispiellose MIME -Typen außergewöhnlich wären, und parse()
bei der Bearbeitung von Eingaben einer nicht eingeschränkten Quelle zu verwenden.
type
: Der Typ des MIME -Typs, z. B. "text"
subtype
: Der Subtyp des MIME -Typs, z. B. "html"
essence
: Die Essenz des Mime -Typs, zB "text/html"
parameters
: Eine Instanz von MIMETypeParameters
, die die Parameter dieses Mime -Typs enthalten type
und subtype
können geändert werden. Sie werden als nicht leer Validierung validiert und enthalten nur HTTP-Token-Codepunkte.
essence
ist nur ein Getter und kann nicht geändert werden.
parameters
sind ebenfalls ein Getter, aber der Inhalt des MIMETypeParameters
-Objekts ist veränderlich, wie nachstehend beschrieben.
toString()
serialisiert den MIME -Typ zu einer ZeichenfolgeisHTML()
: Gibt true zurück, wenn diese Instanz einen HTML -MIME -Typ darstelltisXML()
: Gibt true zurück, wenn diese Instanz einen XML -MIME -Typ darstelltisJavaScript({ prohibitParameters })
: Gibt true zurück, wenn diese Instanz einen JavaScript -MIME -Typ darstellt. prohibitParameters
können auf treu festgelegt werden, um Parameter zu verbieten, dh zu testen, ob die Serialisierung des MIME -Typs eine Essenz -Übereinstimmung mit JavaScript -MIME -MIME ist. Hinweis: Die Methoden isHTML()
, isXML()
und isJavaScript()
sind spekulativ und können in zukünftigen Hauptversionen entfernt oder verändert werden. Siehe Whatwg/Mimesniff#48 für das Brainstorming in diesem Bereich. Derzeit implementieren wir diese hauptsächlich, weil sie in JSDOM nützlich sind.
MIMETypeParameters
API Die MIMETypeParameters
-Klasse, deren Instanzen von mimeType.parameters
zurückgegeben werden, weist eine äquivalente Oberflächen -API zu einer JavaScript Map
auf.
MIMETypeParameters
-Methoden interpretieren jedoch ihre Argumente immer als geeignet für MIME -Typen, sodass z.
Einige Beispiele:
const mimeType = new MIMEType ( `x/x;a=b;c=D;E="F"` ) ;
// Logs:
// a b
// c D
// e F
for ( const [ name , value ] of mimeType . parameters ) {
console . log ( name , value ) ;
}
console . assert ( mimeType . parameters . has ( "a" ) ) ;
console . assert ( mimeType . parameters . has ( "A" ) ) ;
console . assert ( mimeType . parameters . get ( "A" ) === "b" ) ;
mimeType . parameters . set ( "Q" , "X" ) ;
console . assert ( mimeType . parameters . get ( "q" ) === "X" ) ;
console . assert ( mimeType . toString ( ) === "x/x;a=b;c=d;e=F;q=X" ) ;
// Throws:
mimeType . parameters . set ( "@" , "x" ) ;
Wenn Sie Primitive möchten, um Ihre eigene API zu erstellen, erhalten Sie direkten Zugriff auf die Parsing- und Serialisierungsalgorithmen wie folgt:
const parse = require ( "whatwg-mimetype/parser" ) ;
const serialize = require ( "whatwg-mimetype/serialize" ) ;
parse(string)
gibt ein Objekt zurück, das die type
und subtype
-Zeichenfolgen sowie parameters
enthält, bei der es sich um eine Map
handelt. Dies ist ungefähr unser Äquivalent zum MIME -Typ der Spezifikation. Wenn das Parsen fehlschlägt, gibt es stattdessen null
zurück.
serialize(record)
arbeitet auf dem solchen Objekt und gibt eine Zeichenfolge gemäß dem Serialisierungsalgorithmus zurück.