oxid
est un module de requête http isomorphe basé sur l'observabilité rxjs.
Cela a des dépendances homologues de rxjs@6
, qui devront également être installées
npm installer oxid
Oxid exporte l'instance par défaut oxid
et expose également la classe Oxid
pour construire des instances distinctes.
import { oxid, Oxid } from 'oxid';oxid.get('url', options).subscribe();const anotherInstance = new Oxid(customConfigurations);anotherInstance.get('url', options).subscribe();
Toute l'interface d'oxid renvoie Observable<HttpEvent<T>>
permet de s'abonner de la fonction request
de base à la fonction de méthode http.
tapez requestMethodType = <T>(url : chaîne, config ? : RequestConfig) => Observable<HttpEvent<T>>; tapez requestMethodWithDataType = <T, U>(url : chaîne, données ? : T, config ? : RequestConfig) = > Observable<HttpEvent<U>>;class Oxid { suppression publique en lecture seule : requestMethodType ; public en lecture seule get : requestMethodType ; en-tête public en lecture seule : requestMethodType ; options publiques en lecture seule : requestMethodType ; publication publique en lecture seule : requestMethodWithDataType ; public en lecture seule put : requestMethodWithDataType ; correctif public en lecture seule : requestMethodWithDataType ; public request<T étend l'objet | string = any>(url : string, config ? : RequestConfig) : Observable<HttpEvent<T>>; public request<T étend l'objet | string = any>(url : string) : Observable<HttpEvent<T>>; public request<T étend l'objet | string = any>(config : RequestConfig) : Observable<HttpEvent<T>>; public request<T étend l'objet | string = any>(urlOrConfig : RequestConfig | string,config? : RequestConfig ): Observable<HttpEvent<T>> {
Oxid inclut un ensemble de valeurs de configuration par défaut. Cette valeur sera utilisée lors de l'utilisation de l'instance de requête oxid
. Lors de la création d'une nouvelle instance via une classe, elle n'inclut aucune valeur d'option par défaut, elle doit être spécifiée via le constructeur de classe. Néanmoins, la méthode individuelle ( request()
et rest) accepte RequestConfig
séparément, qui fusionnera dans les configurations lors de la création de l'instance.
interfaceRequêteConfigBase { URL ? : chaîne ; méthode ? : Méthode ; baseURL?: chaîne; transformRequest ? : Transformateur | Tableau<Transformateur> ; transformResponse ? : Transformateur | Tableau<Transformateur> ; en-têtes ? : n’importe lequel ; paramètres ? : n’importe lequel ; paramsSerializer ? : (params : any) => chaîne ; données ? : toutes ; adaptateur?: Adaptateur; auth?: BasicCredentials; Type de réponse ? : Type de réponse ; réponseEncoding ? : chaîne ; xsrfCookieName ? : chaîne ; xsrfHeaderName ? : chaîne ; maxContentLength?: nombre; validateStatus? : (statut : numéro) => booléen ; maxRedirects ? : numéro ; socketPath?: chaîne | nul; proxy ? : ProxyConfig;}interface RequestConfigNode étend RequestConfigBase { /** * Agent personnalisé à utiliser dans la requête http du nœud. */ httpAgent ? : n'importe lequel ; /** * Agent personnalisé à utiliser dans la requête https du nœud. */ httpsAgent ? : n'importe lequel ; transport ? : {requête : typeof import('http').request };}interface RequestConfigBrowser étend RequestConfigBase { /** * Émettre un événement de progression pour la requête xhr. */ reportProgress ? : booléen ; withCredentials ? : booléen ;}
importer {oxid, Oxid, defaultOptions} depuis 'oxid';oxid.get(url); // utilisera `defaultOptions`oxid.get({url, withCredentials: false}); // utilisera `defaultOptions`, remplacera `withCredentials`const another = new Oxid(); //pas de configuration de baseconst anotherWithConfig = new oxid({withCredendials: false}) //définir la configuration de baseanotherWithConfig.get({url, withCredentials: false}) //utilisera la configuration lors de la création de l'instance, remplacera `withCredentials`
Notez que l'objet defaultOptions
est immuable. Changer, réaffecter des valeurs dans la valeur de configuration par défaut existante ne fonctionnera pas, mais devrait plutôt créer un nouvel objet de configuration.
Oxid lui-même n'a pas de mécanisme pour écrire un journal. Au lieu de cela, il expose une fonction pour câbler n'importe quel enregistreur utilisé dans l'application.
function activateLogger(logger: logFunctionType): void;function activateLogger(logger: Partial<Logger>): void;
Il peut s'agir d'une fonction unique ou d'un objet ayant des niveaux de journalisation tels que débogage, informations, avertissement, erreur. Notes enableLogger
est une fonction globale qui affecte toute instance d'oxid et ne commence à émettre un journal qu'une seule fois après l'appel de enableLogger
.
import { activateLogger, oxid } from 'oxid';// les journaux ne sont pas émisoxid.get().subscribe();enableLogger(console.log.bind(console));// maintenant les journaux internes seront émis via consoleoxid.get ().s'abonner();
Peu de scripts npm sont pris en charge pour le code de build/test.
build
: transpile le code vers dist
.
build:clean
: Nettoyer la build existante.
test
: exécutez un test unitaire. Ne nécessite pas build
avant d'exécuter le test.
lint
: exécutez lint sur toutes les bases de code.
Bien que ce module ne soit PAS officiellement affilié, il s'appuie sur de nombreux art antérieurs d' axios
et @angular/http
. Vous remarquerez peut-être des logiques similaires et c'est normal.