@seamapi/nextlove-sdk-generator 1.14.12 → 1.14.13
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/lib/generate-csharp-sdk/generate-csharp-sdk.d.ts +6 -1
- package/lib/generate-csharp-sdk/generate-csharp-sdk.js +6 -5
- package/lib/generate-csharp-sdk/generate-csharp-sdk.js.map +1 -1
- package/lib/generate-csharp-sdk/schema-modifications.d.ts +2 -0
- package/lib/generate-csharp-sdk/schema-modifications.js +12 -0
- package/lib/generate-csharp-sdk/schema-modifications.js.map +1 -0
- package/package.json +1 -1
- package/src/lib/generate-csharp-sdk/generate-csharp-sdk.ts +15 -8
- package/src/lib/generate-csharp-sdk/schema-modifications.ts +16 -0
|
@@ -1 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { type SdkGeneratorOptions } from "@seamapi/nextlove-sdk-generator";
|
|
2
|
+
export type CSharpSDKOptions = {
|
|
3
|
+
packageVersion?: string;
|
|
4
|
+
dotNetVersions?: string[];
|
|
5
|
+
} & SdkGeneratorOptions;
|
|
6
|
+
export declare const generateCSharpSDK: (options?: CSharpSDKOptions) => Promise<any>;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import * as url from "url";
|
|
2
2
|
import path from "path";
|
|
3
|
-
import axios from "axios";
|
|
4
3
|
import { pascalCase } from "change-case";
|
|
5
4
|
import { deepFlattenAllOfSchema, getParameterAndResponseSchema, populateFs, } from "@seamapi/nextlove-sdk-generator";
|
|
5
|
+
import { modifySchemaForSpecialCases } from "./schema-modifications.js";
|
|
6
6
|
import * as cs from "./codegen.js";
|
|
7
7
|
import { generateDataclassFileForSchema, generateDataclassFileForRoutes, } from "./templates/dataclass.js";
|
|
8
8
|
import { GLOBAL_NAMESPACE } from "./constants.js";
|
|
9
9
|
import { csprojTemplate } from "./generate-csproj.js";
|
|
10
|
+
import resolveOpenapiSpec from "../../lib/openapi/resolve-openapi-spec.js";
|
|
10
11
|
Error.stackTraceLimit = Infinity;
|
|
11
|
-
export const generateCSharpSDK = async (
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
.then((res) => res.data);
|
|
12
|
+
export const generateCSharpSDK = async (options = {}) => {
|
|
13
|
+
const { packageVersion = "1.0.0", dotNetVersions = ["6.0", "7.0"] } = options;
|
|
14
|
+
const openapi = await resolveOpenapiSpec(options);
|
|
15
15
|
const routes = Object.entries(openapi.paths).map(([path, v]) => ({
|
|
16
16
|
path,
|
|
17
17
|
...v,
|
|
@@ -68,6 +68,7 @@ export const generateCSharpSDK = async (packageVersion = "1.0.0", dotNetVersions
|
|
|
68
68
|
.map(([schema_name, schema]) => [schema_name, schema])
|
|
69
69
|
.forEach(([schema_name, schema]) => {
|
|
70
70
|
try {
|
|
71
|
+
schema = modifySchemaForSpecialCases(schema_name, schema);
|
|
71
72
|
if ("allOf" in schema) {
|
|
72
73
|
const flattened = deepFlattenAllOfSchema(schema);
|
|
73
74
|
if (flattened == null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-csharp-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-csharp-sdk/generate-csharp-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"generate-csharp-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-csharp-sdk/generate-csharp-sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const modifySchemaForSpecialCases = (schemaName, schema) => {
|
|
2
|
+
if (schemaName === "action_attempt" && !("discriminator" in schema)) {
|
|
3
|
+
return {
|
|
4
|
+
...schema,
|
|
5
|
+
discriminator: {
|
|
6
|
+
propertyName: "action_type",
|
|
7
|
+
},
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
return schema;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=schema-modifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-modifications.js","sourceRoot":"","sources":["../../src/lib/generate-csharp-sdk/schema-modifications.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,UAAkB,EAClB,MAAsB,EACN,EAAE;IAClB,IAAI,UAAU,KAAK,gBAAgB,IAAI,CAAC,CAAC,eAAe,IAAI,MAAM,CAAC,EAAE;QACnE,OAAO;YACL,GAAG,MAAM;YACT,aAAa,EAAE;gBACb,YAAY,EAAE,aAAa;aAC5B;SACgB,CAAA;KACpB;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as url from "url"
|
|
2
2
|
import path from "path"
|
|
3
|
-
import axios from "axios"
|
|
4
3
|
import { pascalCase } from "change-case"
|
|
5
4
|
import {
|
|
6
5
|
deepFlattenAllOfSchema,
|
|
@@ -9,7 +8,9 @@ import {
|
|
|
9
8
|
type OpenAPISchema,
|
|
10
9
|
type PropertySchema,
|
|
11
10
|
type Route,
|
|
11
|
+
type SdkGeneratorOptions,
|
|
12
12
|
} from "@seamapi/nextlove-sdk-generator"
|
|
13
|
+
import { modifySchemaForSpecialCases } from "./schema-modifications.js"
|
|
13
14
|
|
|
14
15
|
import * as cs from "./codegen.js"
|
|
15
16
|
import {
|
|
@@ -19,16 +20,20 @@ import {
|
|
|
19
20
|
} from "./templates/dataclass.js"
|
|
20
21
|
import { GLOBAL_NAMESPACE } from "./constants.js"
|
|
21
22
|
import { csprojTemplate } from "./generate-csproj.js"
|
|
23
|
+
import resolveOpenapiSpec from "lib/openapi/resolve-openapi-spec.js"
|
|
22
24
|
|
|
23
25
|
Error.stackTraceLimit = Infinity
|
|
24
26
|
|
|
25
|
-
export
|
|
26
|
-
packageVersion
|
|
27
|
-
dotNetVersions
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
export type CSharpSDKOptions = {
|
|
28
|
+
packageVersion?: string
|
|
29
|
+
dotNetVersions?: string[]
|
|
30
|
+
} & SdkGeneratorOptions
|
|
31
|
+
|
|
32
|
+
export const generateCSharpSDK = async (options: CSharpSDKOptions = {}) => {
|
|
33
|
+
const { packageVersion = "1.0.0", dotNetVersions = ["6.0", "7.0"] } = options
|
|
34
|
+
|
|
35
|
+
const openapi: OpenAPISchema = await resolveOpenapiSpec(options)
|
|
36
|
+
|
|
32
37
|
const routes: Route[] = Object.entries(openapi.paths).map(([path, v]) => ({
|
|
33
38
|
path,
|
|
34
39
|
...v,
|
|
@@ -119,6 +124,8 @@ export const generateCSharpSDK = async (
|
|
|
119
124
|
)
|
|
120
125
|
.forEach(([schema_name, schema]) => {
|
|
121
126
|
try {
|
|
127
|
+
schema = modifySchemaForSpecialCases(schema_name, schema)
|
|
128
|
+
|
|
122
129
|
if ("allOf" in schema) {
|
|
123
130
|
const flattened = deepFlattenAllOfSchema(schema)
|
|
124
131
|
if (flattened == null) return
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PropertySchema } from "lib/types.js"
|
|
2
|
+
|
|
3
|
+
export const modifySchemaForSpecialCases = (
|
|
4
|
+
schemaName: string,
|
|
5
|
+
schema: PropertySchema
|
|
6
|
+
): PropertySchema => {
|
|
7
|
+
if (schemaName === "action_attempt" && !("discriminator" in schema)) {
|
|
8
|
+
return {
|
|
9
|
+
...schema,
|
|
10
|
+
discriminator: {
|
|
11
|
+
propertyName: "action_type",
|
|
12
|
+
},
|
|
13
|
+
} as PropertySchema
|
|
14
|
+
}
|
|
15
|
+
return schema
|
|
16
|
+
}
|