.js 77628cf8bf first comm 3 anni fa css-shapes.js 77628cf8bf first comm 3 anni fa css-snappoints.js 77628cf8bf first comm 3 anni fa css-sticky.js 77628cf8bf first comm 3 anni fa css-subgrid.js 77628cf8bf first comm 3 anni fa css-supports-api.js 77628cf8bf first comm 3 anni fa css-table.js 77628cf8bf first comm 3 anni fa css-text-align-last.js 77628cf8bf first comm 3 anni fa css-text-box-trim.js 77628cf8bf first comm 3 anni fa css-text-indent.js 77628cf8bf first comm 3 anni fa css-text-justify.js 77628cf8bf first comm 3 anni fa css-text-orientation.js 77628cf8bf first comm 3 anni fa css-text-spacing.js 77628cf8bf first comm 3 anni fa css-textshadow.js 77628cf8bf first comm 3 anni fa css-touch-action.js 77628cf8bf first comm 3 anni fa css-transitions.js 77628cf8bf first comm 3 anni fa css-unicode-bidi.js 77628cf8bf first comm 3 anni fa css-unset-value.js 77628cf8bf first comm 3 anni fa css-variables.js 77628cf8bf first comm 3 anni fa css-when-else.js 77628cf8bf first comm 3 anni fa css-widows-orphans.js 77628cf8bf first comm 3 anni fa css-width-stretch.js 77628cf8bf first comm 3 anni fa css-writing-mode.js 77628cf8bf first comm 3 anni fa css-zoom.js 77628cf8bf first comm 3 anni fa css3-attr.js 77628cf8bf first comm 3 anni fa css3-boxsizing.js 77628cf8bf first comm 3 anni fa css3-colors.js 77628cf8bf first comm 3 anni fa css3-cursors-grab.js 77628cf8bf first comm 3 anni fa css3-cursors-newer.js 77628cf8bf first comm 3 anni fa css3-cursors.js 77628cf8bf first comm 3 anni fa css3-tabsize.js 77628cf8bf first comm 3 anni fa currentcolor.js 77628cf8bf first comm 3 anni fa custom-elements.js 77628cf8bf first comm 3 anni fa custom-elementsv1.js 77628cf8bf first comm 3 anni fa customevent.js 77628cf8bf first comm 3 anni fa datalist.js 77628cf8bf first comm 3 anni fa dataset.js 77628cf8bf first comm 3 anni fa datauri.js 77628cf8bf first comm 3 anni fa date-tolocaledatestring.js 77628cf8bf first comm 3 anni fa declarative-shadow-dom.js 77628cf8bf first comm 3 anni fa decorators.js 77628cf8bf first comm 3 anni fa details.js 77628cf8bf first comm 3 anni fa deviceorientation.js 77628cf8bf first comm 3 anni fa devicepixelratio.js 77628cf8bf first comm 3 anni fa dialog.js 77628cf8bf first comm 3 anni fa dispatchevent.js 77628cf8bf first comm 3 anni fa dnssec.js 77628cf8bf first comm 3 anni fa do-not-track.js 77628cf8bf first comm 3 anni fa document-currentscript.js 77628cf8bf first comm 3 anni fa document-evaluate-xpath.js 77628cf8bf first comm 3 anni fa document-execcommand.js 77628cf8bf first comm 3 anni fa document-policy.js 77628cf8bf first comm 3 anni fa document-scrollingelement.js 77628cf8bf first comm 3 anni fa documenthead.js 77628cf8bf first comm 3 anni fa dom-manip-convenience.js 77628cf8bf first comm 3 anni fa dom-range.js 77628cf8bf first comm 3 anni fa domcontentloaded.js 77628cf8bf first comm 3 anni fa dommatrix.js 77628cf8bf first comm 3 anni fa download.js 77628cf8bf first comm 3 anni fa dragndrop.js 77628cf8bf first comm 3 anni fa element-closest.js 77628cf8bf first comm 3 anni fa element-from-point.js 77628cf8bf first comm 3 anni fa element-scroll-methods.js 77628cf8bf first comm 3 anni fa eme.js 77628cf8bf first comm 3 anni fa eot.js 77628cf8bf first comm 3 anni fa es5.js 77628cf8bf first comm 3 anni fa es6-class.js 77628cf8bf first comm 3 anni fa es6-generators.js 77628cf8bf first comm 3 anni fa es6-module-dynamic-import.js 77628cf8bf first comm 3 anni fa es6-module.js 77628cf8bf first comm 3 anni fa es6-number.js 77628cf8bf first comm 3 anni fa es6-string-includes.js 77628cf8bf first comm 3 anni fa es6.js 77628cf8bf first comm 3 anni fa eventsource.js 77628cf8bf first comm 3 anni fa extended-system-fonts.js 77628cf8bf first comm 3 anni fa feature-policy.js 77628cf8bf first comm 3 anni fa fetch.js 77628cf8bf first comm 3 anni fa fieldset-disabled.js 77628cf8bf first comm 3 anni fa fileapi.js 77628cf8bf first comm 3 anni fa filereader.js 77628cf8bf first comm 3 anni fa filereadersync.js 77628cf8bf first comm 3 anni fa filesystem.js 77628cf8bf first comm 3 anni fa flac.js 77628cf8bf first comm 3 anni fa flexbox-gap.js 77628cf8bf first comm 3 anni fa flexbox.js 77628cf8bf first comm 3 anni fa flow-root.js 77628cf8bf first comm 3 anni fa focusin-focusout-events.js 77628cf8bf first comm 3 anni fa font-family-system-ui.js 77628cf8bf first comm 3 anni fa font-feature.js 77628cf8bf first comm 3 anni fa font-kerning.js 77628cf8bf first comm 3 anni fa font-loading.js 77628cf8bf first comm 3 anni fa font-size-adjust.js 77628cf8bf first comm 3 anni fa font-smooth.js 77628cf8bf first comm 3 anni fa font-unicode-range.js 77628cf8bf first comm 3 anni fa font-variant-alternates.js 77628cf8bf first comm 3 anni fa font-variant-numeric.js 77628cf8bf first comm 3 anni fa fontface.js 77628cf8bf first comm 3 anni fa form-attribute.js 77628cf8bf first comm 3 anni fa form-submit-attributes.js 77628cf8bf first comm 3 anni fa form-validation.js 77628cf8bf first comm 3 anni fa forms.js 77628cf8bf first comm 3 anni fa fullscreen.js 77628cf8bf first comm 3 anni fa gamepad.js 77628cf8bf first comm 3 anni fa geolocation.js 77628cf8bf first comm 3 anni fa getboundingclientrect.js 77628cf8bf first comm 3 anni fa getcomputedstyle.js 77628cf8bf first comm 3 anni fa getelementsbyclassname.js 77628cf8bf first comm 3 anni fa getrandomvalues.js 77628cf8bf first comm 3 anni fa gyroscope.js 77628cf8bf first comm 3 anni fa hardwareconcurrency.js 77628cf8bf first comm 3 anni fa hashchange.js 77628cf8bf first comm 3 anni fa heif.js 77628cf8bf first comm 3 anni fa hevc.js 77628cf8bf first comm 3 anni fa hidden.js 77628cf8bf first comm 3 anni fa high-resolution-time.js 77628cf8bf first comm 3 anni fa history.js 77628cf8bf first comm 3 anni fa html-media-capture.js 77628cf8bf first comm 3 anni fa html5semantic.js 77628cf8bf first comm 3 anni fa http-live-streaming.js 77628cf8bf first comm 3 anni fa http2.js 77628cf8bf first comm 3 anni fa http3.js 77628cf8bf first comm 3 anni fa iframe-sandbox.js 77628cf8bf first comm 3 anni fa iframe-seamless.js 77628cf8bf first comm 3 anni fa iframe-srcdoc.js 77628cf8bf first comm 3 anni fa imagecapture.js 77628cf8bf first comm 3 anni fa ime.js 77628cf8bf first comm 3 anni fa img-naturalwidth-naturalheight.js 77628cf8bf first comm 3 anni fa import-maps.js 77628cf8bf first comm 3 anni fa imports.js 77628cf8bf first comm 3 anni fa indeterminate-checkbox.js 77628cf8bf first comm 3 anni fa indexeddb.js 77628cf8bf first comm 3 anni fa indexeddb2.js 77628cf8bf first comm 3 anni fa inline-block.js 77628cf8bf first comm 3 anni fa innertext.js 77628cf8bf first comm 3 anni fa input-autocomplete-onoff.js 77628cf8bf first comm 3 anni fa input-color.js 77628cf8bf first comm 3 anni fa input-datetime.js 77628cf8bf first comm 3 anni fa input-email-tel-url.js 77628cf8bf first comm 3 anni fa input-event.js 77628cf8bf first comm 3 anni fa input-file-accept.js 77628cf8bf first comm 3 anni fa input-file-directory.js 77628cf8bf first comm 3 anni fa input-file-multiple.js 77628cf8bf first comm 3 anni fa input-inputmode.js 77628cf8bf first comm 3 anni fa input-minlength.js 77628cf8bf first comm 3 anni fa input-number.js 77628cf8bf first comm 3 anni fa input-pattern.js 77628cf8bf first comm 3 anni fa input-placeholder.js 77628cf8bf first comm 3 anni fa input-range.js 77628cf8bf first comm 3 anni fa input-search.js 77628cf8bf first comm 3 anni fa input-selection.js 77628cf8bf first comm 3 anni fa insert-adjacent.js 77628cf8bf first comm 3 anni fa insertadjacenthtml.js 77628cf8bf first comm 3 anni fa internationalization.js 77628cf8bf first comm 3 anni fa intersectionobserver-v2.js 77628cf8bf first comm 3 anni fa intersectionobserver.js 77628cf8bf first comm 3 anni fa intl-pluralrules.js 77628cf8bf first comm 3 anni fa intrinsic-width.js 77628cf8bf first comm 3 anni fa jpeg2000.js 77628cf8bf first comm 3 anni fa jpegxl.js 77628cf8bf first comm 3 anni fa jpegxr.js 77628cf8bf first comm 3 anni fa js-regexp-lookbehind.js 77628cf8bf first comm 3 anni fa json.js 77628cf8bf first comm 3 anni fa justify-content-space-evenly.js 77628cf8bf first comm 3 anni fa kerning-pairs-ligatures.js 77628cf8bf first comm 3 anni fa keyboardevent-charcode.js 77628cf8bf first comm 3 anni fa keyboardevent-code.js 77628cf8bf first comm 3 anni fa keyboardevent-getmodifierstate.js 77628cf8bf first comm 3 anni fa keyboardevent-key.js 77628cf8bf first comm 3 anni fa keyboardevent-location.js 77628cf8bf first comm 3 anni fa keyboardevent-which.js 77628cf8bf first comm 3 anni fa lazyload.js 77628cf8bf first comm 3 anni fa let.js 77628cf8bf first comm 3 anni fa link-icon-png.js 77628cf8bf first comm 3 anni fa link-icon-svg.js 77628cf8bf first comm 3 anni fa link-rel-dns-prefetch.js 77628cf8bf first comm 3 anni fa link-rel-modulepreload.js 77628cf8bf first comm 3 anni fa link-rel-preconnect.js 77628cf8bf first comm 3 anni fa link-rel-prefetch.js 77628cf8bf first comm 3 anni fa link-rel-preload.js 77628cf8bf first comm 3 anni fa link-rel-prerender.js 77628cf8bf first comm 3 anni fa loading-lazy-attr.js 77628cf8bf first comm 3 anni fa localecompare.js 77628cf8bf first comm 3 anni fa magnetometer.js 77628cf8bf first comm 3 anni fa matchesselector.js 77628cf8bf first comm 3 anni fa matchmedia.js 77628cf8bf first comm 3 anni fa mathml.js 77628cf8bf first comm 3 anni fa maxlength.js 77628cf8bf first comm 3 anni fa mdn-css-unicode-bidi-isolate-override.js 77628cf8bf first comm 3 anni fa mdn-css-unicode-bidi-isolate.js 77628cf8bf first comm 3 anni fa mdn-css-unicode-bidi-plaintext.js 77628cf8bf first comm 3 anni fa mdn-text-decoration-color.js 77628cf8bf first comm 3 anni fa mdn-text-decoration-line.js 77628cf8bf first comm 3 anni fa mdn-text-decoration-shorthand.js 77628cf8bf first comm 3 anni fa mdn-text-decoration-style.js 77628cf8bf first comm 3 anni fa media-fragments.js 77628cf8bf first comm 3 anni fa mediacapture-fromelement.js 77628cf8bf first comm 3 anni fa mediarecorder.js 77628cf8bf first comm 3 anni fa mediasource.js 77628cf8bf first comm 3 anni fa menu.js 77628cf8bf first comm 3 anni fa meta-theme-color.js 77628cf8bf first comm 3 anni fa meter.js 77628cf8bf first comm 3 anni fa midi.js 77628cf8bf first comm 3 anni fa minmaxwh.js 77628cf8bf first comm 3 anni fa mp3.js 77628cf8bf first comm 3 anni fa mpeg-dash.js 77628cf8bf first comm 3 anni fa mpeg4.js 77628cf8bf first comm 3 anni fa multibackgrounds.js 77628cf8bf first comm 3 anni fa multicolumn.js 77628cf8bf first comm 3 anni fa mutation-events.js 77628cf8bf first comm 3 anni fa mutationobserver.js 77628cf8bf first comm 3 anni fa namevalue-storage.js 77628cf8bf first comm 3 anni fa native-filesystem-api.js 77628cf8bf first comm 3 anni fa nav-timing.js 77628cf8bf first comm 3 anni fa netinfo.js 77628cf8bf first comm 3 anni fa notifications.js 77628cf8bf first comm 3 anni fa object-entries.js 77628cf8bf first comm 3 anni fa object-fit.js 77628cf8bf first comm 3 anni fa object-observe.js 77628cf8bf first comm 3 anni fa object-values.js 77628cf8bf first comm 3 anni fa objectrtc.js 77628cf8bf first comm 3 anni fa offline-apps.js 77628cf8bf first comm 3 anni fa offscreencanvas.js 77628cf8bf first comm 3 anni fa ogg-vorbis.js 77628cf8bf first comm 3 anni fa ogv.js 77628cf8bf first comm 3 anni fa ol-reversed.js 77628cf8bf first comm 3 anni fa once-event-listener.js 77628cf8bf first comm 3 anni fa online-status.js 77628cf8bf first comm 3 anni fa opus.js 77628cf8bf first comm 3 anni fa orientation-sensor.js 77628cf8bf first comm 3 anni fa outline.js 77628cf8bf first comm 3 anni fa pad-start-end.js 77628cf8bf first comm 3 anni fa page-transition-events.js 77628cf8bf first comm 3 anni fa pagevisibility.js 77628cf8bf first comm 3 anni fa passive-event-listener.js 77628cf8bf first comm 3 anni fa passwordrules.js 77628cf8bf first comm 3 anni fa path2d.js 77628cf8bf first comm 3 anni fa payment-request.js 77628cf8bf first comm 3 anni fa pdf-viewer.js 77628cf8bf first comm 3 anni fa permissions-api.js 77628cf8bf first comm 3 anni fa permissions-policy.js 77628cf8bf first comm 3 anni fa picture-in-picture.js 77628cf8bf first comm 3 anni fa picture.js 77628cf8bf first comm 3 anni fa ping.js 77628cf8bf first comm 3 anni fa png-alpha.js 77628cf8bf first comm 3 anni fa pointer-events.js 77628cf8bf first comm 3 anni fa pointer.js 77628cf8bf first comm 3 anni fa pointerlock.js 77628cf8bf first comm 3 anni fa portals.js 77628cf8bf first comm 3 anni fa prefers-color-scheme.js 77628cf8bf first comm 3 anni fa prefers-reduced-motion.js 77628cf8bf first comm 3 anni fa progress.js 77628cf8bf first comm 3 anni fa promise-finally.js 77628cf8bf first comm 3 anni fa promises.js 77628cf8bf first comm 3 anni fa proximity.js 77628cf8bf first comm 3 anni fa proxy.js 77628cf8bf first comm 3 anni fa publickeypinning.js 77628cf8bf first comm 3 anni fa push-api.js 77628cf8bf first comm 3 anni fa queryselector.js 77628cf8bf first comm 3 anni fa readonly-attr.js 77628cf8bf first comm 3 anni fa referrer-policy.js 77628cf8bf first comm 3 anni fa registerprotocolhandler.js 77628cf8bf first comm 3 anni fa rel-noopener.js 77628cf8bf first comm 3 anni fa rel-noreferrer.js 77628cf8bf first comm 3 anni fa rellist.js 77628cf8bf first comm 3 anni fa rem.js 77628cf8bf first comm 3 anni fa requestanimationframe.js 77628cf8bf first comm 3 anni fa requestidlecallback.js 77628cf8bf first comm 3 anni fa resizeobserver.js 77628cf8bf first comm 3 anni fa resource-timing.js 77628cf8bf first comm 3 anni fa rest-parameters.js 77628cf8bf first comm 3 anni fa rtcpeerconnection.js 77628cf8bf first comm 3 anni fa ruby.js 77628cf8bf first comm 3 anni fa run-in.js 77628cf8bf first comm 3 anni fa same-site-cookie-attribute.js 77628cf8bf first comm 3 anni fa screen-orientation.js 77628cf8bf first comm 3 anni fa script-async.js 77628cf8bf first comm 3 anni fa script-defer.js 77628cf8bf first comm 3 anni fa scrollintoview.js 77628cf8bf first comm 3 anni fa scrollintoviewifneeded.js 77628cf8bf first comm 3 anni fa sdch.js 77628cf8bf first comm 3 anni fa selection-api.js 77628cf8bf first comm 3 anni fa server-timing.js 77628cf8bf first comm 3 anni fa serviceworkers.js 77628cf8bf first comm 3 anni fa setimmediate.js 77628cf8bf first comm 3 anni fa shadowdom.js 77628cf8bf first comm 3 anni fa shadowdomv1.js 77628cf8bf first comm 3 anni fa sharedarraybuffer.js 77628cf8bf first comm 3 anni fa sharedworkers.js 77628cf8bf first comm 3 anni fa sni.js 77628cf8bf first comm 3 anni fa spdy.js 77628cf8bf first comm 3 anni fa speech-recognition.js 77628cf8bf first comm 3 anni fa speech-synthesis.js 77628cf8bf first comm 3 anni fa spellcheck-attribute.js 77628cf8bf first comm 3 anni fa sql-storage.js 77628cf8bf first comm 3 anni fa srcset.js 77628cf8bf first comm 3 anni fa stream.js 77628cf8bf first comm 3 anni fa streams.js 77628cf8bf first comm 3 anni fa stricttransportsecurity.js 77628cf8bf first comm 3 anni fa style-scoped.js 77628cf8bf first comm 3 anni fa subresource-bundling.js 77628cf8bf first comm 3 anni fa subresource-integrity.js 77628cf8bf first comm 3 anni fa svg-css.js 77628cf8bf first comm 3 anni fa svg-filters.js 77628cf8bf first comm 3 anni fa svg-fonts.js 77628cf8bf first comm 3 anni fa svg-fragment.js 77628cf8bf first comm 3 anni fa svg-html.js 77628cf8bf first comm 3 anni fa svg-html5.js 77628cf8bf first comm 3 anni fa svg-img.js 77628cf8bf first comm 3 anni fa svg-smil.js 77628cf8bf first comm 3 anni fa svg.js 77628cf8bf first comm 3 anni fa sxg.js 77628cf8bf first comm 3 anni fa tabindex-attr.js 77628cf8bf first comm 3 anni fa template-literals.js 77628cf8bf first comm 3 anni fa template.js 77628cf8bf first comm 3 anni fa temporal.js 77628cf8bf first comm 3 anni fa testfeat.js 77628cf8bf first comm 3 anni fa text-decoration.js 77628cf8bf first comm 3 anni fa text-emphasis.js 77628cf8bf first comm 3 anni fa text-overflow.js 77628cf8bf first comm 3 anni fa text-size-adjust.js 77628cf8bf first comm 3 anni fa text-stroke.js 77628cf8bf first comm 3 anni fa textcontent.js 77628cf8bf first comm 3 anni fa textencoder.js 77628cf8bf first comm 3 anni fa tls1-1.js 77628cf8bf first comm 3 anni fa tls1-2.js 77628cf8bf first comm 3 anni fa tls1-3.js 77628cf8bf first comm 3 anni fa touch.js 77628cf8bf first comm 3 anni fa transforms2d.js 77628cf8bf first comm 3 anni fa transforms3d.js 77628cf8bf first comm 3 anni fa trusted-types.js 77628cf8bf first comm 3 anni fa ttf.js 77628cf8bf first comm 3 anni fa typedarrays.js 77628cf8bf first comm 3 anni fa u2f.js 77628cf8bf first comm 3 anni fa unhandledrejection.js 77628cf8bf first comm 3 anni fa upgradeinsecurerequests.js 77628cf8bf first comm 3 anni fa url-scroll-to-text-fragment.js 77628cf8bf first comm 3 anni fa url.js 77628cf8bf first comm 3 anni fa urlsearchparams.js 77628cf8bf first comm 3 anni fa use-strict.js 77628cf8bf first comm 3 anni fa user-select-none.js 77628cf8bf first comm 3 anni fa user-timing.js 77628cf8bf first comm 3 anni fa variable-fonts.js 77628cf8bf first comm 3 anni fa vector-effect.js 77628cf8bf first comm 3 anni fa vibration.js 77628cf8bf first comm 3 anni fa video.js 77628cf8bf first comm 3 anni fa videotracks.js 77628cf8bf first comm 3 anni fa viewport-unit-variants.js 77628cf8bf first comm 3 anni fa viewport-units.js 77628cf8bf first comm 3 anni fa wai-aria.js 77628cf8bf first comm 3 anni fa wake-lock.js 77628cf8bf first comm 3 anni fa wasm.js 77628cf8bf first comm 3 anni fa wav.js 77628cf8bf first comm 3 anni fa wbr-element.js 77628cf8bf first comm 3 anni fa web-animation.js 77628cf8bf first comm 3 anni fa web-app-manifest.js 77628cf8bf first comm 3 anni fa web-bluetooth.js 77628cf8bf first comm 3 anni fa web-serial.js 77628cf8bf first comm 3 anni fa web-share.js 77628cf8bf first comm 3 anni fa webauthn.js 77628cf8bf first comm 3 anni fa webcodecs.js 77628cf8bf first comm 3 anni fa webgl.js 77628cf8bf first comm 3 anni fa webgl2.js 77628cf8bf first comm 3 anni fa webgpu.js 77628cf8bf first comm 3 anni fa webhid.js 77628cf8bf first comm 3 anni fa webkit-user-drag.js 77628cf8bf first comm 3 anni fa webm.js 77628cf8bf first comm 3 anni fa webnfc.js 77628cf8bf first comm 3 anni fa webp.js 77628cf8bf first comm 3 anni fa websockets.js 77628cf8bf first comm 3 anni fa webtransport.js 77628cf8bf first comm 3 anni fa webusb.js 77628cf8bf first comm 3 anni fa webvr.js 77628cf8bf first comm 3 anni fa webvtt.js 77628cf8bf first comm 3 anni fa webworkers.js 77628cf8bf first comm 3 anni fa webxr.js 77628cf8bf first comm 3 anni fa will-change.js 77628cf8bf first comm 3 anni fa woff.js 77628cf8bf first comm 3 anni fa woff2.js 77628cf8bf first comm 3 anni fa word-break.js 77628cf8bf first comm 3 anni fa wordwrap.js 77628cf8bf first comm 3 anni fa x-doc-messaging.js 77628cf8bf first comm 3 anni fa x-frame-options.js 77628cf8bf first comm 3 anni fa xhr2.js 77628cf8bf first comm 3 anni fa xhtml.js 77628cf8bf first comm 3 anni fa xhtmlsmil.js 77628cf8bf first comm 3 anni fa xml-serializer.js 77628cf8bf first comm 3 anni fa tum/tmt_learning - Gogs: Simplico Git Service

