"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > [Package quotidien] Dedent

[Package quotidien] Dedent

Publié le 2025-02-06
Parcourir:613

[Daily Package] dedent

La vie avant de connaître Dedent

Avez-vous déjà essayé d'écrire un paragraphe multi-ligne dans le modèle littéral, mais j'ai réalisé qu'il préserve l'indentation, qui a fini par utiliser l'ajout de chaîne avec \ n?

function explain() {
  const description = `
    - 200 OK
      The request succeeded. The result meaning of "success" depends on the HTTP method:

      * GET: The resource has been fetched...
      * HEAD: The representation headers are...
      * PUT or POST: The resource describing...
      * TRACE: The message body contains the...
  `

  console.log(description)
}

explain()
$ bun index.ts

    - 200 OK
      The request succeeded. The result meaning of "success" depends on the HTTP method:

      * GET: The resource has been fetched...
      * HEAD: The representation headers are...
      * PUT or POST: The resource describing...
      * TRACE: The message body contains the...

attendez, ai-je besoin de supprimer les indentations?
Nah. Je ne peux pas abandonner mon code magnifiquement formaté.

function explain() {
  const description = '- 200 OK\n'  
    'The request succeeded. The result meaning of "success" depends on the HTTP method:\n\n'  
    '  * GET: The resource has been fetched...\n'  
    '  * HEAD: The representation headers are...\n'  
    '  * PUT or POST: The resource describing...\n'  
    '  * TRACE: The message body contains the...\n'

  console.log(description)
}

explain()

Je vais prendre ça. ?

Pour cette raison, le texte multiliné est toujours un mal de tête pour moi.

Maintenant tu sais Dedent

Mais maintenant, vous n'avez plus à négocier avec vous-même. Utilisez simplement Dedent.

import dedent from 'dedent'

function explain() {
  const description = dedent`
    - 200 OK
      The request succeeded. The result meaning of "success" depends on the HTTP method:

      * GET: The resource has been fetched...
      * HEAD: The representation headers are...
      * PUT or POST: The resource describing...
      * TRACE: The message body contains the...
  `

  console.log(description)
}

explain()

Ce que j'ai fait, c'est ajouter Dedent avant le modèle littéral. Vous ne le croyez pas?

$ bun index.ts
- 200 OK
  The request succeeded. The result meaning of "success" depends on the HTTP method:

  * GET: The resource has been fetched...
  * HEAD: The representation headers are...
  * PUT or POST: The resource describing...
  * TRACE: The message body contains the...

il supprime toute l'indentation inutile et le fait comme nous nous attendions.

Pourquoi n'en essayons-nous pas un plus complexe?

import dedent from 'dedent'

const explainStatus = (status: string) => {
    switch(status) {
        case '2xx':
          return dedent`
            - 200 OK
              The request succeeded. The result meaning of "success" depends on the HTTP method:

              * GET: The resource has been fetched and transmitted in the message body.
              * HEAD: The representation headers are included in the response without any message body.
              * PUT or POST: The resource describing the result of the action is transmitted in the message body.
              * TRACE: The message body contains the request message as received by the server.

            - 201 Created
              The request succeeded, and a new resource was created as a result.
              This is typically the response sent after POST requests, or some PUT requests.
            `

        case '4xx':
          return dedent`
            - 400 Bad Request
              The server cannot or will not process the request due to something that is perceived to be a client error
              (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

            - 401 Unauthorized
              Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated".
              That is, the client must authenticate itself to get the requested response.
          `

          default:
            return 'not yet!'
      }
}

console.log(explainStatus('2xx'))
$ bun index.ts
- 200 OK
  The request succeeded. The result meaning of "success" depends on the HTTP method:

  * GET: The resource has been fetched and transmitted in the message body.
  * HEAD: The representation headers are included in the response without any message body.
  * PUT or POST: The resource describing the result of the action is transmitted in the message body.
  * TRACE: The message body contains the request message as received by the server.

- 201 Created
  The request succeeded, and a new resource was created as a result.
  This is typically the response sent after POST requests, or some PUT requests.

Soo Smoooth !?

Déclaration de sortie Cet article est reproduit à: https://dev.to/javien/daily-package-dedent-1mi4?1 S'il y a une contrefaçon, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3