@seamapi/nextlove-sdk-generator 1.17.4 → 1.18.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.
@@ -14,6 +14,7 @@ import envExampleTemplate from "./templates/env.example.template.js";
14
14
  import testFixtureTemplate from "./templates/test-fixture.template.js";
15
15
  import smokeTestTemplate from "./templates/smoke-test.template.js";
16
16
  import PackageVersionTemplate from "./templates/PackageVersion.php.template.js";
17
+ import PaginatorTemplate from "./templates/Paginator.php.template.js";
17
18
  import mapParentToChildResources from "../../lib/openapi/map-parent-to-children-resource.js";
18
19
  import resolveOpenapiSpec from "../../lib/openapi/resolve-openapi-spec.js";
19
20
  import { loadExceptionTemplates } from "./utils/load-exception-templates.js";
@@ -29,6 +30,7 @@ export const generatePhpSDK = async (options = {}) => {
29
30
  fs["tests/Fixture.php"] = testFixtureTemplate();
30
31
  fs["tests/SmokeTest.php"] = smokeTestTemplate();
31
32
  fs["src/Utils/PackageVersion.php"] = PackageVersionTemplate();
33
+ fs["src/Paginator.php"] = PaginatorTemplate();
32
34
  const exceptions = loadExceptionTemplates();
33
35
  for (const [filename, content] of Object.entries(exceptions)) {
34
36
  fs[`src/Exceptions/${filename}`] = content;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-php-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-php-sdk/generate-php-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-php-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-php-sdk/generate-php-sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const _default: () => string;
2
+ export default _default;
@@ -0,0 +1,97 @@
1
+ export default () => `<?php
2
+
3
+ namespace Seam;
4
+
5
+ class Paginator
6
+ {
7
+ private $request;
8
+ private $params;
9
+ private $pagination_cache = [];
10
+ private const FIRST_PAGE = "FIRST_PAGE";
11
+
12
+ public function __construct(callable $request, array $params = [])
13
+ {
14
+ $this->request = $request;
15
+ $this->params = $params;
16
+ }
17
+
18
+ public function firstPage(): array
19
+ {
20
+ $request = $this->request;
21
+ $params = $this->params;
22
+
23
+ $params["on_response"] = fn($response) => $this->cachePagination(
24
+ $response,
25
+ self::FIRST_PAGE
26
+ );
27
+
28
+ $data = $request($params);
29
+
30
+ return [$data, $this->pagination_cache[self::FIRST_PAGE]];
31
+ }
32
+
33
+ public function nextPage(string $next_page_cursor): array
34
+ {
35
+ if ($next_page_cursor === null) {
36
+ throw new \\InvalidArgumentException(
37
+ "Cannot get the next page with a null next_page_cursor"
38
+ );
39
+ }
40
+
41
+ $request = $this->request;
42
+ $params = $this->params;
43
+
44
+ $params["page_cursor"] = $next_page_cursor;
45
+ $params["on_response"] = fn($response) => $this->cachePagination(
46
+ $response,
47
+ $next_page_cursor
48
+ );
49
+
50
+ $data = $request($params);
51
+
52
+ return [$data, $this->pagination_cache[$next_page_cursor]];
53
+ }
54
+
55
+ private function cachePagination($response, $next_page_cursor)
56
+ {
57
+ $this->pagination_cache[$next_page_cursor] = $response->pagination;
58
+ }
59
+
60
+ public function flattenToArray(): array
61
+ {
62
+ $items = [];
63
+
64
+ [$response, $pagination] = $this->firstPage();
65
+ $items = array_merge($items, $response);
66
+
67
+ while ($pagination->has_next_page) {
68
+ [$response, $pagination] = $this->nextPage(
69
+ $pagination->next_page_cursor
70
+ );
71
+ $items = array_merge($items, $response);
72
+ }
73
+
74
+ return $items;
75
+ }
76
+
77
+ public function flatten()
78
+ {
79
+ [$current, $pagination] = $this->firstPage();
80
+
81
+ foreach ($current as $item) {
82
+ yield $item;
83
+ }
84
+
85
+ while ($pagination->has_next_page) {
86
+ [$current, $pagination] = $this->nextPage(
87
+ $pagination->next_page_cursor
88
+ );
89
+
90
+ foreach ($current as $item) {
91
+ yield $item;
92
+ }
93
+ }
94
+ }
95
+ }
96
+ `;
97
+ //# sourceMappingURL=Paginator.php.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Paginator.php.template.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/templates/Paginator.php.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+FpB,CAAA"}
@@ -56,7 +56,6 @@ class SeamClient
56
56
  $path,
57
57
  $json = null,
58
58
  $query = null,
59
- $inner_object = null
60
59
  ) {
61
60
  $options = [
62
61
  "json" => $json,
@@ -94,7 +93,12 @@ class SeamClient
94
93
  );
95
94
  }
96
95
 
97
- return $inner_object ? $res_json->$inner_object : $res_json;
96
+ return $res_json;
97
+ }
98
+
99
+ public function createPaginator($request, $params = [])
100
+ {
101
+ return new Paginator($request, $params);
98
102
  }