Bez popisu

Prach Pongpanich 6f337d0a21 install tailwind alpine daisyui %!s(int64=3) %!d(string=před) roky
..
LICENSE 6f337d0a21 install tailwind alpine daisyui %!s(int64=3) %!d(string=před) roky
README.md 6f337d0a21 install tailwind alpine daisyui %!s(int64=3) %!d(string=před) roky
index.d.ts 6f337d0a21 install tailwind alpine daisyui %!s(int64=3) %!d(string=před) roky
index.js 6f337d0a21 install tailwind alpine daisyui %!s(int64=3) %!d(string=před) roky
package.json 6f337d0a21 install tailwind alpine daisyui %!s(int64=3) %!d(string=před) roky

README.md

readdirp Weekly downloads

Recursive version of fs.readdir. Exposes a stream API and a promise API.

npm install readdirp
const readdirp = require('readdirp');

// Use streams to achieve small RAM & CPU footprint.
// 1) Streams example with for-await.
for await (const entry of readdirp('.')) {
  const {path} = entry;
  console.log(`${JSON.stringify({path})}`);
}

// 2) Streams example, non for-await.
// Print out all JS files along with their size within the current folder & subfolders.
readdirp('.', {fileFilter: '*.js', alwaysStat: true})
  .on('data', (entry) => {
    const {path, stats: {size}} = entry;
    console.log(`${JSON.stringify({path, size})}`);
  })
  // Optionally call stream.destroy() in `warn()` in order to abort and cause 'close' to be emitted
  .on('warn', error => console.error('non-fatal error', error))
  .on('error', error => console.error('fatal error', error))
  .on('end', () => console.log('done'));

