bingo 0.5.7 → 0.5.9

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.
Files changed (151) hide show
  1. package/lib/cli/display/createClackDisplay.d.ts.map +1 -1
  2. package/lib/cli/display/createClackDisplay.js +0 -2
  3. package/lib/cli/display/createClackDisplay.js.map +1 -1
  4. package/lib/cli/display/runInsideClackDisplay.js +1 -1
  5. package/lib/cli/display/runInsideClackDisplay.js.map +1 -1
  6. package/lib/cli/loggers/logRerunSuggestion.d.ts +1 -1
  7. package/lib/cli/loggers/logRerunSuggestion.d.ts.map +1 -1
  8. package/lib/cli/loggers/logRerunSuggestion.js +3 -3
  9. package/lib/cli/loggers/logRerunSuggestion.js.map +1 -1
  10. package/lib/cli/loggers/logRerunSuggestion.test.js +7 -5
  11. package/lib/cli/loggers/logRerunSuggestion.test.js.map +1 -1
  12. package/lib/cli/loggers/logSchemasHelpOptions.d.ts.map +1 -1
  13. package/lib/cli/loggers/logSchemasHelpOptions.js +1 -0
  14. package/lib/cli/loggers/logSchemasHelpOptions.js.map +1 -1
  15. package/lib/cli/messages.d.ts +3 -0
  16. package/lib/cli/messages.d.ts.map +1 -1
  17. package/lib/cli/messages.js +3 -0
  18. package/lib/cli/messages.js.map +1 -1
  19. package/lib/cli/parseProcessArgv.d.ts +1 -1
  20. package/lib/cli/parseProcessArgv.d.ts.map +1 -1
  21. package/lib/cli/parseProcessArgv.js +2 -3
  22. package/lib/cli/parseProcessArgv.js.map +1 -1
  23. package/lib/cli/parsers/parseZodArgs.d.ts.map +1 -1
  24. package/lib/cli/parsers/parseZodArgs.js +1 -1
  25. package/lib/cli/parsers/parseZodArgs.js.map +1 -1
  26. package/lib/cli/prompts/promptForOptionSchema.d.ts.map +1 -1
  27. package/lib/cli/prompts/promptForOptionSchema.js +17 -9
  28. package/lib/cli/prompts/promptForOptionSchema.js.map +1 -1
  29. package/lib/cli/runBingoCLI.js +2 -2
  30. package/lib/cli/runCLI.d.ts +2 -2
  31. package/lib/cli/runCLI.js +2 -2
  32. package/lib/cli/runCli.test.js +4 -3
  33. package/lib/cli/runCli.test.js.map +1 -1
  34. package/lib/cli/runTemplateCLI.js +2 -2
  35. package/lib/cli/schemas/defaults.d.ts +3 -0
  36. package/lib/cli/schemas/defaults.d.ts.map +1 -0
  37. package/lib/cli/schemas/defaults.js +7 -0
  38. package/lib/cli/schemas/defaults.js.map +1 -0
  39. package/lib/cli/schemas/isStringLikeOption.d.ts +3 -0
  40. package/lib/cli/schemas/isStringLikeOption.d.ts.map +1 -0
  41. package/lib/cli/schemas/isStringLikeOption.js +19 -0
  42. package/lib/cli/schemas/isStringLikeOption.js.map +1 -0
  43. package/lib/cli/schemas/isStringLikeOption.test.d.ts +2 -0
  44. package/lib/cli/schemas/isStringLikeOption.test.d.ts.map +1 -0
  45. package/lib/cli/schemas/isStringLikeOption.test.js +63 -0
  46. package/lib/cli/schemas/isStringLikeOption.test.js.map +1 -0
  47. package/lib/cli/schemas/isStringLikeSchema.d.ts +3 -0
  48. package/lib/cli/schemas/isStringLikeSchema.d.ts.map +1 -0
  49. package/lib/cli/schemas/isStringLikeSchema.js +20 -0
  50. package/lib/cli/schemas/isStringLikeSchema.js.map +1 -0
  51. package/lib/cli/schemas/isStringLikeSchema.test.d.ts +2 -0
  52. package/lib/cli/schemas/isStringLikeSchema.test.d.ts.map +1 -0
  53. package/lib/cli/schemas/isStringLikeSchema.test.js +85 -0
  54. package/lib/cli/schemas/isStringLikeSchema.test.js.map +1 -0
  55. package/lib/cli/schemas/isZodDefaultDef.d.ts +3 -0
  56. package/lib/cli/schemas/isZodDefaultDef.d.ts.map +1 -0
  57. package/lib/cli/schemas/isZodDefaultDef.js +7 -0
  58. package/lib/cli/schemas/isZodDefaultDef.js.map +1 -0
  59. package/lib/cli/schemas/isZodDefaultDef.test.d.ts +2 -0
  60. package/lib/cli/schemas/isZodDefaultDef.test.d.ts.map +1 -0
  61. package/lib/cli/schemas/isZodDefaultDef.test.js +40 -0
  62. package/lib/cli/schemas/isZodDefaultDef.test.js.map +1 -0
  63. package/lib/cli/schemas/predicates.d.ts +3 -0
  64. package/lib/cli/schemas/predicates.d.ts.map +1 -0
  65. package/lib/cli/schemas/predicates.js +7 -0
  66. package/lib/cli/schemas/predicates.js.map +1 -0
  67. package/lib/cli/schemas/strings.d.ts +3 -0
  68. package/lib/cli/schemas/strings.d.ts.map +1 -0
  69. package/lib/cli/schemas/strings.js +15 -0
  70. package/lib/cli/schemas/strings.js.map +1 -0
  71. package/lib/cli/schemas/types.d.ts +13 -0
  72. package/lib/cli/schemas/types.d.ts.map +1 -0
  73. package/lib/cli/schemas/types.js +2 -0
  74. package/lib/cli/schemas/types.js.map +1 -0
  75. package/lib/cli/schemas/unions.d.ts +2 -0
  76. package/lib/cli/schemas/unions.d.ts.map +1 -0
  77. package/lib/cli/schemas/unions.js +2 -0
  78. package/lib/cli/schemas/unions.js.map +1 -0
  79. package/lib/cli/setup/createRepositoryOnGitHub.d.ts +3 -1
  80. package/lib/cli/setup/createRepositoryOnGitHub.d.ts.map +1 -1
  81. package/lib/cli/setup/createRepositoryOnGitHub.js +27 -13
  82. package/lib/cli/setup/createRepositoryOnGitHub.js.map +1 -1
  83. package/lib/cli/setup/createRepositoryOnGitHub.test.js +65 -20
  84. package/lib/cli/setup/createRepositoryOnGitHub.test.js.map +1 -1
  85. package/lib/cli/setup/runModeSetup.d.ts +2 -2
  86. package/lib/cli/setup/runModeSetup.d.ts.map +1 -1
  87. package/lib/cli/setup/runModeSetup.js +24 -20
  88. package/lib/cli/setup/runModeSetup.js.map +1 -1
  89. package/lib/cli/transition/runModeTransition.d.ts +2 -2
  90. package/lib/cli/transition/runModeTransition.d.ts.map +1 -1
  91. package/lib/cli/transition/runModeTransition.js +28 -23
  92. package/lib/cli/transition/runModeTransition.js.map +1 -1
  93. package/lib/cli/transition/runModeTransition.test.js +17 -21
  94. package/lib/cli/transition/runModeTransition.test.js.map +1 -1
  95. package/lib/cli/types.d.ts +1 -1
  96. package/lib/cli/types.d.ts.map +1 -1
  97. package/lib/index.d.ts +0 -1
  98. package/lib/index.d.ts.map +1 -1
  99. package/lib/index.js +0 -1
  100. package/lib/index.js.map +1 -1
  101. package/lib/mergers/mergeFetchRequests.d.ts +3 -0
  102. package/lib/mergers/mergeFetchRequests.d.ts.map +1 -0
  103. package/lib/mergers/mergeFetchRequests.js +22 -0
  104. package/lib/mergers/mergeFetchRequests.js.map +1 -0
  105. package/lib/mergers/mergeFetchRequests.test.d.ts +2 -0
  106. package/lib/mergers/mergeFetchRequests.test.d.ts.map +1 -0
  107. package/lib/mergers/mergeFetchRequests.test.js +58 -0
  108. package/lib/mergers/mergeFetchRequests.test.js.map +1 -0
  109. package/lib/mergers/mergeOctokitRequests.d.ts +3 -0
  110. package/lib/mergers/mergeOctokitRequests.d.ts.map +1 -0
  111. package/lib/mergers/mergeOctokitRequests.js +20 -0
  112. package/lib/mergers/mergeOctokitRequests.js.map +1 -0
  113. package/lib/mergers/mergeOctokitRequests.test copy.d.ts +2 -0
  114. package/lib/mergers/mergeOctokitRequests.test copy.d.ts.map +1 -0
  115. package/lib/mergers/mergeOctokitRequests.test copy.js +71 -0
  116. package/lib/mergers/mergeOctokitRequests.test copy.js.map +1 -0
  117. package/lib/mergers/mergeOctokitRequests.test.d.ts +2 -0
  118. package/lib/mergers/mergeOctokitRequests.test.d.ts.map +1 -0
  119. package/lib/mergers/mergeOctokitRequests.test.js +71 -0
  120. package/lib/mergers/mergeOctokitRequests.test.js.map +1 -0
  121. package/lib/mergers/mergeRequests.d.ts +1 -1
  122. package/lib/mergers/mergeRequests.d.ts.map +1 -1
  123. package/lib/mergers/mergeRequests.js +14 -4
  124. package/lib/mergers/mergeRequests.js.map +1 -1
  125. package/lib/mergers/mergeRequests.test.js +17 -13
  126. package/lib/mergers/mergeRequests.test.js.map +1 -1
  127. package/lib/preparation/prepareOptions.d.ts.map +1 -1
  128. package/lib/preparation/prepareOptions.js +2 -2
  129. package/lib/preparation/prepareOptions.js.map +1 -1
  130. package/lib/runners/applyRequestsToSystem.d.ts +2 -2
  131. package/lib/runners/applyRequestsToSystem.d.ts.map +1 -1
  132. package/lib/runners/applyRequestsToSystem.js +10 -4
  133. package/lib/runners/applyRequestsToSystem.js.map +1 -1
  134. package/lib/runners/applyRequestsToSystem.test.js +41 -2
  135. package/lib/runners/applyRequestsToSystem.test.js.map +1 -1
  136. package/lib/runners/getRequestSender.d.ts +8 -0
  137. package/lib/runners/getRequestSender.d.ts.map +1 -0
  138. package/lib/runners/getRequestSender.js +25 -0
  139. package/lib/runners/getRequestSender.js.map +1 -0
  140. package/lib/runners/getRequestSender.test.d.ts +2 -0
  141. package/lib/runners/getRequestSender.test.d.ts.map +1 -0
  142. package/lib/runners/getRequestSender.test.js +94 -0
  143. package/lib/runners/getRequestSender.test.js.map +1 -0
  144. package/lib/types/creations.d.ts +1 -9
  145. package/lib/types/creations.d.ts.map +1 -1
  146. package/lib/types/templates.d.ts +3 -0
  147. package/lib/types/templates.d.ts.map +1 -1
  148. package/lib/utils/getSchemaTypeName.d.ts.map +1 -1
  149. package/lib/utils/getSchemaTypeName.js +2 -0
  150. package/lib/utils/getSchemaTypeName.js.map +1 -1
  151. package/package.json +5 -3
