ForHosting KIT · Utilidades de desarrollo

Analice argumentos CLI mediante una especificación

Declare los interruptores y opciones que acepta su programa y la línea de comandos quedará ordenada: --tag=stable --tag latest da las dos etiquetas stable y latest, src.js queda como argumento suelto y --mystery se señala como desconocida. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto

Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.

Convierta una lista de argumentos de línea de comandos en un objeto predecible sin repartir reglas de análisis por toda su aplicación. Proporcione los elementos y una especificación compacta que defina cada indicador booleano y cada opción con valor. Las especificaciones incorrectas, los argumentos duplicados y las opciones que carecen de un valor obligatorio producen errores de entrada claros.

Describa la interfaz de comandos como datos

Comience con los elementos tal como los entrega el entorno de ejecución, tras retirar el nombre del ejecutable y el del script. Después, defina cada argumento aceptado en la especificación. Use flag para un indicador cuya presencia signifique verdadero, como <code>--verbose</code>.

Use option cuando deba seguirle un valor, como <code>--output result.json</code>. Los nombres canónicos utilizan letras minúsculas, dígitos y guiones bajos, de modo que el objeto devuelto pueda consumirse sin otro proceso de renombrado. Active <code>multiple</code> solo cuando la interfaz permita repetir el argumento; los valores se devolverán entonces según el orden de aparición.

Comprenda el análisis y el resultado

El resultado separa tres elementos: valores reconocidos, elementos posicionales e indicadores desconocidos. Los indicadores reconocidos se convierten en verdadero bajo su nombre canónico, mientras que las opciones guardan el elemento siguiente. Una opción larga también puede incorporar su valor, por ejemplo <code>--format=json</code>.

Los demás elementos no reconocidos se consideran posicionales. Un <code>--</code> independiente termina el análisis de opciones y convierte todos los elementos posteriores en posicionales, aunque comiencen por guion. Este escape convencional elimina la ambigüedad de archivos como <code>-draft.txt</code>.

El analizador no inventa valores predeterminados ni convierte cadenas en números, pues esas políticas pertenecen a la aplicación y podrían ocultar errores. El resultado es determinista y conserva el orden.

Gestione valores ausentes y repeticiones con seguridad

La misma regla se aplica a una forma adjunta vacía como <code>--output=</code>. Esta conducta estricta evita consumir por accidente el siguiente indicador como si fuera un dato y trata directamente uno de los fallos más perjudiciales del análisis de comandos. Un guion aislado sí puede utilizarse como valor, algo útil cuando un programa representa la entrada o salida estándar mediante <code>-</code>.

De forma predeterminada, repetir un argumento reconocido también produce un error. Declare <code>multiple: true</code> cuando la repetición sea válida, como sucede con varias rutas de inclusión o etiquetas; el nombre canónico contendrá siempre una lista. Los indicadores desconocidos se notifican sin provocar el fallo, por lo que usted conserva el control de compatibilidad y reenvío.

Valide un envoltorio de CLI

Analice las opciones propias del envoltorio y notifique indicadores no admitidos antes de iniciar el proceso subyacente.

¿Cuánto cuesta?

La versión del navegador ejecuta localmente la misma lógica determinista.

¿Admite la sintaxis --name=value?

Sí, para opciones largas que reciben valor. Un valor vacío después del signo igual provoca un error.

¿Qué ocurre después de un doble guion independiente?

Termina el análisis de opciones y todos los elementos restantes se devuelven como argumentos posicionales.

¿Pueden -o y --output llenar la misma opción?

Sí. Declare ambas escrituras bajo un mismo nombre y cualquiera de las dos guardará allí su valor, de modo que la forma corta y la larga dan idéntico resultado. Dos opciones con la misma escritura se rechazan, porque el resultado dependería del orden de declaración.

¿Qué pasa si a una opción le falta su valor?

La lectura se detiene con un error claro que nombra la escritura culpable. Ocurre cuando la opción es la última palabra, va justo antes del doble guion o la sigue otra bandera, así que un interruptor posterior nunca se toma como dato.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/dev2/cli-arg-parse-spec

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/dev2/cli-arg-parse-spec \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"args":["--verbose","--output=result.json","input.txt"],"spec":[{"name":"verbose","aliases":["--verbose","-v"],"kind":"flag"},{"name":"output","aliases":["--output","-o"],"kind":"option"}]}'
{
  "args": [
    "--verbose",
    "--output=result.json",
    "input.txt"
  ],
  "spec": [
    {
      "name": "verbose",
      "aliases": [
        "--verbose",
        "-v"
      ],
      "kind": "flag"
    },
    {
      "name": "output",
      "aliases": [
        "--output",
        "-o"
      ],
      "kind": "option"
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev2.cli_arg_parse_spec",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

El analizador resuelve alias en nombres canónicos, conserva argumentos posicionales, identifica indicadores desconocidos, admite opciones largas con signo igual y deja de interpretar opciones tras el separador convencional de doble guion.

Describa la interfaz de comandos como datos

Cada entrada contiene un nombre canónico, uno o varios alias y un tipo. Los alias permiten que las formas corta y larga alimenten la misma propiedad: <code>-o</code> y <code>--output</code> pueden generar <code>output</code>. Los alias deben comenzar con uno o dos guiones. El analizador rechaza nombres canónicos y alias duplicados porque esas colisiones harían que el resultado dependiera del orden de declaración.

Comprenda el análisis y el resultado

La coincidencia es exacta; combinaciones cortas como <code>-abc</code> no se descomponen salvo que esa forma completa figure como alias. Todo elemento no reconocido que empiece por guion se añade a <code>unknown_flags</code>, para que usted pueda rechazarlo, mostrar una advertencia o reenviarlo deliberadamente.

Gestione valores ausentes y repeticiones con seguridad

Toda entrada de tipo option exige un valor no vacío cada vez que aparece uno de sus alias. Si el alias es el último elemento, precede al separador de fin de opciones o va seguido de otro elemento con forma de indicador, el análisis falla con un error de entrada que identifica el alias problemático.

Normalice opciones cortas y largas

Asocie alias como -o y --output con una única propiedad estable para simplificar la lógica de la aplicación.

Cree vistas previas y pruebas

Convierta listas de elementos en fixtures estructurados y deterministas sin ejecutar comandos ni acceder a un shell.

¿Se rechazan los indicadores desconocidos?

No. Se devuelven en unknown_flags para que usted pueda rechazarlos, advertir sobre ellos o reenviarlos.

¿Combina indicadores cortos como -abc?

No. Los alias coinciden con elementos completos, por lo que -abc solo se reconoce si la especificación declara exactamente ese alias.

Ver la documentación completa del KIT →