// 3) Promise example. More RAM and CPU than streams / for-await.
const files = await readdirp.promise('.');
console.log(files.map(file => file.path));

// Other options.
readdirp('test', {
  fileFilter: '*.js',
  directoryFilter: ['!.git', '!*modules']
  // directoryFilter: (di) => di.basename.length === 9
  type: 'files_directories',
  depth: 1
});

For more examples, check out examples directory.

API

const stream = readdirp(root[, options])Stream API

  • Reads given root recursively and returns a stream of entry infos
  • Optionally can be used like for await (const entry of stream) with node.js 10+ (asyncIterator).
  • on('data', (entry) => {}) entry info for every file / dir.
  • on('warn', (error) => {}) non-fatal Error that prevents a file / dir from being processed. Example: inaccessible to the user.
  • on('error', (error) => {}) fatal Error which also ends the stream. Example: illegal options where passed.
  • on('end') — we are done. Called when all entries were found and no more will be emitted.
  • on('close') — stream is destroyed via stream.destroy(). Could be useful if you want to manually abort even on a non fatal error. At that point the stream is no longer readable and no more entries, warning or errors are emitted
  • To learn more about streams, consult the very detailed nodejs streams documentation or the stream-handbook

const entries = await readdirp.promise(root[, options])Promise API. Returns a list of entry infos.