@@ -0,0 +1,20 @@
1
+ import { withoutUndefinedProperties } from "without-undefined-properties";
2
+ export function mergeOctokitRequests(allExisting, added) {
3
+ if (!allExisting) {
4
+ return [added];
5
+ }
6
+ for (let i = 0; i < allExisting.length; i++) {
7
+ const existing = allExisting[i];
8
+ if (added.endpoint !== existing.endpoint || added.id !== existing.id) {
9
+ continue;
10
+ }
11
+ const merged = withoutUndefinedProperties({
12
+ ...existing,
13
+ parameters: Object.assign({}, existing.parameters, added.parameters),
14
+ });
15
+ allExisting[i] = merged;
16
+ return allExisting;
17
+ }
18
+ return [...allExisting, added];
19
+ }
20
+ //# sourceMappingURL=mergeOctokitRequests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeOctokitRequests.js","sourceRoot":"","sources":["../../src/mergers/mergeOctokitRequests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,MAAM,UAAU,oBAAoB,CACnC,WAAgD,EAChD,KAA4B;IAE5B,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC;YACtE,SAAS;QACV,CAAC;QAED,MAAM,MAAM,GAAoB,0BAA0B,CAAC;YAC1D,GAAG,QAAQ;YACX,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;SACpE,CAAC,CAAC;QAEH,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAExB,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mergeOctokitRequests.test%20copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeOctokitRequests.test copy.d.ts","sourceRoot":"","sources":["../../src/mergers/mergeOctokitRequests.test copy.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { mergeOctokitRequests } from "./mergeOctokitRequests.js";
3
+ const owner = "test-owner";
4
+ const repo = "test-repo";
5
+ const title = "Test Title";
6
+ describe("mergeOctokitRequests", () => {
7
+ it("returns the second request when there are no existing requests", () => {
8
+ const second = {
9
+ endpoint: "POST /repos/{owner}/{repo}/labels",
10
+ parameters: { name: "...", owner, repo },
11
+ type: "octokit",
12
+ };
13
+ const actual = mergeOctokitRequests([], second);
14
+ expect(actual).toEqual([second]);
15
+ });
16
+ it("returns both requests when they have different endpoints", () => {
17
+ const first = {
18
+ endpoint: "POST /repos/{owner}/{repo}/labels",
19
+ parameters: { name: "...", owner, repo },
20
+ type: "octokit",
21
+ };
22
+ const second = {
23
+ endpoint: "POST /repos/{owner}/{repo}/issues",
24
+ parameters: { owner, repo, title },
25
+ type: "octokit",
26
+ };
27
+ const actual = mergeOctokitRequests([first], second);
28
+ expect(actual).toEqual([first, second]);
29
+ });
30
+ it("returns just the first request when a next request is identical", () => {
31
+ const first = {
32
+ endpoint: "POST /repos/{owner}/{repo}/labels",
33
+ parameters: { name: "first", owner, repo },
34
+ type: "octokit",
35
+ };
36
+ const second = { ...first };
37
+ const actual = mergeOctokitRequests([first], second);
38
+ expect(actual).toEqual([first]);
39
+ });
40
+ it("returns a merged parameters version of the first request when a next request has the same endpoint and different data", () => {
41
+ const first = {
42
+ endpoint: "POST /repos/{owner}/{repo}/labels",
43
+ parameters: {
44
+ description: "First description.",
45
+ name: "first",
46
+ owner,
47
+ repo,
48
+ },
49
+ type: "octokit",
50
+ };
51
+ const second = {
52
+ endpoint: "POST /repos/{owner}/{repo}/labels",
53
+ parameters: { name: "second", owner, repo },
54
+ type: "octokit",
55
+ };
56
+ const actual = mergeOctokitRequests([first], second);
57
+ expect(actual).toEqual([
58
+ {
59
+ endpoint: "POST /repos/{owner}/{repo}/labels",
60
+ parameters: {
61
+ description: "First description.",
62
+ name: "second",
63
+ owner,
64
+ repo,
65
+ },
66
+ type: "octokit",
67
+ },
68
+ ]);
69
+ });
70
+ });
71
+ //# sourceMappingURL=mergeOctokitRequests.test%20copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeOctokitRequests.test copy.js","sourceRoot":"","sources":["../../src/mergers/mergeOctokitRequests.test copy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mergeOctokitRequests.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeOctokitRequests.test.d.ts","sourceRoot":"","sources":["../../src/mergers/mergeOctokitRequests.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { mergeOctokitRequests } from "./mergeOctokitRequests.js";
3
+ const owner = "test-owner";
4
+ const repo = "test-repo";
5
+ const title = "Test Title";
6
+ describe("mergeOctokitRequests", () => {
7
+ it("returns the second request when there are no existing requests", () => {
8
+ const second = {
9
+ endpoint: "POST /repos/{owner}/{repo}/labels",
10
+ parameters: { name: "...", owner, repo },
11
+ type: "octokit",
12
+ };
13
+ const actual = mergeOctokitRequests([], second);
14
+ expect(actual).toEqual([second]);
15
+ });
16
+ it("returns both requests when they have different endpoints", () => {
17
+ const first = {
18
+ endpoint: "POST /repos/{owner}/{repo}/labels",
19
+ parameters: { name: "...", owner, repo },
20
+ type: "octokit",
21
+ };
22
+ const second = {
23
+ endpoint: "POST /repos/{owner}/{repo}/issues",
24
+ parameters: { owner, repo, title },
25
+ type: "octokit",
26
+ };
27
+ const actual = mergeOctokitRequests([first], second);
28
+ expect(actual).toEqual([first, second]);
29
+ });
30
+ it("returns just the first request when a next request is identical", () => {
31
+ const first = {
32
+ endpoint: "POST /repos/{owner}/{repo}/labels",
33
+ parameters: { name: "first", owner, repo },
34
+ type: "octokit",
35
+ };
36
+ const second = { ...first };
37
+ const actual = mergeOctokitRequests([first], second);
38
+ expect(actual).toEqual([first]);
39
+ });
40
+ it("returns a merged parameters version of the first request when a next request has the same endpoint and different data", () => {
41
+ const first = {
42
+ endpoint: "POST /repos/{owner}/{repo}/labels",
43
+ parameters: {
44
+ description: "First description.",
45
+ name: "first",
46
+ owner,
47
+ repo,
48
+ },
49
+ type: "octokit",
50
+ };
51
+ const second = {
52
+ endpoint: "POST /repos/{owner}/{repo}/labels",
53
+ parameters: { name: "second", owner, repo },
54
+ type: "octokit",
55
+ };
56
+ const actual = mergeOctokitRequests([first], second);
57
+ expect(actual).toEqual([
58
+ {
59
+ endpoint: "POST /repos/{owner}/{repo}/labels",
60
+ parameters: {
61
+ description: "First description.",
62
+ name: "second",
63
+ owner,
64
+ repo,
65
+ },
66
+ type: "octokit",
67
+ },
68
+ ]);
69
+ });
70
+ });
71
+ //# sourceMappingURL=mergeOctokitRequests.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeOctokitRequests.test.js","sourceRoot":"","sources":["../../src/mergers/mergeOctokitRequests.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { CreatedRequest } from "../types/creations.js";
1
+ import { CreatedRequest } from "bingo-requests";
2
2
  export declare function mergeRequests(firsts: CreatedRequest[], seconds: CreatedRequest[]): CreatedRequest[];
