@seamapi/nextlove-sdk-generator 1.13.1 → 1.13.2

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.
@@ -10,6 +10,7 @@ import resource_warnings_supportRbTemplate from "./templates/resource_warnings_s
10
10
  import mapParentToChildResources from "../../lib/openapi/map-parent-to-children-resource.js";
11
11
  import { ignored_endpoint_paths } from "../../lib/endpoint-rules.js";
12
12
  import resolveOpenapiSpec from "../../lib/openapi/resolve-openapi-spec.js";
13
+ import { generateEntityImportsTemplate } from "./lib/get-entity-imports-template.js";
13
14
  export const generateRubySDK = async (options = {}) => {
14
15
  const openapi = await resolveOpenapiSpec(options);
15
16
  const routes = Object.entries(openapi.paths).map(([path, v]) => ({
@@ -17,12 +18,16 @@ export const generateRubySDK = async (options = {}) => {
17
18
  ...v,
18
19
  }));
19
20
  const fs = {};
20
- fs["lib/seam/routes/resources/resource_error.rb"] = resource_errorRbTemplate();
21
- fs["lib/seam/routes/resources/resource_warning.rb"] =
21
+ const lib_routes_path = "lib/seam/routes";
22
+ const lib_route_resources_path = `${lib_routes_path}/resources`;
23
+ const lib_route_clients_path = `${lib_routes_path}/clients`;
24
+ fs[`${lib_route_resources_path}/resource_error.rb`] =
25
+ resource_errorRbTemplate();
26
+ fs[`${lib_route_resources_path}/resource_warning.rb`] =
22
27
  resource_warningRbTemplate();
23
- fs["lib/seam/routes/resources/resource_errors_support.rb"] =
28
+ fs[`${lib_route_resources_path}/resource_errors_support.rb`] =
24
29
  resource_errors_supportRbTemplate();
25
- fs["lib/seam/routes/resources/resource_warnings_support.rb"] =
30
+ fs[`${lib_route_resources_path}/resource_warnings_support.rb`] =
26
31
  resource_warnings_supportRbTemplate();
27
32
  const resources = Object.entries(openapi.components.schemas).map(([schema_name, schema]) => [schema_name, flattenObjSchema(schema)]);
28
33
  for (const [snake_name, schema] of resources) {
@@ -30,7 +35,7 @@ export const generateRubySDK = async (options = {}) => {
30
35
  name,
31
36
  is_date_time: "format" in property_schema && property_schema.format === "date-time",
32
37
  }));
33
- fs[`lib/seam/routes/resources/${snake_name}.rb`] = resourceRbTemplate({
38
+ fs[`${lib_route_resources_path}/${snake_name}.rb`] = resourceRbTemplate({
34
39
  pascal_name: pascalCase(snake_name),
35
40
  attrs: params.filter((p) => !p.is_date_time).map((p) => p.name),
36
41
  date_attrs: params.filter((p) => p.is_date_time).map((p) => p.name),
@@ -95,8 +100,15 @@ export const generateRubySDK = async (options = {}) => {
95
100
  });
96
101
  }
97
102
  for (const client of Object.values(clients)) {
98
- fs[`lib/seam/routes/clients/${client.snake_name}.rb`] = client.serialize();
103
+ fs[`${lib_route_clients_path}/${client.snake_name}.rb`] = client.serialize();
99
104
  }
105
+ const resource_file_paths = Object.keys(fs).filter((f) => f.startsWith(lib_route_resources_path));
106
+ const client_file_paths = Object.keys(fs).filter((f) => f.startsWith(lib_route_clients_path));
107
+ const imports_file_name = "index";
108
+ fs[`${lib_route_resources_path}/${imports_file_name}.rb`] =
109
+ generateEntityImportsTemplate(resource_file_paths);
110
+ fs[`${lib_route_clients_path}/${imports_file_name}.rb`] =
111
+ generateEntityImportsTemplate(client_file_paths);
100
112
  return fs;
101
113
  };
102
114
  //# sourceMappingURL=generate-ruby-sdk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-ruby-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-ruby-sdk/generate-ruby-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-ruby-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-ruby-sdk/generate-ruby-sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const generateEntityImportsTemplate: (entity_file_paths: string[]) => string;
@@ -0,0 +1,17 @@
1
+ export const generateEntityImportsTemplate = (entity_file_paths) => {
2
+ const entity_names = extractEntityNamesFromFilePaths(entity_file_paths);
3
+ const imports_template = generateImportStatements(entity_names);
4
+ return imports_template;
5
+ };
6
+ const extractEntityNamesFromFilePaths = (entity_file_paths) => {
7
+ return entity_file_paths.map((file_path) => {
8
+ const parts = file_path.split("/");
9
+ const file_name = parts.pop();
10
+ return file_name ? file_name.replace(".rb", "") : "";
11
+ });
12
+ };
13
+ const generateImportStatements = (entity_names) => {
14
+ return `# frozen_string_literal: true\n
15
+ ${entity_names.map((n) => `require_relative '${n}'`).join("\n")}`;
16
+ };
17
+ //# sourceMappingURL=get-entity-imports-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-entity-imports-template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/lib/get-entity-imports-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,iBAA2B,EAAE,EAAE;IAC3E,MAAM,YAAY,GAAG,+BAA+B,CAAC,iBAAiB,CAAC,CAAA;IACvE,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAA;IAE/D,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,+BAA+B,GAAG,CAAC,iBAA2B,EAAE,EAAE;IACtE,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;QAE7B,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAAC,YAAsB,EAAE,EAAE;IAC1D,OAAO;IACL,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AACnE,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/nextlove-sdk-generator",
3
- "version": "1.13.1",
3
+ "version": "1.13.2",
4
4
  "description": "Utilities for building NextLove SDK Generators",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -11,6 +11,7 @@ import resource_warnings_supportRbTemplate from "./templates/resource_warnings_s
11
11
  import mapParentToChildResources from "lib/openapi/map-parent-to-children-resource.js"
12
12
  import { ignored_endpoint_paths } from "lib/endpoint-rules.js"
13
13
  import resolveOpenapiSpec from "lib/openapi/resolve-openapi-spec.js"
14
+ import { generateEntityImportsTemplate } from "./lib/get-entity-imports-template.js"
14
15
 
15
16
  export const generateRubySDK = async (options: SdkGeneratorOptions = {}) => {
16
17
  const openapi = await resolveOpenapiSpec(options)
@@ -20,13 +21,17 @@ export const generateRubySDK = async (options: SdkGeneratorOptions = {}) => {
20
21
  }))
21
22
 
22
23
  const fs: Record<string, string> = {}
24
+ const lib_routes_path = "lib/seam/routes"
25
+ const lib_route_resources_path = `${lib_routes_path}/resources`
26
+ const lib_route_clients_path = `${lib_routes_path}/clients`
23
27
 
24
- fs["lib/seam/routes/resources/resource_error.rb"] = resource_errorRbTemplate()
25
- fs["lib/seam/routes/resources/resource_warning.rb"] =
28
+ fs[`${lib_route_resources_path}/resource_error.rb`] =
29
+ resource_errorRbTemplate()
30
+ fs[`${lib_route_resources_path}/resource_warning.rb`] =
26
31
  resource_warningRbTemplate()
27
- fs["lib/seam/routes/resources/resource_errors_support.rb"] =
32
+ fs[`${lib_route_resources_path}/resource_errors_support.rb`] =
28
33
  resource_errors_supportRbTemplate()
29
- fs["lib/seam/routes/resources/resource_warnings_support.rb"] =
34
+ fs[`${lib_route_resources_path}/resource_warnings_support.rb`] =
30
35
  resource_warnings_supportRbTemplate()
31
36
 
32
37
  const resources = Object.entries(openapi.components.schemas).map(
@@ -42,7 +47,7 @@ export const generateRubySDK = async (options: SdkGeneratorOptions = {}) => {
42
47
  })
43
48
  )
