nodejs / nodejs/node

Sync alternative to `fs.openAsBlob`

Ouverte
#65,462 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

feature request
Langage dominant
JavaScript
Étoiles
122k
Forks
37.3k
Merge moyen
4 j 2 h
PR mergées (30 j)
283

Description

What is the problem this feature will solve?

I'm making a cross-runtime file streaming library (that needs to be fast) and this would make it way easier to do so since Bun.file() is already sync.

So the code might look like this if my suggestion made it to node:fs:

const getFile: (path: string) => File = globalThis.Bun
  ? Bun.file
  : process.getBuiltinModule('fs').openAsWebFile;

// Usage
return new Response(getFile('./index.html'));
return new Response(getFile('./binary-data').slice(0, 100));
What is the feature you are proposing to solve the problem?

A new API, something like fs.openAsWebFile() that returns a File maybe?
It would have more info for the Response constructor to pick up as well.

What alternatives have you considered?

fs.createReadStream but that is also async and can be slower too.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par examiner les API fs.openAsBlob et fs.createReadStream existantes ainsi que leur documentation. Clarifiez la forme de la File API synchrone, les métadonnées exposées à Response et le comportement entre les différents runtimes avant de proposer un point d’entrée. Le travail est terminé lorsque la conception de l’API est approuvée et que son comportement est couvert par des tests et de la documentation.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript
Domaine
backend
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Active
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.