3
3
  //# sourceMappingURL=mergeRequests.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeRequests.d.ts","sourceRoot":"","sources":["../../src/mergers/mergeRequests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,wBAAgB,aAAa,CAC5B,MAAM,EAAE,cAAc,EAAE,EACxB,OAAO,EAAE,cAAc,EAAE,oBASzB"}
1
+ {"version":3,"file":"mergeRequests.d.ts","sourceRoot":"","sources":["../../src/mergers/mergeRequests.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,cAAc,EACd,MAAM,gBAAgB,CAAC;AAMxB,wBAAgB,aAAa,CAC5B,MAAM,EAAE,cAAc,EAAE,EACxB,OAAO,EAAE,cAAc,EAAE,oBAuBzB"}
@@ -1,8 +1,18 @@
1
+ import { groupBy } from "../utils/groupBy.js";
2
+ import { mergeFetchRequests } from "./mergeFetchRequests.js";
3
+ import { mergeOctokitRequests } from "./mergeOctokitRequests.js";
1
4
  export function mergeRequests(firsts, seconds) {
2
- const byId = new Map();
3
- for (const request of [...firsts, ...seconds]) {
4
- byId.set(request.id, request);
5
+ const byType = groupBy(firsts, (request) => request.type);
6
+ for (const added of seconds) {
7
+ switch (added.type) {
8
+ case "fetch":
9
+ byType.fetch = mergeFetchRequests(byType.fetch, added);
10
+ break;
11
+ case "octokit":
12
+ byType.octokit = mergeOctokitRequests(byType.octokit, added);
13
+ break;
14
+ }
5
15
  }
6
- return Array.from(byId.values());
16
+ return Object.values(byType).flat();
7
17
  }
8
18
  //# sourceMappingURL=mergeRequests.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeRequests.js","sourceRoot":"","sources":["../../src/mergers/mergeRequests.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAC5B,MAAwB,EACxB,OAAyB;IAEzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAA0B,CAAC;IAE/C,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"mergeRequests.js","sourceRoot":"","sources":["../../src/mergers/mergeRequests.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,UAAU,aAAa,CAC5B,MAAwB,EACxB,OAAyB;IAEzB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,OAAO;gBACX,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAChC,MAAM,CAAC,KAA8B,EACrC,KAAK,CACL,CAAC;gBACF,MAAM;YAEP,KAAK,SAAS;gBACb,MAAM,CAAC,OAAO,GAAG,oBAAoB,CACpC,MAAM,CAAC,OAAkC,EACzC,KAAK,CACL,CAAC;gBACF,MAAM;QACR,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AACrC,CAAC"}
@@ -1,29 +1,33 @@
1
- import { describe, expect, it, vi } from "vitest";
1
+ import { describe, expect, it } from "vitest";
2
2
  import { mergeRequests } from "./mergeRequests.js";
3
+ const owner = "test-owner";
4
+ const repo = "test-repo";
3
5
  describe("mergeRequests", () => {
4
- it("returns both requests when they have different ids", () => {
6
+ it("returns fetch and octokit requests together when both are provided", () => {
5
7
  const first = {
6
- id: "a",
7
- send: vi.fn(),
8
+ endpoint: "POST /repos/{owner}/{repo}/labels",
9
+ parameters: { name: "...", owner, repo },
10
+ type: "octokit",
8
11
  };
9
12
  const second = {
10
- id: "b",
11
- send: vi.fn(),
13
+ type: "fetch",
14
+ url: "https://create.bingo",
12
15
  };
13
16
  const actual = mergeRequests([first], [second]);
14
17
  expect(actual).toEqual([first, second]);
15
18
  });
16
- it("returns only the second request when they have the same id", () => {
19
+ it("returns one merged request when a new request can be merged", () => {
17
20
  const first = {
18
- id: "a",
19
- send: vi.fn(),
21
+ endpoint: "POST /repos/{owner}/{repo}/labels",
22
+ parameters: { name: "...", owner, repo },
23
+ type: "octokit",
20
24
  };
21
25
  const second = {
22
- id: "a",
23
- send: vi.fn(),
26
+ type: "fetch",
27
+ url: "https://create.bingo",
24
28
  };
25
- const actual = mergeRequests([first], [second]);
26
- expect(actual).toEqual([second]);
29
+ const actual = mergeRequests([first, second], [{ ...second, init: { method: "POST" } }]);
30
+ expect(actual).toEqual([{ ...second, init: { method: "POST" } }, first]);
27
31
  });
28
32
  });
29
33
  //# sourceMappingURL=mergeRequests.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeRequests.test.js","sourceRoot":"","sources":["../../src/mergers/mergeRequests.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC7D,MAAM,KAAK,GAAG;YACb,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;SACb,CAAC;QACF,MAAM,MAAM,GAAG;YACd,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACrE,MAAM,KAAK,GAAG;YACb,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;SACb,CAAC;QACF,MAAM,MAAM,GAAG;YACd,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"mergeRequests.test.js","sourceRoot":"","sources":["../../src/mergers/mergeRequests.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,KAAK,GAAG,YAAY,CAAC;AAC3B,MAAM,IAAI,GAAG,WAAW,CAAC;AAEzB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC7E,MAAM,KAAK,GAA0B;YACpC,QAAQ,EAAE,mCAAmC;YAC7C,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;YACxC,IAAI,EAAE,SAAS;SACf,CAAC;QAEF,MAAM,MAAM,GAAwB;YACnC,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,sBAAsB;SAC3B,CAAC;QAEF,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACtE,MAAM,KAAK,GAA0B;YACpC,QAAQ,EAAE,mCAAmC;YAC7C,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;YACxC,IAAI,EAAE,SAAS;SACf,CAAC;QAEF,MAAM,MAAM,GAAwB;YACnC,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,sBAAsB;SAC3B,CAAC;QAEF,MAAM,MAAM,GAAG,aAAa,CAC3B,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CACzC,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"prepareOptions.d.ts","sourceRoot":"","sources":["../../src/preparation/prepareOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAU,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG9D;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB,CAAC,YAAY,SAAS,QAAQ;IACvE,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,CACT,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,KACjD,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,sBAAsB,CAAC,YAAY,SAAS,QAAQ,CACpE,SAAQ,OAAO,CAAC,WAAW,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;IACjD,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,YAAY,SAAS,QAAQ,EACjE,IAAI,EAAE,yBAAyB,CAAC,YAAY,CAAC,EAC7C,QAAQ,GAAE,sBAAsB,CAAC,YAAY,CAAM,GACjD,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CA2BhD"}
1
+ {"version":3,"file":"prepareOptions.d.ts","sourceRoot":"","sources":["../../src/preparation/prepareOptions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAU,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB,CAAC,YAAY,SAAS,QAAQ;IACvE,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,CACT,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,KACjD,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,sBAAsB,CAAC,YAAY,SAAS,QAAQ,CACpE,SAAQ,OAAO,CAAC,WAAW,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;IACjD,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,YAAY,SAAS,QAAQ,EACjE,IAAI,EAAE,yBAAyB,CAAC,YAAY,CAAC,EAC7C,QAAQ,GAAE,sBAAsB,CAAC,YAAY,CAAM,GACjD,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CA2BhD"}
@@ -1,6 +1,6 @@
1
+ import { allPropertiesLazy } from "all-properties-lazy";
1
2
  import { intake } from "bingo-fs";
2
3
  import { createSystemContextWithAuth } from "../contexts/createSystemContextWithAuth.js";
3
- import { awaitLazyProperties } from "../utils/awaitLazyProperties.js";
4
4
  /**
5
5
  * Loads inferred values for any options not explicitly provided in settings,
6
6
  * if the base's prepare exists. Returns the existing settings otherwise.
@@ -20,7 +20,7 @@ export async function prepareOptions(base, settings = {}) {
20
20
  (await intake(directory, {
21
21
  exclude: /node_modules|^\.git$/,
22
22
  }));
23
- return await awaitLazyProperties({
23
+ return await allPropertiesLazy({
24
24
  ...base.prepare({
25
25
  files,
26
26
  log: system.display.log,
@@ -1 +1 @@
1
- {"version":3,"file":"prepareOptions.js","sourceRoot":"","sources":["../../src/preparation/prepareOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,MAAM,UAAU,CAAC;AAIpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAGzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAwBtE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,IAA6C,EAC7C,WAAiD,EAAE;IAEnD,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,GAAG,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC;QAChD,SAAS;QACT,GAAG,QAAQ;KACX,CAAC,CAAC;IAEH,MAAM,KAAK,GACV,QAAQ,CAAC,KAAK;QACb,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE;YACzB,OAAO,EAAE,sBAAsB;SAC/B,CAAC,CAAsB,CAAC;IAE1B,OAAO,MAAM,mBAAmB,CAAC;QAChC,GAAG,IAAI,CAAC,OAAO,CAAC;YACf,KAAK;YACL,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;YACvB,OAAO,EAAE,QAAQ;YACjB,GAAG,MAAM;SACT,CAAC;QACF,GAAG,QAAQ;KACX,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"prepareOptions.js","sourceRoot":"","sources":["../../src/preparation/prepareOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAoB,MAAM,EAAE,MAAM,UAAU,CAAC;AAIpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AA0BzF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,IAA6C,EAC7C,WAAiD,EAAE;IAEnD,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,GAAG,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC;QAChD,SAAS;QACT,GAAG,QAAQ;KACX,CAAC,CAAC;IAEH,MAAM,KAAK,GACV,QAAQ,CAAC,KAAK;QACb,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE;YACzB,OAAO,EAAE,sBAAsB;SAC/B,CAAC,CAAsB,CAAC;IAE1B,OAAO,MAAM,iBAAiB,CAAC;QAC9B,GAAG,IAAI,CAAC,OAAO,CAAC;YACf,KAAK;YACL,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;YACvB,OAAO,EAAE,QAAQ;YACjB,GAAG,MAAM;SACT,CAAC;QACF,GAAG,QAAQ;KACX,CAAC,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { CreatedRequest } from "../types/creations.js";
1
+ import { CreatedRequest } from "bingo-requests";
2
2
  import { SystemContext } from "../types/system.js";
3
- export declare function applyRequestsToSystem(requests: CreatedRequest[], system: Pick<SystemContext, "display" | "fetchers">): Promise<void>;
3
+ export declare function applyRequestsToSystem(requests: CreatedRequest[], system: SystemContext): Promise<void>;
4
4
  //# sourceMappingURL=applyRequestsToSystem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"applyRequestsToSystem.d.ts","sourceRoot":"","sources":["../../src/runners/applyRequestsToSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,wBAAsB,qBAAqB,CAC1C,QAAQ,EAAE,cAAc,EAAE,EAC1B,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,UAAU,CAAC,iBAenD"}
1
+ {"version":3,"file":"applyRequestsToSystem.d.ts","sourceRoot":"","sources":["../../src/runners/applyRequestsToSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,wBAAsB,qBAAqB,CAC1C,QAAQ,EAAE,cAAc,EAAE,EAC1B,MAAM,EAAE,aAAa,iBAsBrB"}
@@ -1,13 +1,19 @@
1
+ import { getRequestSender } from "./getRequestSender.js";
1
2
  export async function applyRequestsToSystem(requests, system) {
2
3
  await Promise.all(requests.map(async (request) => {
3
- system.display.item("request", request.id, { start: Date.now() });
4
+ const sender = getRequestSender(system.fetchers, request);
5
+ if (!sender) {
6
+ return;
7
+ }
8
+ const { id, send } = sender;
9
+ system.display.item("request", id, { start: Date.now() });
4
10
  try {
5
- await request.send(system.fetchers);
11
+ await send();
6
12
  }
7
13
  catch (error) {
8
- system.display.item("request", request.id, { error });
14
+ system.display.item("request", id, { error });
9
15
  }
10
- system.display.item("request", request.id, { end: Date.now() });
16
+ system.display.item("request", id, { end: Date.now() });
11
17
  }));
12
18
  }
13
19
  //# sourceMappingURL=applyRequestsToSystem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"applyRequestsToSystem.js","sourceRoot":"","sources":["../../src/runners/applyRequestsToSystem.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,QAA0B,EAC1B,MAAmD;IAEnD,MAAM,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC;YACJ,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CACF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"applyRequestsToSystem.js","sourceRoot":"","sources":["../../src/runners/applyRequestsToSystem.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,QAA0B,EAC1B,MAAqB;IAErB,MAAM,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO;QACR,CAAC;QAED,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAE5B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE1D,IAAI,CAAC;YACJ,MAAM,IAAI,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CACF,CAAC;AACH,CAAC"}
@@ -1,7 +1,14 @@
1
1
  import { describe, expect, it, vi } from "vitest";
2
2
  import { applyRequestsToSystem } from "./applyRequestsToSystem.js";
3
+ const mockGetRequestSender = vi.fn();
4
+ vi.mock("./getRequestSender.js", () => ({
5
+ get getRequestSender() {
6
+ return mockGetRequestSender;
7
+ },
8
+ }));
3
9
  function createStubSystem() {
4
10
  return {
11
+ directory: "",
5
12
  display: {
6
13
  item: vi.fn(),
7
14
  log: vi.fn(),
@@ -10,17 +17,49 @@ function createStubSystem() {
10
17
  fetch: vi.fn(),
11
18
  octokit: {},
12
19
  },
20
+ fs: {},
21
+ runner: vi.fn(),
13
22
  };
14
23
  }
15
24
  describe("applyRequestsToSystem", () => {
25
+ it("does not do anything when getRequestSender returns undefined", async () => {
26
+ mockGetRequestSender.mockReturnValueOnce(undefined);
27
+ const act = async () => {
28
+ await applyRequestsToSystem([
29
+ {
30
+ type: "fetch",
31
+ url: "https://example.com",
32
+ },
33
+ ], createStubSystem());
34
+ };
35
+ await expect(act()).resolves.toBeUndefined();
36
+ });
37
+ it("does not display an error when a request does not reject", async () => {
38
+ const id = "abc";
39
+ const send = vi.fn();
40
+ const system = createStubSystem();
41
+ mockGetRequestSender.mockReturnValueOnce({ id, send });
42
+ await applyRequestsToSystem([
43
+ {
44
+ type: "fetch",
45
+ url: "https://example.com",
46
+ },
47
+ ], system);
48
+ expect(system.display.item.mock.calls).toEqual([
49
+ ["request", id, { start: expect.any(Number) }],
50
+ ["request", id, { end: expect.any(Number) }],
51
+ ]);
52
+ });
16
53
  it("displays the error when a request rejects", async () => {
17
54
  const error = new Error();
18
55
  const id = "abc";
56
+ const send = vi.fn().mockRejectedValueOnce(error);
19
57
  const system = createStubSystem();
58
+ mockGetRequestSender.mockReturnValueOnce({ id, send });
20
59
  await applyRequestsToSystem([
21
60
  {
22
- id,
23
- send: vi.fn().mockRejectedValueOnce(error),
61
+ type: "fetch",
62
+ url: "https://example.com",
24
63
  },
25
64
  ], system);
26
65
  expect(system.display.item.mock.calls).toEqual([
@@ -1 +1 @@
1
- {"version":3,"file":"applyRequestsToSystem.test.js","sourceRoot":"","sources":["../../src/runners/applyRequestsToSystem.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,SAAS,gBAAgB;IACxB,OAAO;QACN,OAAO,EAAE;YACR,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;YACb,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;SACZ;QACD,QAAQ,EAAE;YACT,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;YACd,OAAO,EAAE,EAAa;SACtB;KACD,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,KAAK,CAAC;QACjB,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,MAAM,qBAAqB,CAC1B;YACC;gBACC,EAAE;gBACF,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC;aAC1C;SACD,EACD,MAAM,CACN,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YAC9C,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;YAC1B,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;SAC5C,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"applyRequestsToSystem.test.js","sourceRoot":"","sources":["../../src/runners/applyRequestsToSystem.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { CreatedRequest } from "bingo-requests";
2
+ import { SystemFetchers } from "bingo-systems";
3
+ export interface RequestSender {
4
+ id: string;
5
+ send: () => Promise<void>;
6
+ }
7
+ export declare function getRequestSender(fetchers: SystemFetchers, request: CreatedRequest): RequestSender | undefined;
8
+ //# sourceMappingURL=getRequestSender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRequestSender.d.ts","sourceRoot":"","sources":["../../src/runners/getRequestSender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,cAAc,GACrB,aAAa,GAAG,SAAS,CA4B3B"}
@@ -0,0 +1,25 @@
1
+ export function getRequestSender(fetchers, request) {
2
+ switch (request.type) {
3
+ case "fetch":
4
+ return {
5
+ id: request.id ?? request.url,
6
+ send: async () => {
7
+ await fetchers.fetch(request.url, request.init);
8
+ },
9
+ };
10
+ case "octokit": {
11
+ const { octokit } = fetchers;
12
+ return (octokit && {
13
+ id: request.id ?? request.endpoint,
14
+ send: async () => {
15
+ await octokit.request(request.endpoint,
16
+ // TODO: I have no idea how to get this to type-check without the any.
17
+ // https://github.com/JoshuaKGoldberg/bingo/issues/286
18
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
19
+ request.parameters);
20
+ },
21
+ });
22
+ }
23
+ }
24
+ }
25
+ //# sourceMappingURL=getRequestSender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRequestSender.js","sourceRoot":"","sources":["../../src/runners/getRequestSender.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,gBAAgB,CAC/B,QAAwB,EACxB,OAAuB;IAEvB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,OAAO;YACX,OAAO;gBACN,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG;gBAC7B,IAAI,EAAE,KAAK,IAAI,EAAE;oBAChB,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBACjD,CAAC;aACD,CAAC;QAEH,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;YAC7B,OAAO,CACN,OAAO,IAAI;gBACV,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ;gBAClC,IAAI,EAAE,KAAK,IAAI,EAAE;oBAChB,MAAM,OAAO,CAAC,OAAO,CACpB,OAAO,CAAC,QAAQ;oBAChB,sEAAsE;oBACtE,sDAAsD;oBACtD,qGAAqG;oBACrG,OAAO,CAAC,UAAiB,CACzB,CAAC;gBACH,CAAC;aACD,CACD,CAAC;QACH,CAAC;IACF,CAAC;AACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getRequestSender.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRequestSender.test.d.ts","sourceRoot":"","sources":["../../src/runners/getRequestSender.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,94 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { getRequestSender } from "./getRequestSender.js";
3
+ function createMockSystemFetchers() {
4
+ return {
5
+ fetch: vi.fn(),
6
+ octokit: { request: vi.fn() },
7
+ };
8
+ }
9
+ const owner = "test-owner";
10
+ const repo = "test-repo";
11
+ describe("getRequestSender", () => {
12
+ it("returns a sender with url for id when given a fetch request without id", () => {
13
+ const request = {
14
+ type: "fetch",
15
+ url: "https://create.bingo",
16
+ };
17
+ const actual = getRequestSender(createMockSystemFetchers(), request);
18
+ expect(actual).toEqual({
19
+ id: request.url,
20
+ send: expect.any(Function),
21
+ });
22
+ });
23
+ it("returns a sender with id for id when given a fetch request with id", () => {
24
+ const request = {
25
+ id: "abc123",
26
+ type: "fetch",
27
+ url: "https://create.bingo",
28
+ };
29
+ const actual = getRequestSender(createMockSystemFetchers(), request);
30
+ expect(actual).toEqual({
31
+ id: request.id,
32
+ send: expect.any(Function),
33
+ });
34
+ });
35
+ it("sends a request with fetchers.request when sending a fetch request", async () => {
36
+ const fetchers = createMockSystemFetchers();
37
+ const request = {
38
+ id: "abc123",
39
+ type: "fetch",
40
+ url: "https://create.bingo",
41
+ };
42
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
43
+ await getRequestSender(fetchers, request).send();
44
+ expect(fetchers.fetch).toHaveBeenCalledWith(request.url, request.init);
45
+ expect(fetchers.octokit.request).not.toHaveBeenCalled();
46
+ });
47
+ it("returns undefined when given an Octokit request and fetchers.octokit is defined", () => {
48
+ const request = {
49
+ endpoint: "POST /repos/{owner}/{repo}/labels",
50
+ parameters: { name: "...", owner, repo },
51
+ type: "octokit",
52
+ };
53
+ const actual = getRequestSender({ fetch: vi.fn(), octokit: undefined }, request);
54
+ expect(actual).toBeUndefined();
55
+ });
56
+ it("returns a sender with url for id when given an Octokit request without id", () => {
57
+ const request = {
58
+ endpoint: "POST /repos/{owner}/{repo}/labels",
59
+ parameters: { name: "...", owner, repo },
60
+ type: "octokit",
61
+ };
62
+ const actual = getRequestSender(createMockSystemFetchers(), request);
63
+ expect(actual).toEqual({
64
+ id: request.endpoint,
65
+ send: expect.any(Function),
66
+ });
67
+ });
68
+ it("returns a sender with id for id when given an Octokit request with id", () => {
69
+ const request = {
70
+ endpoint: "POST /repos/{owner}/{repo}/labels",
71
+ id: "abc123",
72
+ parameters: { name: "...", owner, repo },
73
+ type: "octokit",
74
+ };
75
+ const actual = getRequestSender(createMockSystemFetchers(), request);
76
+ expect(actual).toEqual({
77
+ id: request.id,
78
+ send: expect.any(Function),
79
+ });
80
+ });
81
+ it("sends a request with the Octokit when sending an Octokit request and fetchers.octokit is defined", async () => {
82
+ const fetchers = createMockSystemFetchers();
83
+ const request = {
84
+ endpoint: "POST /repos/{owner}/{repo}/labels",
85
+ parameters: { name: "...", owner, repo },
86
+ type: "octokit",
87
+ };
88
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
89
+ await getRequestSender(fetchers, request).send();
90
+ expect(fetchers.fetch).not.toHaveBeenCalled();
91
+ expect(fetchers.octokit.request).toHaveBeenCalledWith(request.endpoint, request.parameters);
92
+ });
93
+ });
94
+ //# sourceMappingURL=getRequestSender.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRequestSender.test.js","sourceRoot":"","sources":["../../src/runners/getRequestSender.test.ts"],"names":[],"mappings":"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"}