44
49
 
45
- fs[`lib/seam/routes/resources/${snake_name}.rb`] = resourceRbTemplate({
50
+ fs[`${lib_route_resources_path}/${snake_name}.rb`] = resourceRbTemplate({
46
51
  pascal_name: pascalCase(snake_name),
47
52
  attrs: params.filter((p) => !p.is_date_time).map((p) => p.name),
48
53
  date_attrs: params.filter((p) => p.is_date_time).map((p) => p.name),
@@ -124,8 +129,21 @@ export const generateRubySDK = async (options: SdkGeneratorOptions = {}) => {
124
129
  }
125
130
 
126
131
  for (const client of Object.values(clients)) {
127
- fs[`lib/seam/routes/clients/${client.snake_name}.rb`] = client.serialize()
132
+ fs[`${lib_route_clients_path}/${client.snake_name}.rb`] = client.serialize()
128
133
  }
129
134
 
135
+ const resource_file_paths = Object.keys(fs).filter((f) =>
136
+ f.startsWith(lib_route_resources_path)
137
+ )
138
+ const client_file_paths = Object.keys(fs).filter((f) =>
139
+ f.startsWith(lib_route_clients_path)
140
+ )
141
+ const imports_file_name = "index"
142
+
143
+ fs[`${lib_route_resources_path}/${imports_file_name}.rb`] =
144
+ generateEntityImportsTemplate(resource_file_paths)
145
+ fs[`${lib_route_clients_path}/${imports_file_name}.rb`] =
146
+ generateEntityImportsTemplate(client_file_paths)
147
+
130
148
  return fs
131
149
  }
@@ -0,0 +1,20 @@
1
+ export const generateEntityImportsTemplate = (entity_file_paths: string[]) => {
2
+ const entity_names = extractEntityNamesFromFilePaths(entity_file_paths)
3
+ const imports_template = generateImportStatements(entity_names)
4
+
5
+ return imports_template
6
+ }
7
+
8
+ const extractEntityNamesFromFilePaths = (entity_file_paths: string[]) => {
9
+ return entity_file_paths.map((file_path) => {
10
+ const parts = file_path.split("/")
11
+ const file_name = parts.pop()
12
+
13
+ return file_name ? file_name.replace(".rb", "") : ""
14
+ })
15
+ }
16
+
17
+ const generateImportStatements = (entity_names: string[]) => {
18
+ return `# frozen_string_literal: true\n
19
+ ${entity_names.map((n) => `require_relative '${n}'`).join("\n")}`
20
+ }