99
103
  }
100
104
 
@@ -1 +1 @@
1
- {"version":3,"file":"generate-seam-client.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/generate-seam-client.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,gBAAgB,EAChB,qBAAqB,GACd,EAAE,EAAE;IACX,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAC1B,CAAA;IAED,OAAO;;;;EAIP,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;IAerE,uBAAuB;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,WAAW,WAAW,CAAC,CAAC,SAAS,GAAG,CAAC;SAC5D,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;MAyBX,uBAAuB;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,WAAW,gBAAgB,CAAC;SACxE,IAAI,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDnB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;CACxD,CAAA;AACD,CAAC,CAAA"}
1
+ {"version":3,"file":"generate-seam-client.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/generate-seam-client.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,gBAAgB,EAChB,qBAAqB,GACd,EAAE,EAAE;IACX,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAC1B,CAAA;IAED,OAAO;;;;EAIP,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;IAerE,uBAAuB;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,WAAW,WAAW,CAAC,CAAC,SAAS,GAAG,CAAC;SAC5D,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;MAyBX,uBAAuB;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,WAAW,gBAAgB,CAAC;SACxE,IAAI,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDnB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;CACxD,CAAA;AACD,CAAC,CAAA"}
@@ -39,19 +39,24 @@ export class PhpClient {
39
39
  : return_resource
40
40
  ? return_resource
41
41
  : "void";
42
+ const should_use_on_response_callback = parameters.some((p) => p.name === "page_cursor") &&
43
+ method_name === "list";
42
44
  return [
43
45
  "",
44
46
  ` public function ${method_name}(`,
45
47
  ` ${parameters
46
48
  .sort((a, b) => (a.position ?? a.required ? 1000 : 9999) -
47
49
  (b.position ?? b.required ? 1000 : 9999))
48
- .map((p) => `${p.type} $${p.name}${p.required ? "" : " = null"}`)
50
+ .map((p) => `${!p.required && p.type !== "mixed" ? "?" : ""}${p.type} $${p.name}${p.required ? "" : " = null"}`)
49
51
  .concat(does_method_use_action_attempt
50
52
  ? ["bool $wait_for_action_attempt = true"]
51
53
  : [])
54
+ .concat(should_use_on_response_callback
55
+ ? ["?callable $on_response = null"]
56
+ : [])
52
57
  .join(",\n ")}`,
53
58
  ` ): ${method_return_type} {`,
54
- ` $request_payload = [];`,
59
+ parameters.length > 0 ? ` $request_payload = [];` : "",
55
60
  ``,
56
61
  `${parameters
57
62
  .map((p) => [
@@ -64,14 +69,15 @@ export class PhpClient {
64
69
  ` ${return_resource ? "$res = " : ""}$this->seam->request(`,
65
70
  ` "POST",`,
66
71
  ` "${path}",`,
67
- ` json: (object)$request_payload,`,
68
- ` ${return_path ? `inner_object: "${return_path}",` : ""}`,
72
+ parameters.length > 0
73
+ ? ` json: (object)$request_payload,`
74
+ : "",
69
75
  ` );`,
70
76
  ``,
71
77
  does_method_use_action_attempt
72
78
  ? [
73
79
  " if (!$wait_for_action_attempt) {",
74
- ` return ${return_resource}::from_json($res);`,
80
+ ` return ${return_resource}::from_json($res->${return_path});`,
75
81
  " }",
76
82
  ].join("\n")
77
83
  : "",
@@ -79,17 +85,25 @@ export class PhpClient {
79
85
  does_method_use_action_attempt
80
86
  ? [
81
87
  ` $action_attempt = $this->seam->action_attempts->poll_until_ready(`,
82
- ` $res->action_attempt_id`,
88
+ ` $res->action_attempt->action_attempt_id`,
83
89
  ` );`,
84
90
  ``,
85
91
  ` return $action_attempt;`,
86
92
  ].join("\n")
87
93
  : "",
88
94
  ``,
95
+ should_use_on_response_callback
96
+ ? [
97
+ ` if ($on_response !== null) {`,
98
+ ` $on_response($res);`,
99
+ ` }`,
100
+ "",
101
+ ].join("\n")
102
+ : "",
89
103
  return_resource && !does_method_use_action_attempt
90
104
  ? ` return ${is_array_response
91
- ? `array_map(fn ($r) => ${return_resource}::from_json($r), $res);`
92
- : `${return_resource}::from_json($res);`}`
105
+ ? `array_map(fn ($r) => ${return_resource}::from_json($r), $res->${return_path});`
106
+ : `${return_resource}::from_json($res->${return_path});`}`
93
107
  : "",
94
108
  ` }`,
95
109
  ].join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"php-client.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/php-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"php-client.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/php-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/nextlove-sdk-generator",
3
- "version": "1.17.4",
3
+ "version": "1.18.1",
4
4
  "description": "Utilities for building NextLove SDK Generators",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -15,6 +15,7 @@ import envExampleTemplate from "./templates/env.example.template.js"
15
15
  import testFixtureTemplate from "./templates/test-fixture.template.js"
16
16
  import smokeTestTemplate from "./templates/smoke-test.template.js"
17
17
  import PackageVersionTemplate from "./templates/PackageVersion.php.template.js"
18
+ import PaginatorTemplate from "./templates/Paginator.php.template.js"
18
19
  import mapParentToChildResources from "lib/openapi/map-parent-to-children-resource.js"
19
20
  import resolveOpenapiSpec from "lib/openapi/resolve-openapi-spec.js"
20
21
  import { loadExceptionTemplates } from "./utils/load-exception-templates.js"
@@ -33,6 +34,7 @@ export const generatePhpSDK = async (options: SdkGeneratorOptions = {}) => {
33
34
  fs["tests/Fixture.php"] = testFixtureTemplate()
34
35
  fs["tests/SmokeTest.php"] = smokeTestTemplate()
35
36
  fs["src/Utils/PackageVersion.php"] = PackageVersionTemplate()
37
+ fs["src/Paginator.php"] = PaginatorTemplate()
36
38
 
37
39
  const exceptions = loadExceptionTemplates()
38
40
  for (const [filename, content] of Object.entries(exceptions)) {
@@ -0,0 +1,96 @@
1
+ export default () => `<?php
2
+
3
+ namespace Seam;
4
+
5
+ class Paginator
6
+ {
7
+ private $request;
8
+ private $params;
9
+ private $pagination_cache = [];
10
+ private const FIRST_PAGE = "FIRST_PAGE";
11
+
12
+ public function __construct(callable $request, array $params = [])
13
+ {
14
+ $this->request = $request;
15
+ $this->params = $params;
16
+ }
17
+
18
+ public function firstPage(): array
19
+ {
20
+ $request = $this->request;
21
+ $params = $this->params;
22
+
23
+ $params["on_response"] = fn($response) => $this->cachePagination(
24
+ $response,
25
+ self::FIRST_PAGE
26
+ );
27
+
28
+ $data = $request($params);
29
+
30
+ return [$data, $this->pagination_cache[self::FIRST_PAGE]];
31
+ }
32
+
33
+ public function nextPage(string $next_page_cursor): array
34
+ {
35
+ if ($next_page_cursor === null) {
36
+ throw new \\InvalidArgumentException(
37
+ "Cannot get the next page with a null next_page_cursor"
38
+ );
39
+ }
40
+
41
+ $request = $this->request;
42
+ $params = $this->params;
43
+
44
+ $params["page_cursor"] = $next_page_cursor;
45
+ $params["on_response"] = fn($response) => $this->cachePagination(
46
+ $response,
47
+ $next_page_cursor
48
+ );
49
+
50
+ $data = $request($params);
51
+
52
+ return [$data, $this->pagination_cache[$next_page_cursor]];
53
+ }
54
+
55
+ private function cachePagination($response, $next_page_cursor)
56
+ {
57
+ $this->pagination_cache[$next_page_cursor] = $response->pagination;
58
+ }
59
+
60
+ public function flattenToArray(): array
61
+ {
62
+ $items = [];
63
+
64
+ [$response, $pagination] = $this->firstPage();
65
+ $items = array_merge($items, $response);
66
+
67
+ while ($pagination->has_next_page) {
68
+ [$response, $pagination] = $this->nextPage(
69
+ $pagination->next_page_cursor
70
+ );
71
+ $items = array_merge($items, $response);
72
+ }
73
+
74
+ return $items;
75
+ }
76
+
77
+ public function flatten()
78
+ {
79
+ [$current, $pagination] = $this->firstPage();
80
+
81
+ foreach ($current as $item) {
82
+ yield $item;
83
+ }
84
+
85
+ while ($pagination->has_next_page) {
86
+ [$current, $pagination] = $this->nextPage(
87
+ $pagination->next_page_cursor
88
+ );
89
+
90
+ foreach ($current as $item) {
91
+ yield $item;
92
+ }
93
+ }
94
+ }
95
+ }
96
+ `
@@ -69,7 +69,6 @@ class SeamClient
69
69
  $path,
70
70
  $json = null,
71
71
  $query = null,
72
- $inner_object = null
73
72
  ) {
74
73
  $options = [
75
74
  "json" => $json,
@@ -107,7 +106,12 @@ class SeamClient
107
106
  );
108
107
  }
109
108
 
110
- return $inner_object ? $res_json->$inner_object : $res_json;
109
+ return $res_json;
110
+ }
111
+
112
+ public function createPaginator($request, $params = [])
113
+ {
114
+ return new Paginator($request, $params);
111
115
  }
112
116
  }
