write-entry.js.html 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <title>Code coverage report for tar/lib/write-entry.js</title>
  5. <meta charset="utf-8" />
  6. <link rel="stylesheet" href="../../prettify.css" />
  7. <link rel="stylesheet" href="../../base.css" />
  8. <meta name="viewport" content="width=device-width, initial-scale=1">
  9. <style type='text/css'>
  10. .coverage-summary .sorter {
  11. background-image: url(../../sort-arrow-sprite.png);
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <div class='wrapper'>
  17. <div class='pad1'>
  18. <h1>
  19. <a href="../../index.html">All files</a> / <a href="index.html">tar/lib</a> write-entry.js
  20. </h1>
  21. <div class='clearfix'>
  22. <div class='fl pad1y space-right2'>
  23. <span class="strong">99.53% </span>
  24. <span class="quiet">Statements</span>
  25. <span class='fraction'>213/214</span>
  26. </div>
  27. <div class='fl pad1y space-right2'>
  28. <span class="strong">97.87% </span>
  29. <span class="quiet">Branches</span>
  30. <span class='fraction'>184/188</span>
  31. </div>
  32. <div class='fl pad1y space-right2'>
  33. <span class="strong">100% </span>
  34. <span class="quiet">Functions</span>
  35. <span class='fraction'>31/31</span>
  36. </div>
  37. <div class='fl pad1y space-right2'>
  38. <span class="strong">99.53% </span>
  39. <span class="quiet">Lines</span>
  40. <span class='fraction'>210/211</span>
  41. </div>
  42. </div>
  43. </div>
  44. <div class='status-line high'></div>
  45. <pre><table class="coverage">
  46. <tr><td class="line-count quiet">1
  47. 2
  48. 3
  49. 4
  50. 5
  51. 6
  52. 7
  53. 8
  54. 9
  55. 10
  56. 11
  57. 12
  58. 13
  59. 14
  60. 15
  61. 16
  62. 17
  63. 18
  64. 19
  65. 20
  66. 21
  67. 22
  68. 23
  69. 24
  70. 25
  71. 26
  72. 27
  73. 28
  74. 29
  75. 30
  76. 31
  77. 32
  78. 33
  79. 34
  80. 35
  81. 36
  82. 37
  83. 38
  84. 39
  85. 40
  86. 41
  87. 42
  88. 43
  89. 44
  90. 45
  91. 46
  92. 47
  93. 48
  94. 49
  95. 50
  96. 51
  97. 52
  98. 53
  99. 54
  100. 55
  101. 56
  102. 57
  103. 58
  104. 59
  105. 60
  106. 61
  107. 62
  108. 63
  109. 64
  110. 65
  111. 66
  112. 67
  113. 68
  114. 69
  115. 70
  116. 71
  117. 72
  118. 73
  119. 74
  120. 75
  121. 76
  122. 77
  123. 78
  124. 79
  125. 80
  126. 81
  127. 82
  128. 83
  129. 84
  130. 85
  131. 86
  132. 87
  133. 88
  134. 89
  135. 90
  136. 91
  137. 92
  138. 93
  139. 94
  140. 95
  141. 96
  142. 97
  143. 98
  144. 99
  145. 100
  146. 101
  147. 102
  148. 103
  149. 104
  150. 105
  151. 106
  152. 107
  153. 108
  154. 109
  155. 110
  156. 111
  157. 112
  158. 113
  159. 114
  160. 115
  161. 116
  162. 117
  163. 118
  164. 119
  165. 120
  166. 121
  167. 122
  168. 123
  169. 124
  170. 125
  171. 126
  172. 127
  173. 128
  174. 129
  175. 130
  176. 131
  177. 132
  178. 133
  179. 134
  180. 135
  181. 136
  182. 137
  183. 138
  184. 139
  185. 140
  186. 141
  187. 142
  188. 143
  189. 144
  190. 145
  191. 146
  192. 147
  193. 148
  194. 149
  195. 150
  196. 151
  197. 152
  198. 153
  199. 154
  200. 155
  201. 156
  202. 157
  203. 158
  204. 159
  205. 160
  206. 161
  207. 162
  208. 163
  209. 164
  210. 165
  211. 166
  212. 167
  213. 168
  214. 169
  215. 170
  216. 171
  217. 172
  218. 173
  219. 174
  220. 175
  221. 176
  222. 177
  223. 178
  224. 179
  225. 180
  226. 181
  227. 182
  228. 183
  229. 184
  230. 185
  231. 186
  232. 187
  233. 188
  234. 189
  235. 190
  236. 191
  237. 192
  238. 193
  239. 194
  240. 195
  241. 196
  242. 197
  243. 198
  244. 199
  245. 200
  246. 201
  247. 202
  248. 203
  249. 204
  250. 205
  251. 206
  252. 207
  253. 208
  254. 209
  255. 210
  256. 211
  257. 212
  258. 213
  259. 214
  260. 215
  261. 216
  262. 217
  263. 218
  264. 219
  265. 220
  266. 221
  267. 222
  268. 223
  269. 224
  270. 225
  271. 226
  272. 227
  273. 228
  274. 229
  275. 230
  276. 231
  277. 232
  278. 233
  279. 234
  280. 235
  281. 236
  282. 237
  283. 238
  284. 239
  285. 240
  286. 241
  287. 242
  288. 243
  289. 244
  290. 245
  291. 246
  292. 247
  293. 248
  294. 249
  295. 250
  296. 251
  297. 252
  298. 253
  299. 254
  300. 255
  301. 256
  302. 257
  303. 258
  304. 259
  305. 260
  306. 261
  307. 262
  308. 263
  309. 264
  310. 265
  311. 266
  312. 267
  313. 268
  314. 269
  315. 270
  316. 271
  317. 272
  318. 273
  319. 274
  320. 275
  321. 276
  322. 277
  323. 278
  324. 279
  325. 280
  326. 281
  327. 282
  328. 283
  329. 284
  330. 285
  331. 286
  332. 287
  333. 288
  334. 289
  335. 290
  336. 291
  337. 292
  338. 293
  339. 294
  340. 295
  341. 296
  342. 297
  343. 298
  344. 299
  345. 300
  346. 301
  347. 302
  348. 303
  349. 304
  350. 305
  351. 306
  352. 307
  353. 308
  354. 309
  355. 310
  356. 311
  357. 312
  358. 313
  359. 314
  360. 315
  361. 316
  362. 317
  363. 318
  364. 319
  365. 320
  366. 321
  367. 322
  368. 323
  369. 324
  370. 325
  371. 326
  372. 327
  373. 328
  374. 329
  375. 330
  376. 331
  377. 332
  378. 333
  379. 334
  380. 335
  381. 336
  382. 337
  383. 338
  384. 339
  385. 340
  386. 341
  387. 342
  388. 343
  389. 344
  390. 345
  391. 346
  392. 347
  393. 348
  394. 349
  395. 350
  396. 351
  397. 352
  398. 353
  399. 354
  400. 355
  401. 356
  402. 357
  403. 358
  404. 359
  405. 360
  406. 361
  407. 362
  408. 363
  409. 364
  410. 365
  411. 366
  412. 367
  413. 368
  414. 369
  415. 370
  416. 371
  417. 372
  418. 373
  419. 374
  420. 375
  421. 376
  422. 377
  423. 378
  424. 379
  425. 380
  426. 381
  427. 382
  428. 383
  429. 384
  430. 385
  431. 386
  432. 387
  433. 388
  434. 389
  435. 390
  436. 391
  437. 392
  438. 393
  439. 394
  440. 395
  441. 396
  442. 397
  443. 398
  444. 399
  445. 400
  446. 401
  447. 402</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
  448. <span class="cline-any cline-yes">6x</span>
  449. <span class="cline-any cline-yes">6x</span>
  450. <span class="cline-any cline-yes">6x</span>
  451. <span class="cline-any cline-yes">6x</span>
  452. <span class="cline-any cline-yes">6x</span>
  453. <span class="cline-any cline-yes">6x</span>
  454. <span class="cline-any cline-neutral">&nbsp;</span>
  455. <span class="cline-any cline-yes">6x</span>
  456. <span class="cline-any cline-yes">6x</span>
  457. <span class="cline-any cline-yes">6x</span>
  458. <span class="cline-any cline-yes">6x</span>
  459. <span class="cline-any cline-yes">6x</span>
  460. <span class="cline-any cline-yes">6x</span>
  461. <span class="cline-any cline-yes">6x</span>
  462. <span class="cline-any cline-yes">6x</span>
  463. <span class="cline-any cline-yes">6x</span>
  464. <span class="cline-any cline-yes">6x</span>
  465. <span class="cline-any cline-yes">6x</span>
  466. <span class="cline-any cline-yes">6x</span>
  467. <span class="cline-any cline-yes">6x</span>
  468. <span class="cline-any cline-yes">6x</span>
  469. <span class="cline-any cline-yes">6x</span>
  470. <span class="cline-any cline-yes">6x</span>
  471. <span class="cline-any cline-yes">6x</span>
  472. <span class="cline-any cline-yes">6x</span>
  473. <span class="cline-any cline-neutral">&nbsp;</span>
  474. <span class="cline-any cline-yes">6x</span>
  475. <span class="cline-any cline-neutral">&nbsp;</span>
  476. <span class="cline-any cline-yes">6570x</span>
  477. <span class="cline-any cline-yes">6570x</span>
  478. <span class="cline-any cline-yes">6570x</span>
  479. <span class="cline-any cline-yes">1x</span>
  480. <span class="cline-any cline-yes">6569x</span>
  481. <span class="cline-any cline-neutral">&nbsp;</span>
  482. <span class="cline-any cline-yes">6569x</span>
  483. <span class="cline-any cline-neutral">&nbsp;</span>
  484. <span class="cline-any cline-yes">6569x</span>
  485. <span class="cline-any cline-yes">6569x</span>
  486. <span class="cline-any cline-yes">6569x</span>
  487. <span class="cline-any cline-yes">6569x</span>
  488. <span class="cline-any cline-yes">6569x</span>
  489. <span class="cline-any cline-yes">6569x</span>
  490. <span class="cline-any cline-yes">6569x</span>
  491. <span class="cline-any cline-yes">6569x</span>
  492. <span class="cline-any cline-yes">6569x</span>
  493. <span class="cline-any cline-yes">6569x</span>
  494. <span class="cline-any cline-neutral">&nbsp;</span>
  495. <span class="cline-any cline-yes">6569x</span>
  496. <span class="cline-any cline-yes">6515x</span>
  497. <span class="cline-any cline-neutral">&nbsp;</span>
  498. <span class="cline-any cline-yes">6569x</span>
  499. <span class="cline-any cline-neutral">&nbsp;</span>
  500. <span class="cline-any cline-neutral">&nbsp;</span>
  501. <span class="cline-any cline-yes">4x</span>
  502. <span class="cline-any cline-yes">4x</span>
  503. <span class="cline-any cline-yes">2x</span>
  504. <span class="cline-any cline-neutral">&nbsp;</span>
  505. <span class="cline-any cline-neutral">&nbsp;</span>
  506. <span class="cline-any cline-yes">6567x</span>
  507. <span class="cline-any cline-yes">6567x</span>
  508. <span class="cline-any cline-yes">2x</span>
  509. <span class="cline-any cline-yes">2x</span>
  510. <span class="cline-any cline-neutral">&nbsp;</span>
  511. <span class="cline-any cline-neutral">&nbsp;</span>
  512. <span class="cline-any cline-yes">6567x</span>
  513. <span class="cline-any cline-neutral">&nbsp;</span>
  514. <span class="cline-any cline-yes">6567x</span>
  515. <span class="cline-any cline-yes">1x</span>
  516. <span class="cline-any cline-neutral">&nbsp;</span>
  517. <span class="cline-any cline-yes">6567x</span>
  518. <span class="cline-any cline-yes">6513x</span>
  519. <span class="cline-any cline-neutral">&nbsp;</span>
  520. <span class="cline-any cline-yes">54x</span>
  521. <span class="cline-any cline-neutral">&nbsp;</span>
  522. <span class="cline-any cline-neutral">&nbsp;</span>
  523. <span class="cline-any cline-neutral">&nbsp;</span>
  524. <span class="cline-any cline-yes">34x</span>
  525. <span class="cline-any cline-yes">34x</span>
  526. <span class="cline-any cline-yes">1x</span>
  527. <span class="cline-any cline-yes">33x</span>
  528. <span class="cline-any cline-neutral">&nbsp;</span>
  529. <span class="cline-any cline-neutral">&nbsp;</span>
  530. <span class="cline-any cline-neutral">&nbsp;</span>
  531. <span class="cline-any cline-neutral">&nbsp;</span>
  532. <span class="cline-any cline-yes">6566x</span>
  533. <span class="cline-any cline-yes">6566x</span>
  534. <span class="cline-any cline-yes">6566x</span>
  535. <span class="cline-any cline-yes">902x</span>
  536. <span class="cline-any cline-yes">6566x</span>
  537. <span class="cline-any cline-yes">6566x</span>
  538. <span class="cline-any cline-yes">6566x</span>
  539. <span class="cline-any cline-neutral">&nbsp;</span>
  540. <span class="cline-any cline-neutral">&nbsp;</span>
  541. <span class="cline-any cline-neutral">&nbsp;</span>
  542. <span class="cline-any cline-yes">6566x</span>
  543. <span class="cline-any cline-yes">5664x</span>
  544. <span class="cline-any cline-yes">867x</span>
  545. <span class="cline-any cline-yes">34x</span>
  546. <span class="cline-any cline-neutral">&nbsp;</span>
  547. <span class="cline-any cline-yes">1x</span>
  548. <span class="cline-any cline-neutral">&nbsp;</span>
  549. <span class="cline-any cline-neutral">&nbsp;</span>
  550. <span class="cline-any cline-neutral">&nbsp;</span>
  551. <span class="cline-any cline-neutral">&nbsp;</span>
  552. <span class="cline-any cline-yes">6563x</span>
  553. <span class="cline-any cline-yes">4x</span>
  554. <span class="cline-any cline-neutral">&nbsp;</span>
  555. <span class="cline-any cline-yes">6563x</span>
  556. <span class="cline-any cline-neutral">&nbsp;</span>
  557. <span class="cline-any cline-neutral">&nbsp;</span>
  558. <span class="cline-any cline-neutral">&nbsp;</span>
  559. <span class="cline-any cline-neutral">&nbsp;</span>
  560. <span class="cline-any cline-neutral">&nbsp;</span>
  561. <span class="cline-any cline-neutral">&nbsp;</span>
  562. <span class="cline-any cline-neutral">&nbsp;</span>
  563. <span class="cline-any cline-neutral">&nbsp;</span>
  564. <span class="cline-any cline-neutral">&nbsp;</span>
  565. <span class="cline-any cline-neutral">&nbsp;</span>
  566. <span class="cline-any cline-neutral">&nbsp;</span>
  567. <span class="cline-any cline-neutral">&nbsp;</span>
  568. <span class="cline-any cline-neutral">&nbsp;</span>
  569. <span class="cline-any cline-neutral">&nbsp;</span>
  570. <span class="cline-any cline-neutral">&nbsp;</span>
  571. <span class="cline-any cline-neutral">&nbsp;</span>
  572. <span class="cline-any cline-yes">6563x</span>
  573. <span class="cline-any cline-yes">17x</span>
  574. <span class="cline-any cline-neutral">&nbsp;</span>
  575. <span class="cline-any cline-neutral">&nbsp;</span>
  576. <span class="cline-any cline-neutral">&nbsp;</span>
  577. <span class="cline-any cline-neutral">&nbsp;</span>
  578. <span class="cline-any cline-neutral">&nbsp;</span>
  579. <span class="cline-any cline-neutral">&nbsp;</span>
  580. <span class="cline-any cline-neutral">&nbsp;</span>
  581. <span class="cline-any cline-neutral">&nbsp;</span>
  582. <span class="cline-any cline-neutral">&nbsp;</span>
  583. <span class="cline-any cline-neutral">&nbsp;</span>
  584. <span class="cline-any cline-neutral">&nbsp;</span>
  585. <span class="cline-any cline-neutral">&nbsp;</span>
  586. <span class="cline-any cline-neutral">&nbsp;</span>
  587. <span class="cline-any cline-yes">6563x</span>
  588. <span class="cline-any cline-neutral">&nbsp;</span>
  589. <span class="cline-any cline-neutral">&nbsp;</span>
  590. <span class="cline-any cline-neutral">&nbsp;</span>
  591. <span class="cline-any cline-yes">867x</span>
  592. <span class="cline-any cline-yes">859x</span>
  593. <span class="cline-any cline-yes">867x</span>
  594. <span class="cline-any cline-yes">867x</span>
  595. <span class="cline-any cline-yes">867x</span>
  596. <span class="cline-any cline-neutral">&nbsp;</span>
  597. <span class="cline-any cline-neutral">&nbsp;</span>
  598. <span class="cline-any cline-neutral">&nbsp;</span>
  599. <span class="cline-any cline-yes">32x</span>
  600. <span class="cline-any cline-yes">32x</span>
  601. <span class="cline-any cline-yes">1x</span>
  602. <span class="cline-any cline-yes">31x</span>
  603. <span class="cline-any cline-neutral">&nbsp;</span>
  604. <span class="cline-any cline-neutral">&nbsp;</span>
  605. <span class="cline-any cline-neutral">&nbsp;</span>
  606. <span class="cline-any cline-neutral">&nbsp;</span>
  607. <span class="cline-any cline-yes">32x</span>
  608. <span class="cline-any cline-yes">32x</span>
  609. <span class="cline-any cline-yes">32x</span>
  610. <span class="cline-any cline-neutral">&nbsp;</span>
  611. <span class="cline-any cline-neutral">&nbsp;</span>
  612. <span class="cline-any cline-neutral">&nbsp;</span>
  613. <span class="cline-any cline-yes">1x</span>
  614. <span class="cline-any cline-yes">1x</span>
  615. <span class="cline-any cline-yes">1x</span>
  616. <span class="cline-any cline-yes">1x</span>
  617. <span class="cline-any cline-yes">1x</span>
  618. <span class="cline-any cline-neutral">&nbsp;</span>
  619. <span class="cline-any cline-neutral">&nbsp;</span>
  620. <span class="cline-any cline-neutral">&nbsp;</span>
  621. <span class="cline-any cline-yes">5664x</span>
  622. <span class="cline-any cline-yes">7x</span>
  623. <span class="cline-any cline-yes">7x</span>
  624. <span class="cline-any cline-yes">2x</span>
  625. <span class="cline-any cline-yes">2x</span>
  626. <span class="cline-any cline-yes">1x</span>
  627. <span class="cline-any cline-neutral">&nbsp;</span>
  628. <span class="cline-any cline-yes">6x</span>
  629. <span class="cline-any cline-neutral">&nbsp;</span>
  630. <span class="cline-any cline-neutral">&nbsp;</span>
  631. <span class="cline-any cline-yes">5663x</span>
  632. <span class="cline-any cline-yes">5663x</span>
  633. <span class="cline-any cline-yes">42x</span>
  634. <span class="cline-any cline-neutral">&nbsp;</span>
  635. <span class="cline-any cline-yes">5621x</span>
  636. <span class="cline-any cline-neutral">&nbsp;</span>
  637. <span class="cline-any cline-neutral">&nbsp;</span>
  638. <span class="cline-any cline-neutral">&nbsp;</span>
  639. <span class="cline-any cline-yes">5568x</span>
  640. <span class="cline-any cline-yes">5568x</span>
  641. <span class="cline-any cline-yes">2x</span>
  642. <span class="cline-any cline-yes">5566x</span>
  643. <span class="cline-any cline-neutral">&nbsp;</span>
  644. <span class="cline-any cline-neutral">&nbsp;</span>
  645. <span class="cline-any cline-neutral">&nbsp;</span>
  646. <span class="cline-any cline-neutral">&nbsp;</span>
  647. <span class="cline-any cline-yes">5617x</span>
  648. <span class="cline-any cline-yes">5617x</span>
  649. <span class="cline-any cline-yes">5617x</span>
  650. <span class="cline-any cline-yes">5617x</span>
  651. <span class="cline-any cline-neutral">&nbsp;</span>
  652. <span class="cline-any cline-neutral">&nbsp;</span>
  653. <span class="cline-any cline-neutral">&nbsp;</span>
  654. <span class="cline-any cline-yes">7336x</span>
  655. <span class="cline-any cline-yes">7336x</span>
  656. <span class="cline-any cline-yes">1x</span>
  657. <span class="cline-any cline-yes">7335x</span>
  658. <span class="cline-any cline-neutral">&nbsp;</span>
  659. <span class="cline-any cline-neutral">&nbsp;</span>
  660. <span class="cline-any cline-neutral">&nbsp;</span>
  661. <span class="cline-any cline-neutral">&nbsp;</span>
  662. <span class="cline-any cline-yes">5566x</span>
  663. <span class="cline-any cline-neutral">&nbsp;</span>
  664. <span class="cline-any cline-neutral">&nbsp;</span>
  665. <span class="cline-any cline-neutral">&nbsp;</span>
  666. <span class="cline-any cline-yes">7393x</span>
  667. <span class="cline-any cline-yes">2x</span>
  668. <span class="cline-any cline-yes">2x</span>
  669. <span class="cline-any cline-yes">2x</span>
  670. <span class="cline-any cline-yes">2x</span>
  671. <span class="cline-any cline-yes">2x</span>
  672. <span class="cline-any cline-neutral">&nbsp;</span>
  673. <span class="cline-any cline-neutral">&nbsp;</span>
  674. <span class="cline-any cline-neutral">&nbsp;</span>
  675. <span class="cline-any cline-yes">7392x</span>
  676. <span class="cline-any cline-yes">5614x</span>
  677. <span class="cline-any cline-yes">1700449x</span>
  678. <span class="cline-any cline-yes">1700449x</span>
  679. <span class="cline-any cline-yes">1700449x</span>
  680. <span class="cline-any cline-neutral">&nbsp;</span>
  681. <span class="cline-any cline-neutral">&nbsp;</span>
  682. <span class="cline-any cline-neutral">&nbsp;</span>
  683. <span class="cline-any cline-yes">7392x</span>
  684. <span class="cline-any cline-neutral">&nbsp;</span>
  685. <span class="cline-any cline-yes">7392x</span>
  686. <span class="cline-any cline-yes">7392x</span>
  687. <span class="cline-any cline-yes">7392x</span>
  688. <span class="cline-any cline-yes">7392x</span>
  689. <span class="cline-any cline-neutral">&nbsp;</span>
  690. <span class="cline-any cline-yes">7392x</span>
  691. <span class="cline-any cline-neutral">&nbsp;</span>
  692. <span class="cline-any cline-yes">7392x</span>
  693. <span class="cline-any cline-yes">5614x</span>
  694. <span class="cline-any cline-yes">2x</span>
  695. <span class="cline-any cline-yes">5614x</span>
  696. <span class="cline-any cline-yes">5614x</span>
  697. <span class="cline-any cline-yes">5614x</span>
  698. <span class="cline-any cline-neutral">&nbsp;</span>
  699. <span class="cline-any cline-neutral">&nbsp;</span>
  700. <span class="cline-any cline-yes">1778x</span>
  701. <span class="cline-any cline-yes">1754x</span>
  702. <span class="cline-any cline-yes">1754x</span>
  703. <span class="cline-any cline-neutral">&nbsp;</span>
  704. <span class="cline-any cline-yes">1778x</span>
  705. <span class="cline-any cline-yes">1778x</span>
  706. <span class="cline-any cline-neutral">&nbsp;</span>
  707. <span class="cline-any cline-neutral">&nbsp;</span>
  708. <span class="cline-any cline-neutral">&nbsp;</span>
  709. <span class="cline-any cline-neutral">&nbsp;</span>
  710. <span class="cline-any cline-neutral">&nbsp;</span>
  711. <span class="cline-any cline-yes">99x</span>
  712. <span class="cline-any cline-neutral">&nbsp;</span>
  713. <span class="cline-any cline-neutral">&nbsp;</span>
  714. <span class="cline-any cline-neutral">&nbsp;</span>
  715. <span class="cline-any cline-yes">20x</span>
  716. <span class="cline-any cline-neutral">&nbsp;</span>
  717. <span class="cline-any cline-neutral">&nbsp;</span>
  718. <span class="cline-any cline-neutral">&nbsp;</span>
  719. <span class="cline-any cline-yes">2x</span>
  720. <span class="cline-any cline-neutral">&nbsp;</span>
  721. <span class="cline-any cline-neutral">&nbsp;</span>
  722. <span class="cline-any cline-neutral">&nbsp;</span>
  723. <span class="cline-any cline-yes">53x</span>
  724. <span class="cline-any cline-neutral">&nbsp;</span>
  725. <span class="cline-any cline-neutral">&nbsp;</span>
  726. <span class="cline-any cline-neutral">&nbsp;</span>
  727. <span class="cline-any cline-yes">59x</span>
  728. <span class="cline-any cline-yes">59x</span>
  729. <span class="cline-any cline-yes">59x</span>
  730. <span class="cline-any cline-yes">58x</span>
  731. <span class="cline-any cline-yes">57x</span>
  732. <span class="cline-any cline-neutral">&nbsp;</span>
  733. <span class="cline-any cline-yes">59x</span>
  734. <span class="cline-any cline-yes">2x</span>
  735. <span class="cline-any cline-neutral">&nbsp;</span>
  736. <span class="cline-any cline-neutral">&nbsp;</span>
  737. <span class="cline-any cline-neutral">&nbsp;</span>
  738. <span class="cline-any cline-neutral">&nbsp;</span>
  739. <span class="cline-any cline-yes">51x</span>
  740. <span class="cline-any cline-neutral">&nbsp;</span>
  741. <span class="cline-any cline-neutral">&nbsp;</span>
  742. <span class="cline-any cline-neutral">&nbsp;</span>
  743. <span class="cline-any cline-yes">6x</span>
  744. <span class="cline-any cline-neutral">&nbsp;</span>
  745. <span class="cline-any cline-yes">33x</span>
  746. <span class="cline-any cline-yes">33x</span>
  747. <span class="cline-any cline-yes">33x</span>
  748. <span class="cline-any cline-yes">33x</span>
  749. <span class="cline-any cline-yes">33x</span>
  750. <span class="cline-any cline-yes">33x</span>
  751. <span class="cline-any cline-yes">33x</span>
  752. <span class="cline-any cline-neutral">&nbsp;</span>
  753. <span class="cline-any cline-yes">33x</span>
  754. <span class="cline-any cline-yes">33x</span>
  755. <span class="cline-any cline-yes">33x</span>
  756. <span class="cline-any cline-no">&nbsp;</span>
  757. <span class="cline-any cline-neutral">&nbsp;</span>
  758. <span class="cline-any cline-yes">33x</span>
  759. <span class="cline-any cline-yes">33x</span>
  760. <span class="cline-any cline-yes">33x</span>
  761. <span class="cline-any cline-yes">26x</span>
  762. <span class="cline-any cline-yes">33x</span>
  763. <span class="cline-any cline-yes">33x</span>
  764. <span class="cline-any cline-yes">33x</span>
  765. <span class="cline-any cline-yes">33x</span>
  766. <span class="cline-any cline-yes">33x</span>
  767. <span class="cline-any cline-yes">33x</span>
  768. <span class="cline-any cline-yes">33x</span>
  769. <span class="cline-any cline-yes">33x</span>
  770. <span class="cline-any cline-yes">33x</span>
  771. <span class="cline-any cline-neutral">&nbsp;</span>
  772. <span class="cline-any cline-yes">33x</span>
  773. <span class="cline-any cline-yes">27x</span>
  774. <span class="cline-any cline-neutral">&nbsp;</span>
  775. <span class="cline-any cline-yes">33x</span>
  776. <span class="cline-any cline-yes">2x</span>
  777. <span class="cline-any cline-yes">2x</span>
  778. <span class="cline-any cline-neutral">&nbsp;</span>
  779. <span class="cline-any cline-neutral">&nbsp;</span>
  780. <span class="cline-any cline-neutral">&nbsp;</span>
  781. <span class="cline-any cline-yes">1x</span>
  782. <span class="cline-any cline-neutral">&nbsp;</span>
  783. <span class="cline-any cline-neutral">&nbsp;</span>
  784. <span class="cline-any cline-yes">32x</span>
  785. <span class="cline-any cline-yes">32x</span>
  786. <span class="cline-any cline-neutral">&nbsp;</span>
  787. <span class="cline-any cline-yes">32x</span>
  788. <span class="cline-any cline-neutral">&nbsp;</span>
  789. <span class="cline-any cline-neutral">&nbsp;</span>
  790. <span class="cline-any cline-neutral">&nbsp;</span>
  791. <span class="cline-any cline-neutral">&nbsp;</span>
  792. <span class="cline-any cline-neutral">&nbsp;</span>
  793. <span class="cline-any cline-neutral">&nbsp;</span>
  794. <span class="cline-any cline-neutral">&nbsp;</span>
  795. <span class="cline-any cline-neutral">&nbsp;</span>
  796. <span class="cline-any cline-neutral">&nbsp;</span>
  797. <span class="cline-any cline-neutral">&nbsp;</span>
  798. <span class="cline-any cline-neutral">&nbsp;</span>
  799. <span class="cline-any cline-neutral">&nbsp;</span>
  800. <span class="cline-any cline-neutral">&nbsp;</span>
  801. <span class="cline-any cline-neutral">&nbsp;</span>
  802. <span class="cline-any cline-neutral">&nbsp;</span>
  803. <span class="cline-any cline-yes">32x</span>
  804. <span class="cline-any cline-yes">14x</span>
  805. <span class="cline-any cline-neutral">&nbsp;</span>
  806. <span class="cline-any cline-neutral">&nbsp;</span>
  807. <span class="cline-any cline-neutral">&nbsp;</span>
  808. <span class="cline-any cline-neutral">&nbsp;</span>
  809. <span class="cline-any cline-neutral">&nbsp;</span>
  810. <span class="cline-any cline-neutral">&nbsp;</span>
  811. <span class="cline-any cline-neutral">&nbsp;</span>
  812. <span class="cline-any cline-neutral">&nbsp;</span>
  813. <span class="cline-any cline-neutral">&nbsp;</span>
  814. <span class="cline-any cline-neutral">&nbsp;</span>
  815. <span class="cline-any cline-neutral">&nbsp;</span>
  816. <span class="cline-any cline-neutral">&nbsp;</span>
  817. <span class="cline-any cline-neutral">&nbsp;</span>
  818. <span class="cline-any cline-neutral">&nbsp;</span>
  819. <span class="cline-any cline-yes">32x</span>
  820. <span class="cline-any cline-yes">32x</span>
  821. <span class="cline-any cline-neutral">&nbsp;</span>
  822. <span class="cline-any cline-neutral">&nbsp;</span>
  823. <span class="cline-any cline-neutral">&nbsp;</span>
  824. <span class="cline-any cline-yes">52x</span>
  825. <span class="cline-any cline-yes">52x</span>
  826. <span class="cline-any cline-yes">1x</span>
  827. <span class="cline-any cline-yes">51x</span>
  828. <span class="cline-any cline-yes">51x</span>
  829. <span class="cline-any cline-neutral">&nbsp;</span>
  830. <span class="cline-any cline-neutral">&nbsp;</span>
  831. <span class="cline-any cline-neutral">&nbsp;</span>
  832. <span class="cline-any cline-yes">29x</span>
  833. <span class="cline-any cline-yes">22x</span>
  834. <span class="cline-any cline-yes">29x</span>
  835. <span class="cline-any cline-neutral">&nbsp;</span>
  836. <span class="cline-any cline-neutral">&nbsp;</span>
  837. <span class="cline-any cline-neutral">&nbsp;</span>
  838. <span class="cline-any cline-yes">6x</span>
  839. <span class="cline-any cline-yes">6x</span>
  840. <span class="cline-any cline-neutral">&nbsp;</span>
  841. <span class="cline-any cline-yes">6x</span>
  842. <span class="cline-any cline-yes">6566x</span>
  843. <span class="cline-any cline-neutral">&nbsp;</span>
  844. <span class="cline-any cline-neutral">&nbsp;</span>
  845. <span class="cline-any cline-neutral">&nbsp;</span>
  846. <span class="cline-any cline-neutral">&nbsp;</span>
  847. <span class="cline-any cline-yes">6x</span>
  848. <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict'
  849. const MiniPass = require('minipass')
  850. const Pax = require('./pax.js')
  851. const Header = require('./header.js')
  852. const ReadEntry = require('./read-entry.js')
  853. const fs = require('fs')
  854. const path = require('path')
  855. &nbsp;
  856. const types = require('./types.js')
  857. const maxReadSize = 16 * 1024 * 1024
  858. const PROCESS = Symbol('process')
  859. const FILE = Symbol('file')
  860. const DIRECTORY = Symbol('directory')
  861. const SYMLINK = Symbol('symlink')
  862. const HARDLINK = Symbol('hardlink')
  863. const HEADER = Symbol('header')
  864. const READ = Symbol('read')
  865. const LSTAT = Symbol('lstat')
  866. const ONLSTAT = Symbol('onlstat')
  867. const ONREAD = Symbol('onread')
  868. const ONREADLINK = Symbol('onreadlink')
  869. const OPENFILE = Symbol('openfile')
  870. const ONOPENFILE = Symbol('onopenfile')
  871. const CLOSE = Symbol('close')
  872. const warner = require('./warn-mixin.js')
  873. const winchars = require('./winchars.js')
  874. &nbsp;
  875. const WriteEntry = warner(class WriteEntry extends MiniPass {
  876. constructor (p, opt) {
  877. opt = opt || {}
  878. super(opt)
  879. if (typeof p !== 'string')
  880. throw new TypeError('path is required')
  881. this.path = p
  882. // suppress atime, ctime, uid, gid, uname, gname
  883. this.portable = !!opt.portable
  884. // until node has builtin pwnam functions, this'll have to do
  885. this.myuid = process.getuid &amp;&amp; process.getuid()
  886. this.myuser = process.env.USER || ''
  887. this.maxReadSize = opt.maxReadSize || maxReadSize
  888. this.linkCache = opt.linkCache || new Map()
  889. this.statCache = opt.statCache || new Map()
  890. this.preservePaths = !!opt.preservePaths
  891. this.cwd = opt.cwd || process.cwd()
  892. this.strict = !!opt.strict
  893. this.noPax = !!opt.noPax
  894. this.noMtime = !!opt.noMtime
  895. &nbsp;
  896. if (typeof opt.onwarn === 'function')
  897. this.on('warn', opt.onwarn)
  898. &nbsp;
  899. if (!this.preservePaths &amp;&amp; path.win32.isAbsolute(p)) {
  900. // absolutes on posix are also absolutes on win32
  901. // so we only need to test this one to get both
  902. const parsed = path.win32.parse(p)
  903. this.warn('stripping ' + parsed.root + ' from absolute path', p)
  904. this.path = p.substr(parsed.root.length)
  905. }
  906. &nbsp;
  907. this.win32 = !!opt.win32 || process.platform === 'win32'
  908. if (this.win32) {
  909. this.path = winchars.decode(this.path.replace(/\\/g, '/'))
  910. p = p.replace(/\\/g, '/')
  911. }
  912. &nbsp;
  913. this.absolute = opt.absolute || path.resolve(this.cwd, p)
  914. &nbsp;
  915. if (this.path === '')
  916. this.path = './'
  917. &nbsp;
  918. if (this.statCache.has(this.absolute))
  919. this[ONLSTAT](this.statCache.get(this.absolute))
  920. else
  921. this[LSTAT]()
  922. }
  923. &nbsp;
  924. [LSTAT] () {
  925. fs.lstat(this.absolute, (er, stat) =&gt; {
  926. if (er)
  927. return this.emit('error', er)
  928. this[ONLSTAT](stat)
  929. })
  930. }
  931. &nbsp;
  932. [ONLSTAT] (stat) {
  933. this.statCache.set(this.absolute, stat)
  934. this.stat = stat
  935. if (!stat.isFile())
  936. stat.size = 0
  937. this.type = getType(stat)
  938. this.emit('stat', stat)
  939. this[PROCESS]()
  940. }
  941. &nbsp;
  942. [PROCESS] () {
  943. switch (this.type) {
  944. case 'File': return this[FILE]()
  945. case 'Directory': return this[DIRECTORY]()
  946. case 'SymbolicLink': return this[SYMLINK]()
  947. // unsupported types are ignored.
  948. default: return this.end()
  949. }
  950. }
  951. &nbsp;
  952. [HEADER] () {
  953. if (this.type === 'Directory' &amp;&amp; this.portable)
  954. this.noMtime = true
  955. &nbsp;
  956. this.header = new Header({
  957. path: this.path,
  958. linkpath: this.linkpath,
  959. // only the permissions and setuid/setgid/sticky bitflags
  960. // not the higher-order bits that specify file type
  961. mode: this.stat.mode &amp; 0o7777,
  962. uid: this.portable ? null : this.stat.uid,
  963. gid: this.portable ? null : this.stat.gid,
  964. size: this.stat.size,
  965. mtime: this.noMtime ? null : this.stat.mtime,
  966. type: this.type,
  967. uname: this.portable ? null :
  968. this.stat.uid === this.myuid ? this.myuser : '',
  969. atime: this.portable ? null : this.stat.atime,
  970. ctime: this.portable ? null : this.stat.ctime
  971. })
  972. &nbsp;
  973. if (this.header.encode() &amp;&amp; !this.noPax)
  974. this.write(new Pax({
  975. atime: this.portable ? null : this.header.atime,
  976. ctime: this.portable ? null : this.header.ctime,
  977. gid: this.portable ? null : this.header.gid,
  978. mtime: this.noMtime ? null : this.header.mtime,
  979. path: this.path,
  980. linkpath: this.linkpath,
  981. size: this.header.size,
  982. uid: this.portable ? null : this.header.uid,
  983. uname: this.portable ? null : this.header.uname,
  984. dev: this.portable ? null : this.stat.dev,
  985. ino: this.portable ? null : this.stat.ino,
  986. nlink: this.portable ? null : this.stat.nlink
  987. }).encode())
  988. this.write(this.header.block)
  989. }
  990. &nbsp;
  991. [DIRECTORY] () {
  992. if (this.path.substr(-1) !== '/')
  993. this.path += '/'
  994. this.stat.size = 0
  995. this[HEADER]()
  996. this.end()
  997. }
  998. &nbsp;
  999. [SYMLINK] () {
  1000. fs.readlink(this.absolute, (er, linkpath) =&gt; {
  1001. if (er)
  1002. return this.emit('error', er)
  1003. this[ONREADLINK](linkpath)
  1004. })
  1005. }
  1006. &nbsp;
  1007. [ONREADLINK] (linkpath) {
  1008. this.linkpath = linkpath
  1009. this[HEADER]()
  1010. this.end()
  1011. }
  1012. &nbsp;
  1013. [HARDLINK] (linkpath) {
  1014. this.type = 'Link'
  1015. this.linkpath = path.relative(this.cwd, linkpath)
  1016. this.stat.size = 0
  1017. this[HEADER]()
  1018. this.end()
  1019. }
  1020. &nbsp;
  1021. [FILE] () {
  1022. if (this.stat.nlink &gt; 1) {
  1023. const linkKey = this.stat.dev + ':' + this.stat.ino
  1024. if (this.linkCache.has(linkKey)) {
  1025. const linkpath = this.linkCache.get(linkKey)
  1026. if (linkpath.indexOf(this.cwd) === 0)
  1027. return this[HARDLINK](linkpath)
  1028. }
  1029. this.linkCache.set(linkKey, this.absolute)
  1030. }
  1031. &nbsp;
  1032. this[HEADER]()
  1033. if (this.stat.size === 0)
  1034. return this.end()
  1035. &nbsp;
  1036. this[OPENFILE]()
  1037. }
  1038. &nbsp;
  1039. [OPENFILE] () {
  1040. fs.open(this.absolute, 'r', (er, fd) =&gt; {
  1041. if (er)
  1042. return this.emit('error', er)
  1043. this[ONOPENFILE](fd)
  1044. })
  1045. }
  1046. &nbsp;
  1047. [ONOPENFILE] (fd) {
  1048. const blockLen = 512 * Math.ceil(this.stat.size / 512)
  1049. const bufLen = Math.min(blockLen, this.maxReadSize)
  1050. const buf = Buffer.allocUnsafe(bufLen)
  1051. this[READ](fd, buf, 0, buf.length, 0, this.stat.size, blockLen)
  1052. }
  1053. &nbsp;
  1054. [READ] (fd, buf, offset, length, pos, remain, blockRemain) {
  1055. fs.read(fd, buf, offset, length, pos, (er, bytesRead) =&gt; {
  1056. if (er)
  1057. return this[CLOSE](fd, _ =&gt; this.emit('error', er))
  1058. this[ONREAD](fd, buf, offset, length, pos, remain, blockRemain, bytesRead)
  1059. })
  1060. }
  1061. &nbsp;
  1062. [CLOSE] (fd, cb) {
  1063. fs.close(fd, cb)
  1064. }
  1065. &nbsp;
  1066. [ONREAD] (fd, buf, offset, length, pos, remain, blockRemain, bytesRead) {
  1067. if (bytesRead &lt;= 0 &amp;&amp; remain &gt; 0) {
  1068. const er = new Error('unexpected EOF')
  1069. er.path = this.absolute
  1070. er.syscall = 'read'
  1071. er.code = 'EOF'
  1072. this.emit('error', er)
  1073. }
  1074. &nbsp;
  1075. // null out the rest of the buffer, if we could fit the block padding
  1076. if (bytesRead === remain) {
  1077. for (let i = bytesRead; i &lt; length &amp;&amp; bytesRead &lt; blockRemain; i++) {
  1078. buf[i + offset] = 0
  1079. bytesRead ++
  1080. remain ++
  1081. }
  1082. }
  1083. &nbsp;
  1084. const writeBuf = offset === 0 &amp;&amp; bytesRead === buf.length ?
  1085. buf : buf.slice(offset, offset + bytesRead)
  1086. remain -= bytesRead
  1087. blockRemain -= bytesRead
  1088. pos += bytesRead
  1089. offset += bytesRead
  1090. &nbsp;
  1091. this.write(writeBuf)
  1092. &nbsp;
  1093. if (!remain) {
  1094. if (blockRemain)
  1095. this.write(Buffer.alloc(blockRemain))
  1096. this.end()
  1097. this[CLOSE](fd, _ =&gt; _)
  1098. return
  1099. }
  1100. &nbsp;
  1101. if (offset &gt;= length) {
  1102. buf = Buffer.allocUnsafe(length)
  1103. offset = 0
  1104. }
  1105. length = buf.length - offset
  1106. this[READ](fd, buf, offset, length, pos, remain, blockRemain)
  1107. }
  1108. })
  1109. &nbsp;
  1110. class WriteEntrySync extends WriteEntry {
  1111. constructor (path, opt) {
  1112. super(path, opt)
  1113. }
  1114. &nbsp;
  1115. [LSTAT] () {
  1116. this[ONLSTAT](fs.lstatSync(this.absolute))
  1117. }
  1118. &nbsp;
  1119. [SYMLINK] () {
  1120. this[ONREADLINK](fs.readlinkSync(this.absolute))
  1121. }
  1122. &nbsp;
  1123. [OPENFILE] () {
  1124. this[ONOPENFILE](fs.openSync(this.absolute, 'r'))
  1125. }
  1126. &nbsp;
  1127. [READ] (fd, buf, offset, length, pos, remain, blockRemain) {
  1128. let threw = true
  1129. try {
  1130. const bytesRead = fs.readSync(fd, buf, offset, length, pos)
  1131. this[ONREAD](fd, buf, offset, length, pos, remain, blockRemain, bytesRead)
  1132. threw = false
  1133. } finally {
  1134. if (threw)
  1135. try { this[CLOSE](fd) } catch (er) {}
  1136. }
  1137. }
  1138. &nbsp;
  1139. [CLOSE] (fd) {
  1140. fs.closeSync(fd)
  1141. }
  1142. }
  1143. &nbsp;
  1144. const WriteEntryTar = warner(class WriteEntryTar extends MiniPass {
  1145. constructor (readEntry, opt) {
  1146. opt = opt || {}
  1147. super(opt)
  1148. this.preservePaths = !!opt.preservePaths
  1149. this.portable = !!opt.portable
  1150. this.strict = !!opt.strict
  1151. this.noPax = !!opt.noPax
  1152. this.noMtime = !!opt.noMtime
  1153. &nbsp;
  1154. this.readEntry = readEntry
  1155. this.type = readEntry.type
  1156. <span class="missing-if-branch" title="if path not taken" >I</span>if (this.type === 'Directory' &amp;&amp; this.portable)
  1157. <span class="cstat-no" title="statement not covered" > this.noMtime = true</span>
  1158. &nbsp;
  1159. this.path = readEntry.path
  1160. this.mode = readEntry.mode
  1161. if (this.mode)
  1162. this.mode = this.mode &amp; 0o7777
  1163. this.uid = this.portable ? null : readEntry.uid
  1164. this.gid = this.portable ? null : readEntry.gid
  1165. this.uname = this.portable ? null : readEntry.uname
  1166. this.gname = this.portable ? null : readEntry.gname
  1167. this.size = readEntry.size
  1168. this.mtime = this.noMtime ? <span class="branch-0 cbranch-no" title="branch not covered" >null </span>: readEntry.mtime
  1169. this.atime = this.portable ? null : readEntry.atime
  1170. this.ctime = this.portable ? null : readEntry.ctime
  1171. this.linkpath = readEntry.linkpath
  1172. &nbsp;
  1173. if (typeof opt.onwarn === 'function')
  1174. this.on('warn', opt.onwarn)
  1175. &nbsp;
  1176. if (path.isAbsolute(this.path) &amp;&amp; !this.preservePaths) {
  1177. const parsed = path.parse(this.path)
  1178. this.warn(
  1179. 'stripping ' + parsed.root + ' from absolute path',
  1180. this.path
  1181. )
  1182. this.path = this.path.substr(parsed.root.length)
  1183. }
  1184. &nbsp;
  1185. this.remain = readEntry.size
  1186. this.blockRemain = readEntry.startBlockSize
  1187. &nbsp;
  1188. this.header = new Header({
  1189. path: this.path,
  1190. linkpath: this.linkpath,
  1191. // only the permissions and setuid/setgid/sticky bitflags
  1192. // not the higher-order bits that specify file type
  1193. mode: this.mode,
  1194. uid: this.portable ? null : this.uid,
  1195. gid: this.portable ? null : this.gid,
  1196. size: this.size,
  1197. mtime: this.noMtime ? <span class="branch-0 cbranch-no" title="branch not covered" >null </span>: this.mtime,
  1198. type: this.type,
  1199. uname: this.portable ? null : this.uname,
  1200. atime: this.portable ? null : this.atime,
  1201. ctime: this.portable ? null : this.ctime
  1202. })
  1203. &nbsp;
  1204. if (this.header.encode() &amp;&amp; !this.noPax)
  1205. super.write(new Pax({
  1206. atime: this.portable ? null : this.atime,
  1207. ctime: this.portable ? null : this.ctime,
  1208. gid: this.portable ? null : this.gid,
  1209. mtime: this.noMtime ? <span class="branch-0 cbranch-no" title="branch not covered" >null </span>: this.mtime,
  1210. path: this.path,
  1211. linkpath: this.linkpath,
  1212. size: this.size,
  1213. uid: this.portable ? null : this.uid,
  1214. uname: this.portable ? null : this.uname,
  1215. dev: this.portable ? null : this.readEntry.dev,
  1216. ino: this.portable ? null : this.readEntry.ino,
  1217. nlink: this.portable ? null : this.readEntry.nlink
  1218. }).encode())
  1219. &nbsp;
  1220. super.write(this.header.block)
  1221. readEntry.pipe(this)
  1222. }
  1223. &nbsp;
  1224. write (data) {
  1225. const writeLen = data.length
  1226. if (writeLen &gt; this.blockRemain)
  1227. throw new Error('writing more to entry than is appropriate')
  1228. this.blockRemain -= writeLen
  1229. return super.write(data)
  1230. }
  1231. &nbsp;
  1232. end () {
  1233. if (this.blockRemain)
  1234. this.write(Buffer.alloc(this.blockRemain))
  1235. return super.end()
  1236. }
  1237. })
  1238. &nbsp;
  1239. WriteEntry.Sync = WriteEntrySync
  1240. WriteEntry.Tar = WriteEntryTar
  1241. &nbsp;
  1242. const getType = stat =&gt;
  1243. stat.isFile() ? 'File'
  1244. : stat.isDirectory() ? 'Directory'
  1245. : stat.isSymbolicLink() ? 'SymbolicLink'
  1246. : 'Unsupported'
  1247. &nbsp;
  1248. module.exports = WriteEntry
  1249. &nbsp;</pre></td></tr>
  1250. </table></pre>
  1251. <div class='push'></div><!-- for sticky footer -->
  1252. </div><!-- /wrapper -->
  1253. <div class='footer quiet pad2 space-top1 center small'>
  1254. Code coverage
  1255. generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Nov 20 2017 16:00:38 GMT-0800 (PST)
  1256. </div>
  1257. </div>
  1258. <script src="../../prettify.js"></script>
  1259. <script>
  1260. window.onload = function () {
  1261. if (typeof prettyPrint === 'function') {
  1262. prettyPrint();
  1263. }
  1264. };
  1265. </script>
  1266. <script src="../../sorter.js"></script>
  1267. </body>
  1268. </html>