MCPcopy Index your code
hub / github.com/nodejs/node / writeAll

Function writeAll

lib/fs.js:2761–2813  ·  view source on GitHub ↗
(fd, isUserFd, buffer, offset, length, signal, flush, callback)

Source from the content-addressed store, hash-verified

2759}
2760
2761function writeAll(fd, isUserFd, buffer, offset, length, signal, flush, callback) {
2762 if (signal?.aborted) {
2763 const abortError = new AbortError(undefined, { cause: signal.reason });
2764 if (isUserFd) {
2765 callback(abortError);
2766 } else {
2767 fs.close(fd, (err) => {
2768 callback(aggregateTwoErrors(err, abortError));
2769 });
2770 }
2771 return;
2772 }
2773 // write(fd, buffer, offset, length, position, callback)
2774 fs.write(fd, buffer, offset, length, null, (writeErr, written) => {
2775 if (writeErr) {
2776 if (isUserFd) {
2777 callback(writeErr);
2778 } else {
2779 fs.close(fd, (err) => {
2780 callback(aggregateTwoErrors(err, writeErr));
2781 });
2782 }
2783 } else if (written === length) {
2784 if (!flush) {
2785 if (isUserFd) {
2786 callback(null);
2787 } else {
2788 fs.close(fd, callback);
2789 }
2790 } else {
2791 fs.fsync(fd, (syncErr) => {
2792 if (syncErr) {
2793 if (isUserFd) {
2794 callback(syncErr);
2795 } else {
2796 fs.close(fd, (err) => {
2797 callback(aggregateTwoErrors(err, syncErr));
2798 });
2799 }
2800 } else if (isUserFd) {
2801 callback(null);
2802 } else {
2803 fs.close(fd, callback);
2804 }
2805 });
2806 }
2807 } else {
2808 offset += written;
2809 length -= written;
2810 writeAll(fd, isUserFd, buffer, offset, length, signal, flush, callback);
2811 }
2812 });
2813}
2814
2815/**
2816 * Asynchronously writes data to the file.

Callers 1

writeFileFunction · 0.70

Calls 5

aggregateTwoErrorsFunction · 0.85
fsyncMethod · 0.80
closeMethod · 0.65
callbackFunction · 0.50
writeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…