113
117
 
@@ -84,6 +84,10 @@ export class PhpClient {
84
84
  ? return_resource
85
85
  : "void"
86
86
 
87
+ const should_use_on_response_callback =
88
+ parameters.some((p) => p.name === "page_cursor") &&
89
+ method_name === "list"
90
+
87
91
  return [
88
92
  "",
89
93
  ` public function ${method_name}(`,
@@ -93,16 +97,26 @@ export class PhpClient {
93
97
  (a.position ?? a.required ? 1000 : 9999) -
94
98
  (b.position ?? b.required ? 1000 : 9999)
95
99
  )
96
- .map((p) => `${p.type} $${p.name}${p.required ? "" : " = null"}`)
100
+ .map(
101
+ (p) =>
102
+ `${!p.required && p.type !== "mixed" ? "?" : ""}${p.type} $${
103
+ p.name
104
+ }${p.required ? "" : " = null"}`
105
+ )
97
106
  .concat(
98
107
  does_method_use_action_attempt
99
108
  ? ["bool $wait_for_action_attempt = true"]
100
109
  : []
101
110
  )
111
+ .concat(
112
+ should_use_on_response_callback
113
+ ? ["?callable $on_response = null"]
114
+ : []
115
+ )
102
116
  .join(",\n ")}`,
103
117
  ` ): ${method_return_type} {`,
104
118
 
105
- ` $request_payload = [];`,
119
+ parameters.length > 0 ? ` $request_payload = [];` : "",
106
120
  ``,
107
121
 
108
122
  `${parameters
@@ -119,15 +133,16 @@ export class PhpClient {
119
133
  ` ${return_resource ? "$res = " : ""}$this->seam->request(`,
120
134
  ` "POST",`,
121
135
  ` "${path}",`,
122
- ` json: (object)$request_payload,`,
123
- ` ${return_path ? `inner_object: "${return_path}",` : ""}`,
136
+ parameters.length > 0
137
+ ? ` json: (object)$request_payload,`
138
+ : "",
124
139
  ` );`,
125
140
  ``,
126
141
 
127
142
  does_method_use_action_attempt
128
143
  ? [
129
144
  " if (!$wait_for_action_attempt) {",
130
- ` return ${return_resource}::from_json($res);`,
145
+ ` return ${return_resource}::from_json($res->${return_path});`,
131
146
  " }",
132
147
  ].join("\n")
133
148
  : "",
@@ -135,7 +150,7 @@ export class PhpClient {
135
150
  does_method_use_action_attempt
136
151
  ? [
137
152
  ` $action_attempt = $this->seam->action_attempts->poll_until_ready(`,
138
- ` $res->action_attempt_id`,
153
+ ` $res->action_attempt->action_attempt_id`,
139
154
  ` );`,
140
155
  ``,
141
156
  ` return $action_attempt;`,
@@ -143,11 +158,20 @@ export class PhpClient {
143
158
  : "",
144
159
  ``,
145
160
 
161
+ should_use_on_response_callback
162
+ ? [
163
+ ` if ($on_response !== null) {`,
164
+ ` $on_response($res);`,
165
+ ` }`,
166
+ "",
167
+ ].join("\n")
168
+ : "",
169
+
146
170
  return_resource && !does_method_use_action_attempt
147
171
  ? ` return ${
148
172
  is_array_response
149
- ? `array_map(fn ($r) => ${return_resource}::from_json($r), $res);`
150
- : `${return_resource}::from_json($res);`
173
+ ? `array_map(fn ($r) => ${return_resource}::from_json($r), $res->${return_path});`
174
+ : `${return_resource}::from_json($res->${return_path});`
151
175
  }`
152
176
  : "",
153
177
  ` }`,