@goast/kotlin 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/cjs/index.js +9 -0
- package/cjs/lib/common-results.js +2 -0
- package/cjs/lib/config.js +9 -0
- package/cjs/lib/file-builder.js +63 -0
- package/cjs/lib/generators/file-generator.js +17 -0
- package/cjs/lib/generators/index.js +6 -0
- package/cjs/lib/generators/models/index.js +6 -0
- package/cjs/lib/generators/models/model-generator.js +337 -0
- package/cjs/lib/generators/models/models-generator.js +28 -0
- package/cjs/lib/generators/models/models.js +5 -0
- package/cjs/lib/generators/services/spring-controllers/index.js +6 -0
- package/cjs/lib/generators/services/spring-controllers/models.js +5 -0
- package/cjs/lib/generators/services/spring-controllers/spring-controller-generator.js +416 -0
- package/cjs/lib/generators/services/spring-controllers/spring-controllers-generator.js +30 -0
- package/cjs/lib/import-collection.js +70 -0
- package/cjs/lib/utils.js +22 -0
- package/cjs/package.json +1 -0
- package/esm/index.js +6 -0
- package/esm/lib/common-results.js +1 -0
- package/esm/lib/config.js +6 -0
- package/esm/lib/file-builder.js +59 -0
- package/esm/lib/generators/file-generator.js +13 -0
- package/esm/lib/generators/index.js +3 -0
- package/esm/lib/generators/models/index.js +3 -0
- package/esm/lib/generators/models/model-generator.js +333 -0
- package/esm/lib/generators/models/models-generator.js +24 -0
- package/esm/lib/generators/models/models.js +2 -0
- package/esm/lib/generators/services/spring-controllers/index.js +3 -0
- package/esm/lib/generators/services/spring-controllers/models.js +2 -0
- package/esm/lib/generators/services/spring-controllers/spring-controller-generator.js +412 -0
- package/esm/lib/generators/services/spring-controllers/spring-controllers-generator.js +26 -0
- package/esm/lib/import-collection.js +66 -0
- package/esm/lib/utils.js +17 -0
- package/package.json +29 -0
- package/types/index.d.ts +6 -0
- package/types/lib/common-results.d.ts +4 -0
- package/types/lib/config.d.ts +6 -0
- package/types/lib/file-builder.d.ts +14 -0
- package/types/lib/generators/file-generator.d.ts +8 -0
- package/types/lib/generators/index.d.ts +3 -0
- package/types/lib/generators/models/index.d.ts +3 -0
- package/types/lib/generators/models/model-generator.d.ts +31 -0
- package/types/lib/generators/models/models-generator.d.ts +17 -0
- package/types/lib/generators/models/models.d.ts +22 -0
- package/types/lib/generators/services/spring-controllers/index.d.ts +3 -0
- package/types/lib/generators/services/spring-controllers/models.d.ts +24 -0
- package/types/lib/generators/services/spring-controllers/spring-controller-generator.d.ts +63 -0
- package/types/lib/generators/services/spring-controllers/spring-controllers-generator.d.ts +17 -0
- package/types/lib/import-collection.d.ts +13 -0
- package/types/lib/utils.d.ts +3 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ApiSchema, DefaultGenerationProviderConfig, OpenApiSchemasGenerationProviderContext } from '@goast/core';
|
|
2
|
+
import { KotlinImport } from '../../common-results';
|
|
3
|
+
import { KotlinGeneratorConfig } from '../../config';
|
|
4
|
+
export type KotlinModelsGeneratorConfig = KotlinGeneratorConfig & {
|
|
5
|
+
packageName: string;
|
|
6
|
+
packageSuffix: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const defaultKotlinModelsGeneratorConfig: DefaultGenerationProviderConfig<KotlinModelsGeneratorConfig>;
|
|
9
|
+
export type KotlinModelsGeneratorInput = {};
|
|
10
|
+
export type KotlinModelsGeneratorOutput = {
|
|
11
|
+
models: {
|
|
12
|
+
[schemaId: string]: KotlinModelGeneratorOutput;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export type KotlinModelGeneratorOutput = KotlinImport & {
|
|
16
|
+
additionalImports: KotlinImport[];
|
|
17
|
+
};
|
|
18
|
+
export type KotlinModelsGeneratorContext = OpenApiSchemasGenerationProviderContext<KotlinModelsGeneratorInput, KotlinModelsGeneratorOutput, KotlinModelsGeneratorConfig, KotlinModelGeneratorOutput>;
|
|
19
|
+
export type KotlinModelGeneratorContext = KotlinModelsGeneratorContext & {
|
|
20
|
+
schema: ApiSchema;
|
|
21
|
+
getSchemaResult(schema: ApiSchema): KotlinModelGeneratorOutput;
|
|
22
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { OpenApiServicesGenerationProviderContext, ApiService, DefaultGenerationProviderConfig } from '@goast/core';
|
|
2
|
+
import { KotlinImport } from '../../../common-results';
|
|
3
|
+
import { KotlinGeneratorConfig } from '../../../config';
|
|
4
|
+
import { KotlinModelsGeneratorOutput } from '../../models';
|
|
5
|
+
export type KotlinServicesGeneratorConfig = KotlinGeneratorConfig & {
|
|
6
|
+
packageName: string;
|
|
7
|
+
packageSuffix: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const defaultKotlinServicesGeneratorConfig: DefaultGenerationProviderConfig<KotlinServicesGeneratorConfig>;
|
|
10
|
+
export type KotlinServicesGeneratorInput = KotlinModelsGeneratorOutput;
|
|
11
|
+
export type KotlinServicesGeneratorOutput = {
|
|
12
|
+
services: {
|
|
13
|
+
[serviceId: string]: KotlinServiceGeneratorOutput;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export type KotlinServiceGeneratorOutput = {
|
|
17
|
+
apiInterface: KotlinImport;
|
|
18
|
+
apiController: KotlinImport;
|
|
19
|
+
apiDelegate: KotlinImport;
|
|
20
|
+
};
|
|
21
|
+
export type KotlinServicesGeneratorContext = OpenApiServicesGenerationProviderContext<KotlinServicesGeneratorInput, KotlinServicesGeneratorOutput, KotlinServicesGeneratorConfig, KotlinServiceGeneratorOutput>;
|
|
22
|
+
export type KotlinServiceGeneratorContext = KotlinServicesGeneratorContext & {
|
|
23
|
+
service: ApiService;
|
|
24
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ApiEndpoint, ApiParameter, ApiSchema } from '@goast/core';
|
|
2
|
+
import { KotlinServiceGeneratorContext, KotlinServiceGeneratorOutput } from './models';
|
|
3
|
+
import { KotlinImport } from '../../../common-results';
|
|
4
|
+
import { KotlinFileBuilder } from '../../../file-builder';
|
|
5
|
+
import { KotlinFileGenerator } from '../../file-generator';
|
|
6
|
+
import { KotlinModelGeneratorOutput } from '../../models';
|
|
7
|
+
type Context = KotlinServiceGeneratorContext;
|
|
8
|
+
type Output = KotlinServiceGeneratorOutput;
|
|
9
|
+
type Builder = KotlinFileBuilder;
|
|
10
|
+
export interface KotlinSpringControllerGenerator<TOutput extends Output = Output> {
|
|
11
|
+
generate(ctx: Context): TOutput;
|
|
12
|
+
}
|
|
13
|
+
export declare class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator<Context, Output> implements KotlinSpringControllerGenerator {
|
|
14
|
+
generate(ctx: KotlinServiceGeneratorContext): KotlinServiceGeneratorOutput;
|
|
15
|
+
protected generateApiInterfaceFile(ctx: Context, dirPath: string, packageName: string): KotlinImport;
|
|
16
|
+
protected generateApiInterfaceFileContent(ctx: Context, builder: Builder): void;
|
|
17
|
+
protected generateApiInterfaceAnnotations(ctx: Context, builder: Builder): void;
|
|
18
|
+
protected generateApiInterfaceSignature(ctx: Context, builder: Builder): void;
|
|
19
|
+
protected generateApiInterfaceContent(ctx: Context, builder: Builder): void;
|
|
20
|
+
protected generateApiInterfaceDelegateAccessor(ctx: Context, builder: Builder): void;
|
|
21
|
+
protected generateApiInterfaceMethods(ctx: Context, builder: Builder): void;
|
|
22
|
+
protected generateApiInterfaceMethod(ctx: Context, builder: Builder, endpoint: ApiEndpoint): void;
|
|
23
|
+
protected generateApiInterfaceMethodAnnnotations(ctx: Context, builder: Builder, endpoint: ApiEndpoint): void;
|
|
24
|
+
protected generateApiInterfaceMethodSignature(ctx: Context, builder: Builder, endpoint: ApiEndpoint): void;
|
|
25
|
+
protected generateApiInterfaceMethodParameters(ctx: Context, builder: Builder, endpoint: ApiEndpoint): void;
|
|
26
|
+
protected generateApiInterfaceMethodReturnType(ctx: Context, builder: Builder, endpoint: ApiEndpoint): void;
|
|
27
|
+
protected generateApiInterfaceMethodParameter(ctx: Context, builder: Builder, endpoint: ApiEndpoint, parameter: ApiParameter): void;
|
|
28
|
+
protected generateApiInterfaceMethodParameterAnnotations(ctx: Context, builder: Builder, endpoint: ApiEndpoint, parameter: ApiParameter): void;
|
|
29
|
+
protected generateApiInterfaceMethodParameterSignature(ctx: Context, builder: Builder, endpoint: ApiEndpoint, parameter: ApiParameter): void;
|
|
30
|
+
protected generateApiInterfaceMethodContent(ctx: Context, builder: Builder, endpoint: ApiEndpoint): void;
|
|
31
|
+
protected generateApiControllerFile(ctx: Context, dirPath: string, packageName: string): KotlinImport;
|
|
32
|
+
protected generateApiControllerFileContent(ctx: Context, builder: Builder): void;
|
|
33
|
+
protected generateApiControllerAnnotations(ctx: Context, builder: Builder): void;
|
|
34
|
+
protected generateApiControllerSignature(ctx: Context, builder: Builder): void;
|
|
35
|
+
protected generateApiControllerParameters(ctx: Context, builder: Builder): void;
|
|
36
|
+
protected generateApiControllerContent(ctx: Context, builder: Builder): void;
|
|
37
|
+
protected generateApiDelegateInterfaceFile(ctx: Context, dirPath: string, packageName: string): KotlinImport;
|
|
38
|
+
protected generateApiDelegateInterfaceFileContent(ctx: Context, builder: Builder): void;
|
|
39
|
+
protected generateApiDelegateInterfaceAnnotations(ctx: Context, builder: Builder): void;
|
|
40
|
+
protected generateApiDelegateInterfaceSignature(ctx: Context, builder: Builder): void;
|
|
41
|
+
protected generateApiDelegateInterfaceContent(ctx: Context, builder: Builder): void;
|
|
42
|
+
protected generateApiDelegateInterfaceMethod(ctx: Context, builder: Builder, endpoint: ApiEndpoint): void;
|
|
43
|
+
protected generateApiDelegateInterfaceMethodAnnnotations(ctx: Context, builder: Builder, endpoint: ApiEndpoint): void;
|
|
44
|
+
protected generateApiDelegateInterfaceMethodSignature(ctx: Context, builder: Builder, endpoint: ApiEndpoint): void;
|
|
45
|
+
protected generateApiDelegateInterfaceMethodParameters(ctx: Context, builder: Builder, endpoint: ApiEndpoint): void;
|
|
46
|
+
protected generateApiDelegateInterfaceMethodReturnType(ctx: Context, builder: Builder, endpoint: ApiEndpoint): void;
|
|
47
|
+
protected generateApiDelegateInterfaceMethodParameter(ctx: Context, builder: Builder, endpoint: ApiEndpoint, parameter: ApiParameter): void;
|
|
48
|
+
protected generateApiDelegateInterfaceMethodParameterAnnotations(ctx: Context, builder: Builder, endpoint: ApiEndpoint, parameter: ApiParameter): void;
|
|
49
|
+
protected generateApiDelegateInterfaceMethodParameterSignature(ctx: Context, builder: Builder, endpoint: ApiEndpoint, parameter: ApiParameter): void;
|
|
50
|
+
protected generateApiDelegateInterfaceMethodContent(ctx: Context, builder: Builder, endpoint: ApiEndpoint): void;
|
|
51
|
+
protected generateResponseEntityType(ctx: Context, builder: Builder, schema: ApiSchema | undefined): void;
|
|
52
|
+
protected generateTypeUsage(ctx: Context, builder: Builder, schema: ApiSchema | undefined, fallback?: string): void;
|
|
53
|
+
protected getControllerRequestMapping(ctx: Context, prefix?: string): string;
|
|
54
|
+
protected getDirectoryPath(ctx: Context, packageName: string): string;
|
|
55
|
+
protected getPackageName(ctx: Context): string;
|
|
56
|
+
protected getApiInterfaceName(ctx: Context): string;
|
|
57
|
+
protected getApiControllerName(ctx: Context): string;
|
|
58
|
+
protected getApiDelegateInterfaceName(ctx: Context): string;
|
|
59
|
+
protected getSchemaInfo(ctx: Context, schema: ApiSchema | undefined): KotlinModelGeneratorOutput;
|
|
60
|
+
protected getAllParameters(ctx: Context, endpoint: ApiEndpoint): ApiParameter[];
|
|
61
|
+
protected sortParameters(ctx: Context, parameters: Iterable<ApiParameter>): ApiParameter[];
|
|
62
|
+
}
|
|
63
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ApiService, Factory, OpenApiGeneratorContext, OpenApiServicesGenerationProviderBase } from '@goast/core';
|
|
2
|
+
import { KotlinServicesGeneratorInput, KotlinServicesGeneratorOutput, KotlinServicesGeneratorConfig, KotlinServiceGeneratorOutput, KotlinServicesGeneratorContext } from './models';
|
|
3
|
+
import { KotlinSpringControllerGenerator } from './spring-controller-generator';
|
|
4
|
+
type Input = KotlinServicesGeneratorInput;
|
|
5
|
+
type Output = KotlinServicesGeneratorOutput;
|
|
6
|
+
type Config = KotlinServicesGeneratorConfig;
|
|
7
|
+
type ServiceOutput = KotlinServiceGeneratorOutput;
|
|
8
|
+
type Context = KotlinServicesGeneratorContext;
|
|
9
|
+
export declare class KotlinSpringControllersGenerator extends OpenApiServicesGenerationProviderBase<Input, Output, Config, ServiceOutput, Context> {
|
|
10
|
+
private readonly _serviceGeneratorFactory;
|
|
11
|
+
constructor(serviceGeneratorFactory?: Factory<KotlinSpringControllerGenerator, []>);
|
|
12
|
+
protected initResult(): Output;
|
|
13
|
+
protected generateService(ctx: Context, service: ApiService): ServiceOutput;
|
|
14
|
+
protected addServiceResult(ctx: Context, service: ApiService, result: ServiceOutput): void;
|
|
15
|
+
protected buildContext(context: OpenApiGeneratorContext<KotlinServicesGeneratorInput>, config?: Partial<Config> | undefined): Context;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SourceBuilderOptions, StringBuilder } from '@goast/core';
|
|
2
|
+
import { KotlinImport } from './common-results';
|
|
3
|
+
export declare class ImportCollection {
|
|
4
|
+
private readonly _imports;
|
|
5
|
+
get hasImports(): boolean;
|
|
6
|
+
get imports(): KotlinImport[];
|
|
7
|
+
addImport(importName: string, fromModule: string): void;
|
|
8
|
+
addImport(importObj: KotlinImport): void;
|
|
9
|
+
addImports(imports: KotlinImport[]): void;
|
|
10
|
+
clear(): void;
|
|
11
|
+
toString(options: Partial<SourceBuilderOptions>): string;
|
|
12
|
+
writeTo(builder: StringBuilder): void;
|
|
13
|
+
}
|