oxid
es un módulo de solicitud http isomórfico basado en observables rxjs.
Esto tiene dependencias de pares de rxjs@6
, que también deberán instalarse
npm instalar óxido
Oxid exporta la instancia predeterminada oxid
y también expone la clase Oxid
para construir instancias separadas.
importar {óxido, Oxido} de 'oxid';oxid.get('url', opciones).subscribe();const anotherInstance = new Oxid(customConfigurations);anotherInstance.get('url', opciones).subscribe();
Toda la interfaz de oxid devuelve Observable<HttpEvent<T>>
que permite suscribirse desde la función request
base a la función del método http.
escriba requestMethodType = <T>(url: cadena, configuración?: RequestConfig) => Observable<HttpEvent<T>>; escriba requestMethodWithDataType = <T, U>(url: cadena, datos?: T, configuración?: RequestConfig) = > Observable<HttpEvent<U>>;clase Óxido { eliminación pública de solo lectura: requestMethodType; obtención pública de solo lectura: requestMethodType; encabezado público de solo lectura: requestMethodType; opciones públicas de solo lectura: requestMethodType; publicación pública de solo lectura: requestMethodWithDataType; colocación pública de solo lectura: requestMethodWithDataType; parche público de solo lectura: requestMethodWithDataType; solicitud pública<T extiende objeto | cadena = cualquiera>(url: cadena, configuración?: RequestConfig): Observable<HttpEvent<T>>; solicitud pública<T extiende objeto | cadena = cualquiera>(url: cadena): Observable<HttpEvent<T>>; solicitud pública<T extiende objeto | cadena = cualquiera>(config: RequestConfig): Observable<HttpEvent<T>>; solicitud pública<T extiende objeto | cadena = cualquiera>(urlOrConfig: RequestConfig | cadena,config?: RequestConfig ): Observable<HttpEvent<T>> {
Oxid incluye un conjunto predeterminado de valores de configuración. Este valor se utilizará cuando se utilice la instancia de solicitud oxid
. Al crear una nueva instancia a través de una clase, no incluye ningún valor de opción de forma predeterminada, debe especificarse mediante el constructor de clases. Aún así, el método individual ( request()
y rest) acepta RequestConfig
por separado, que se fusionará en las configuraciones cuando se cree la instancia.
interfaz RequestConfigBase { URL?: cadena; ¿método?: Método; baseURL?: cadena; transformSolicitud?: Transformador | Matriz<Transformador>; transformarRespuesta?: Transformador | Matriz<Transformador>; ¿encabezados?: cualquiera; parámetros?: cualquiera; paramsSerializer?: (params: cualquiera) => cadena; ¿datos?: cualquiera; ¿Adaptador?: Adaptador; ¿autenticación?: Credenciales básicas; tipo de respuesta?: Tipo de respuesta; respuestaCodificación?: cadena; xsrfCookieName?: cadena; xsrfHeaderName?: cadena; maxContentLength?: número; validarEstado?: (estado: número) => booleano; maxRedirects?: número; socketPath?: cadena | nulo; ¿proxy?: ProxyConfig;}interfaz RequestConfigNode extiende RequestConfigBase { /** * Agente personalizado que se utilizará en la solicitud http del nodo. */ httpAgente?: cualquiera; /** * Agente personalizado que se utilizará en la solicitud https del nodo. */ httpsAgente?: cualquiera; transporte?: { solicitud: tipo de importación ('http'). solicitud };} interfaz RequestConfigBrowser extiende RequestConfigBase { /** * Emitir evento de progreso para solicitud xhr. */ reportProgress?: booleano; ¿conCredenciales?: booleano;}
importar {oxid, Oxid, defaultOptions} de 'oxid';oxid.get(url); //usaremos `defaultOptions`oxid.get({url, withCredentials: false}); //usaremos `defaultOptions`, anularemos `withCredentials`const another = new Oxid(); //sin configuración baseconst anotherWithConfig = new oxid({withCredendials: false}) //establece la configuración baseanotherWithConfig.get({url, withCredentials: false}) //usará la configuración cuando se cree la instancia, anulará `withCredentials`
Tenga en cuenta que el objeto defaultOptions
es inmutable. Cambiar y reasignar valores al valor de configuración predeterminado existente no funcionará; en su lugar, debería crear un nuevo objeto de configuración.
Oxid en sí no tiene mecanismo para escribir registros. En cambio, expone una función para conectar cualquier registrador utilizado en la aplicación.
función enableLogger(logger: logFunctionType): void; función enableLogger(logger: Partial<Logger>): void;
Podría ser una función única o un objeto que tenga niveles de registro como depuración, información, advertencia, error. Notas enableLogger
es una función global que afecta cualquier instancia de oxid y solo comienza a emitir el registro una vez después de que se haya llamado enableLogger
.
import { enableLogger, oxid } from 'oxid';// los registros no se emitenoxid.get().subscribe();enableLogger(console.log.bind(console));// ahora los registros internos se emitirán a través de consoleoxid.get ().suscribir();
Se admiten pocos scripts npm para código de compilación/prueba.
build
: transpila el código a dist
.
build:clean
: limpia la compilación existente.
test
: Ejecute la prueba unitaria. No requiere build
antes de ejecutar la prueba.
lint
: ejecuta lint en todas las bases de código.
Si bien este módulo NO está afiliado oficialmente, se basa en muchos conocimientos previos de axios
y @angular/http
. Es posible que notes algunas lógicas similares y es lo esperado.