@@ -1024,6 +1024,355 @@ Otherwise, returns `false`.
10241024See [ ` assert.deepStrictEqual() ` ] [ ] for more information about deep strict
10251025equality.
10261026
1027+ ## Class: ` util.MIMEType `
1028+
1029+ <!-- YAML
1030+ added: REPLACEME
1031+ -->
1032+
1033+ > Stability: 1 - Experimental
1034+
1035+ An implementation of [ the MIMEType class] ( https://bmeck.github.io/node-proposal-mime-api/ ) .
1036+
1037+ In accordance with browser conventions, all properties of ` MIMEType ` objects
1038+ are implemented as getters and setters on the class prototype, rather than as
1039+ data properties on the object itself.
1040+
1041+ A MIME string is a structured string containing multiple meaningful
1042+ components. When parsed, a ` MIMEType ` object is returned containing
1043+ properties for each of these components.
1044+
1045+ ### Constructor: ` new MIMEType(input) `
1046+
1047+ * ` input ` {string} The input MIME to parse
1048+
1049+ Creates a new ` MIMEType ` object by parsing the ` input ` .
1050+
1051+ ``` mjs
1052+ import { MIMEType } from ' node:util' ;
1053+
1054+ const myMIME = new MIMEType (' text/plain' );
1055+ ```
1056+
1057+ ``` cjs
1058+ const { MIMEType } = require (' node:util' );
1059+
1060+ const myMIME = new MIMEType (' text/plain' );
1061+ ```
1062+
1063+ A ` TypeError ` will be thrown if the ` input ` is not a valid MIME. Note
1064+ that an effort will be made to coerce the given values into strings. For
1065+ instance:
1066+
1067+ ``` mjs
1068+ import { MIMEType } from ' node:util' ;
1069+ const myMIME = new MIMEType ({ toString : () => ' text/plain' });
1070+ console .log (String (myMIME));
1071+ // Prints: text/plain
1072+ ```
1073+
1074+ ``` cjs
1075+ const { MIMEType } = require (' node:util' );
1076+ const myMIME = new MIMEType ({ toString : () => ' text/plain' });
1077+ console .log (String (myMIME));
1078+ // Prints: text/plain
1079+ ```
1080+
1081+ #### ` mime.type `
1082+
1083+ * {string}
1084+
1085+ Gets and sets the type portion of the MIME.
1086+
1087+ ``` mjs
1088+ import { MIMEType } from ' node:util' ;
1089+
1090+ const myMIME = new MIMEType (' text/javascript' );
1091+ console .log (myMIME .type );
1092+ // Prints: text
1093+ myMIME .type = ' application' ;
1094+ console .log (myMIME .type );
1095+ // Prints: application
1096+ console .log (String (myMIME));
1097+ // Prints: application/javascript
1098+ ```
1099+
1100+ ``` cjs
1101+ const { MIMEType } = require (' node:util' );
1102+
1103+ const myMIME = new MIMEType (' text/javascript' );
1104+ console .log (myMIME .type );
1105+ // Prints: text
1106+ myMIME .type = ' application' ;
1107+ console .log (myMIME .type );
1108+ // Prints: application
1109+ console .log (String (myMIME));
1110+ // Prints: application/javascript/javascript
1111+ ```
1112+
1113+ #### ` mime.subtype `
1114+
1115+ * {string}
1116+
1117+ Gets and sets the subtype portion of the MIME.
1118+
1119+ ``` mjs
1120+ import { MIMEType } from ' node:util' ;
1121+
1122+ const myMIME = new MIMEType (' text/ecmascript' );
1123+ console .log (myMIME .subtype );
1124+ // Prints: ecmascript
1125+ myMIME .subtype = ' javascript' ;
1126+ console .log (myMIME .subtype );
1127+ // Prints: javascript
1128+ console .log (String (myMIME));
1129+ // Prints: text/javascript
1130+ ```
1131+
1132+ ``` cjs
1133+ const { MIMEType } = require (' node:util' );
1134+
1135+ const myMIME = new MIMEType (' text/ecmascript' );
1136+ console .log (myMIME .subtype );
1137+ // Prints: ecmascript
1138+ myMIME .subtype = ' javascript' ;
1139+ console .log (myMIME .subtype );
1140+ // Prints: javascript
1141+ console .log (String (myMIME));
1142+ // Prints: text/javascript
1143+ ```
1144+
1145+ #### ` mime.essence `
1146+
1147+ * {string}
1148+
1149+ Gets the essence of the MIME. This property is read only.
1150+ Use ` mime.type ` or ` mime.subtype ` to alter the MIME.
1151+
1152+ ``` mjs
1153+ import { MIMEType } from ' node:util' ;
1154+
1155+ const myMIME = new MIMEType (' text/javascript;key=value' );
1156+ console .log (myMIME .essence );
1157+ // Prints: text/javascript
1158+ myMIME .type = ' application' ;
1159+ console .log (myMIME .essence );
1160+ // Prints: application/javascript
1161+ console .log (String (myMIME));
1162+ // Prints: application/javascript;key=value
1163+ ```
1164+
1165+ ``` cjs
1166+ const { MIMEType } = require (' node:util' );
1167+
1168+ const myMIME = new MIMEType (' text/javascript;key=value' );
1169+ console .log (myMIME .essence );
1170+ // Prints: text/javascript
1171+ myMIME .type = ' application' ;
1172+ console .log (myMIME .essence );
1173+ // Prints: application/javascript
1174+ console .log (String (myMIME));
1175+ // Prints: application/javascript;key=value
1176+ ```
1177+
1178+ #### ` mime.params `
1179+
1180+ * {MIMEParams}
1181+
1182+ Gets the [ ` MIMEParams ` ] [ ] object representing the
1183+ parameters of the MIME. This property is read-only. See
1184+ [ ` MIMEParams ` ] [ ] documentation for details.
1185+
1186+ #### ` mime.toString() `
1187+
1188+ * Returns: {string}
1189+
1190+ The ` toString() ` method on the ` MIMEType ` object returns the serialized MIME.
1191+
1192+ Because of the need for standard compliance, this method does not allow users
1193+ to customize the serialization process of the MIME.
1194+
1195+ #### ` mime.toJSON() `
1196+
1197+ * Returns: {string}
1198+
1199+ Alias for [ ` mime.toString() ` ] [ ] .
1200+
1201+ This method is automatically called when an ` MIMEType ` object is serialized
1202+ with [ ` JSON.stringify() ` ] [ ] .
1203+
1204+ ``` mjs
1205+ import { MIMEType } from ' node:util' ;
1206+
1207+ const myMIMES = [
1208+ new MIMEType (' image/png' ),
1209+ new MIMEType (' image/gif' ),
1210+ ];
1211+ console .log (JSON .stringify (myMIMES));
1212+ // Prints: ["image/png", "image/gif"]
1213+ ```
1214+
1215+ ``` cjs
1216+ const { MIMEType } = require (' node:util' );
1217+
1218+ const myMIMES = [
1219+ new MIMEType (' image/png' ),
1220+ new MIMEType (' image/gif' ),
1221+ ];
1222+ console .log (JSON .stringify (myMIMES));
1223+ // Prints: ["image/png", "image/gif"]
1224+ ```
1225+
1226+ ### Class: ` util.MIMEParams `
1227+
1228+ <!-- YAML
1229+ added: REPLACEME
1230+ -->
1231+
1232+ The ` MIMEParams ` API provides read and write access to the parameters of a
1233+ ` MIMEType ` .
1234+
1235+ #### Constructor: ` new MIMEParams() `
1236+
1237+ Creates a new ` MIMEParams ` object by with empty parameters
1238+
1239+ ``` mjs
1240+ import { MIMEParams } from ' node:util' ;
1241+
1242+ const myParams = new MIMEParams ();
1243+ ```
1244+
1245+ ``` cjs
1246+ const { MIMEParams } = require (' node:util' );
1247+
1248+ const myParams = new MIMEParams ();
1249+ ```
1250+
1251+ #### ` mimeParams.delete(name) `
1252+
1253+ * ` name ` {string}
1254+
1255+ Remove all name-value pairs whose name is ` name ` .
1256+
1257+ #### ` mimeParams.entries() `
1258+
1259+ * Returns: {Iterator}
1260+
1261+ Returns an iterator over each of the name-value pairs in the parameters.
1262+ Each item of the iterator is a JavaScript ` Array ` . The first item of the array
1263+ is the ` name ` , the second item of the array is the ` value ` .
1264+
1265+ #### ` mimeParams.get(name) `
1266+
1267+ * ` name ` {string}
1268+ * Returns: {string} or ` null ` if there is no name-value pair with the given
1269+ ` name ` .
1270+
1271+ Returns the value of the first name-value pair whose name is ` name ` . If there
1272+ are no such pairs, ` null ` is returned.
1273+
1274+ #### ` mimeParams.has(name) `
1275+
1276+ * ` name ` {string}
1277+ * Returns: {boolean}
1278+
1279+ Returns ` true ` if there is at least one name-value pair whose name is ` name ` .
1280+
1281+ #### ` mimeParams.keys() `
1282+
1283+ * Returns: {Iterator}
1284+
1285+ Returns an iterator over the names of each name-value pair.
1286+
1287+ ``` mjs
1288+ import { MIMEType } from ' node:util' ;
1289+
1290+ const { params } = new MIMEType (' text/plain;foo=0;bar=1' );
1291+ for (const name of params .keys ()) {
1292+ console .log (name);
1293+ }
1294+ // Prints:
1295+ // foo
1296+ // bar
1297+ ```
1298+
1299+ ``` cjs
1300+ const { MIMEType } = require (' node:util' );
1301+
1302+ const { params } = new MIMEType (' text/plain;foo=0;bar=1' );
1303+ for (const name of params .keys ()) {
1304+ console .log (name);
1305+ }
1306+ // Prints:
1307+ // foo
1308+ // bar
1309+ ```
1310+
1311+ #### ` mimeParams.set(name, value) `
1312+
1313+ * ` name ` {string}
1314+ * ` value ` {string}
1315+
1316+ Sets the value in the ` MIMEParams ` object associated with ` name ` to
1317+ ` value ` . If there are any pre-existing name-value pairs whose names are ` name ` ,
1318+ set the first such pair's value to ` value ` .
1319+
1320+ ``` mjs
1321+ import { MIMEType } from ' node:util' ;
1322+
1323+ const { params } = new MIMEType (' text/plain;foo=0;bar=1' );
1324+ params .set (' foo' , ' def' );
1325+ params .set (' baz' , ' xyz' );
1326+ console .log (params .toString ());
1327+ // Prints: foo=def&bar=1&baz=xyz
1328+ ```
1329+
1330+ ``` cjs
1331+ const { MIMEType } = require (' node:util' );
1332+
1333+ const { params } = new MIMEType (' text/plain;foo=0;bar=1' );
1334+ params .set (' foo' , ' def' );
1335+ params .set (' baz' , ' xyz' );
1336+ console .log (params .toString ());
1337+ // Prints: foo=def&bar=1&baz=xyz
1338+ ```
1339+
1340+ #### ` mimeParams.values() `
1341+
1342+ * Returns: {Iterator}
1343+
1344+ Returns an iterator over the values of each name-value pair.
1345+
1346+ #### ` mimeParams[@@iterator]() `
1347+
1348+ * Returns: {Iterator}
1349+
1350+ Alias for [ ` mimeParams.entries() ` ] [ ] .
1351+
1352+ ``` mjs
1353+ import { MIMEType } from ' node:util' ;
1354+
1355+ const { params } = new MIMEType (' text/plain;foo=bar;xyz=baz' );
1356+ for (const [name , value ] of params) {
1357+ console .log (name, value);
1358+ }
1359+ // Prints:
1360+ // foo bar
1361+ // xyz baz
1362+ ```
1363+
1364+ ``` cjs
1365+ const { MIMEType } = require (' node:util' );
1366+
1367+ const { params } = new MIMEType (' text/plain;foo=bar;xyz=baz' );
1368+ for (const [name , value ] of params) {
1369+ console .log (name, value);
1370+ }
1371+ // Prints:
1372+ // foo bar
1373+ // xyz baz
1374+ ```
1375+
10271376## ` util.parseArgs([config]) `
10281377
10291378<!-- YAML
@@ -2903,6 +3252,8 @@ util.log('Timestamped message.');
29033252[` Int16Array ` ]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array
29043253[` Int32Array ` ]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array
29053254[` Int8Array ` ]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array
3255+ [` JSON .stringify ()` ]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
3256+ [` MIMEparams` ]: #class-utilmimeparams
29063257[` Map ` ]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
29073258[` Object .assign ()` ]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
29083259[` Object .freeze ()` ]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze
@@ -2920,6 +3271,8 @@ util.log('Timestamped message.');
29203271[` WebAssembly .Module ` ]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module
29213272[` assert .deepStrictEqual ()` ]: assert.md#assertdeepstrictequalactual-expected-message
29223273[` console .error ()` ]: console.md#consoleerrordata-args
3274+ [` mime .toString ()` ]: #mimetostring
3275+ [` mimeParams .entries ()` ]: #mimeparamsentries
29233276[` napi_create_external ()` ]: n-api.md#napi_create_external
29243277[` target` and ` handler` ]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy#Terminology
29253278[` tty .hasColors ()` ]: tty.md#writestreamhascolorscount-env
0 commit comments