@inventorjs/api-service
Version:
Api service manager base on axios
20 lines (19 loc) • 667 B
JavaScript
import { CONFIG_META } from './constants.js';
import { mergeConfig } from './util.js';
import { ApiService } from './core.js';
export function Service(serviceConfig) {
return (Cls) => {
Reflect.defineMetadata(CONFIG_META, serviceConfig, Cls);
};
}
export function Api(apiConfig) {
return (Cls, propertyKey, propertyDescriptor) => {
const context = {
[propertyKey]: async (data, requestConfig) => {
const config = mergeConfig(apiConfig, requestConfig);
return ApiService.apiCall.call(Cls, data, config);
},
};
propertyDescriptor.value = context[propertyKey];
};
}