oxid
adalah modul permintaan http isomorfik berbasis rxjs yang dapat diamati.
Ini memiliki ketergantungan rekan rxjs@6
, yang harus diinstal juga
npm instal oksida
Oxid mengekspor instance default oxid
, dan juga mengekspos kelas Oxid
untuk membuat instance terpisah.
import { oxid, Oxid } dari 'oxid';oxid.get('url', options).subscribe();const anotherInstance = new Oxid(customConfigurations);anotherInstance.get('url', options).subscribe();
Semua antarmuka oxid mengembalikan Observable<HttpEvent<T>>
memungkinkan untuk berlangganan dari fungsi request
dasar ke fungsi metode http.
ketik requestMethodType = <T>(url: string, config?: RequestConfig) => Dapat Diamati<HttpEvent<T>>;ketik requestMethodWithDataType = <T, U>(url: string, data?: T, config?: RequestConfig) = > Dapat diamati<HttpEvent<U>>;kelas Oksid { hapus hanya baca publik: requestMethodType; dapatkan hanya baca publik: requestMethodType; kepala hanya baca publik: requestMethodType; opsi hanya baca publik: requestMethodType; posting publik yang hanya dapat dibaca: requestMethodWithDataType; public readonly put: requestMethodWithDataType; patch hanya baca publik: requestMethodWithDataType; permintaan publik<T memperluas objek | string = any>(url: string, config?: RequestConfig): Dapat Diamati<HttpEvent<T>>; permintaan publik<T memperluas objek | string = any>(url: string): Dapat Diamati<HttpEvent<T>>; permintaan publik<T memperluas objek | string = any>(config: RequestConfig): Dapat Diamati<HttpEvent<T>>; permintaan publik<T memperluas objek | string = apa saja>(urlOrConfig: RequestConfig | string,config?: RequestConfig ): Dapat Diamati<HttpEvent<T>> {
Oxid menyertakan kumpulan nilai konfigurasi default. Nilai ini akan digunakan saat menggunakan contoh permintaan oxid
. Saat membuat instance baru melalui kelas, itu tidak menyertakan nilai opsi apa pun secara default, harus ditentukan melalui konstruktor kelas. Namun, metode individual ( request()
dan rest) menerima RequestConfig
secara terpisah, yang akan digabungkan ke dalam konfigurasi saat instance dibuat.
antarmuka RequestConfigBase { url?: tali; metode?: Metode; URL dasar?: string; transformRequest?: Transformator | Array<Transformator>; transformRespon?: Transformator | Array<Transformator>; header?: apa saja; param?: apa saja; paramsSerializer?: (params: apa saja) => string; data?: ada; adaptor?: Adaptor; auth?: Kredensial Dasar; tipe respons?: Tipe Respons; responEncoding?: string; xsrfNama Kue?: string; xsrfHeaderName?: string; maxContentLength?: nomor; validasiStatus?: (status: angka) => boolean; maxRedirects?: nomor; soketPath?: string | batal; proxy?: ProxyConfig;}antarmuka RequestConfigNode memperluas RequestConfigBase { /** * Agen khusus untuk digunakan dalam permintaan node http. */ httpAgen?: ada; /** * Agen khusus untuk digunakan dalam permintaan node https. */ httpsAgen?: ada; transport?: { permintaan: typeof import('http').request };}antarmuka RequestConfigBrowser extends RequestConfigBase { /** * Keluarkan acara kemajuan untuk permintaan xhr. */ laporanKemajuan?: boolean; dengan Kredensial?: boolean;}
impor {oxid, Oxid, defaultOptions} dari 'oxid';oxid.get(url); //akan menggunakan `defaultOptions`oxid.get({url, withCredentials: false}); //akan menggunakan `defaultOptions`, ganti `withCredentials`const another = new Oxid(); //tidak ada konfigurasi dasarconst anotherWithConfig = new oxid({withCredendials: false}) //set konfigurasi dasaranotherWithConfig.get({url, withCredentials: false}) //akan menggunakan konfigurasi saat instance dibuat, ganti `withCredentials`
Catatan objek defaultOptions
tidak dapat diubah. Mengubah, menetapkan ulang nilai ke nilai konfigurasi default yang ada tidak akan berfungsi, melainkan harus membuat objek konfigurasi baru.
Oxid sendiri tidak memiliki mekanisme untuk menulis log. Sebaliknya, ini memperlihatkan fungsi untuk menghubungkan logger apa pun yang digunakan dalam aplikasi.
fungsi aktifkanLogger(logger: logFunctionType): batal;fungsi aktifkanLogger(logger: Partial<Logger>): batal;
Bisa berupa fungsi tunggal, atau objek yang memiliki loglevel seperti debug, info, peringatan, kesalahan. Catatan enableLogger
adalah fungsi Global yang memengaruhi setiap kejadian oksida, dan hanya mulai mengeluarkan log satu kali setelah enableLogger
dipanggil.
import {enableLogger, oxid } from 'oxid';// log tidak dipancarkanoxid.get().subscribe();enableLogger(console.log.bind(console));// sekarang log internal akan dikeluarkan melalui consoleoxid.get ().berlangganan();
Beberapa skrip npm didukung untuk kode build/test.
build
: Mentranspilkan kode ke dist
.
build:clean
: Bersihkan build yang ada.
test
: Jalankan pengujian unit. Tidak memerlukan build
sebelum menjalankan tes.
lint
: Jalankan lint pada semua basis kode.
Meskipun modul ini TIDAK berafiliasi secara resmi, modul ini bergantung pada banyak karya sebelumnya dari axios
dan @angular/http
. Anda mungkin memperhatikan beberapa logika serupa dan itu memang diharapkan.