First argument is awalys root, path in which to start reading and recursing into subdirectories.

options

  • fileFilter: ["*.js"]: filter to include or exclude files. A Function, Glob string or Array of glob strings.
    • Function: a function that takes an entry info as a parameter and returns true to include or false to exclude the entry
    • Glob string: a string (e.g., *.js) which is matched using picomatch, so go there for more information. Globstars (**) are not supported since specifying a recursive pattern for an already recursive function doesn't make sense. Negated globs (as explained in the minimatch documentation) are allowed, e.g., !*.txt matches everything but text files.
    • Array of glob strings: either need to be all inclusive or all exclusive (negated) patterns otherwise an error is thrown. ['*.json', '*.js'] includes all JavaScript and Json files. ['!.git', '!node_modules'] includes all directories except the '.git' and 'node_modules'.
    • Directories that do not pass a filter will not be recursed into.
  • directoryFilter: ['!.git']: filter to include/exclude directories found and to recurse into. Directories that do not pass a filter will not be recursed into.
  • depth: 5: depth at which to stop recursing even if more subdirectories are found
  • type: 'files': determines if data events on the stream should be emitted for 'files' (default), 'directories', 'files_directories', or 'all'. Setting to 'all' will also include entries for other types of file descriptors like character devices, unix sockets and named pipes.
  • alwaysStat: false: always return stats property for every file. Default is false, readdirp will return Dirent entries. Setting it to true can double readdir execution time - use it only when you need file size, mtime etc. Cannot be enabled on node <10.10.0.
  • lstat: false: include symlink entries in the stream along with files. When true, fs.lstat would be used instead of fs.stat

