Files
apidash/lib/codegen/codegen.dart
2024-03-12 01:52:24 +05:30

82 lines
2.2 KiB
Dart

import 'package:apidash/models/models.dart' show RequestModel;
import 'package:apidash/consts.dart';
import 'package:apidash/utils/utils.dart' show getNewUuid;
import 'dart/http.dart';
import 'dart/dio.dart';
import 'kotlin/okhttp.dart';
import 'python/http_client.dart';
import 'python/requests.dart';
import 'js/axios.dart';
import 'js/fetch.dart';
import 'others/har.dart';
import 'others/curl.dart';
class Codegen {
String? getCode(
CodegenLanguage codegenLanguage,
RequestModel requestModel,
String defaultUriScheme, {
String? boundary,
}) {
switch (codegenLanguage) {
case CodegenLanguage.curl:
return cURLCodeGen().getCode(
requestModel,
defaultUriScheme,
);
case CodegenLanguage.har:
return HARCodeGen().getCode(
requestModel,
defaultUriScheme,
);
case CodegenLanguage.dartHttp:
return DartHttpCodeGen().getCode(
requestModel,
defaultUriScheme,
);
case CodegenLanguage.dartDio:
return DartDioCodeGen().getCode(
requestModel,
defaultUriScheme,
);
case CodegenLanguage.jsAxios:
return AxiosCodeGen().getCode(
requestModel,
defaultUriScheme,
);
case CodegenLanguage.jsFetch:
return FetchCodeGen().getCode(
requestModel,
defaultUriScheme,
);
case CodegenLanguage.nodejsAxios:
return AxiosCodeGen(isNodeJs: true).getCode(
requestModel,
defaultUriScheme,
);
case CodegenLanguage.nodejsFetch:
return FetchCodeGen(isNodeJs: true).getCode(
requestModel,
defaultUriScheme,
);
case CodegenLanguage.kotlinOkHttp:
return KotlinOkHttpCodeGen().getCode(
requestModel,
defaultUriScheme,
);
case CodegenLanguage.pythonHttpClient:
return PythonHttpClientCodeGen().getCode(
requestModel,
defaultUriScheme,
boundary: boundary ?? getNewUuid(),
);
case CodegenLanguage.pythonRequests:
return PythonRequestsCodeGen().getCode(
requestModel,
defaultUriScheme,
boundary: boundary,
);
}
}
}