EntryInfo

Has the following properties:

  • path: 'assets/javascripts/react.js': path to the file/directory (relative to given root)
  • fullPath: '/Users/dev/projects/app/assets/javascripts/react.js': full path to the file/directory found
  • basename: 'react.js': name of the file/directory
  • dirent: fs.Dirent: built-in dir entry object - only with alwaysStat: false
  • stats: fs.Stats: built in stat object - only with alwaysStat: true

Changelog

  • 3.5 (Oct 13, 2020) disallows recursive directory-based symlinks. Before, it could have entered infinite loop.
  • 3.4 (Mar 19, 2020) adds support for directory-based symlinks.
  • 3.3 (Dec 6, 2019) stabilizes RAM consumption and enables perf management with highWaterMark option. Fixes race conditions related to for-await looping.
  • 3.2 (Oct 14, 2019) improves performance by 250% and makes streams implementation more idiomatic.
  • 3.1 (Jul 7, 2019) brings bigint support to stat output on Windows. This is backwards-incompatible for some cases. Be careful. It you use it incorrectly, you'll see "TypeError: Cannot mix BigInt and other types, use explicit conversions".
  • 3.0 brings huge performance improvements and stream backpressure support.
  • Upgrading 2.x to 3.x:
    • Signature changed from readdirp(options) to readdirp(root, options)
    • Replaced callback API with promise API.
    • Renamed entryType option to type
    • Renamed entryType: 'both' to 'files_directories'
    • EntryInfo
      • Renamed stat to stats
        • Emitted only when alwaysStat: true
        • dirent is emitted instead of stats by default with alwaysStat: false
      • Renamed name to basename
      • Removed parentDir and fullParentDir properties
  • Supported node.js versions:
    • 3.x: node 8+
    • 2.x: node 0.6+

License

Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com)

MIT License, see LICENSE file.