@pikku/cli 0.12.112 → 0.12.113

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 (126) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/.pikku/addon/index.d.ts +1 -1
  3. package/dist/.pikku/addon/index.js +1 -1
  4. package/dist/.pikku/addon/pikku-addon-types.gen.d.ts +1 -1
  5. package/dist/.pikku/addon/pikku-addon-types.gen.js +1 -1
  6. package/dist/.pikku/agent/index.d.ts +1 -1
  7. package/dist/.pikku/agent/index.js +1 -1
  8. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
  9. package/dist/.pikku/agent/pikku-model-aliases.gen.js +1 -1
  10. package/dist/.pikku/auth/index.d.ts +1 -1
  11. package/dist/.pikku/auth/index.js +1 -1
  12. package/dist/.pikku/auth/pikku-auth-types.gen.d.ts +1 -1
  13. package/dist/.pikku/auth/pikku-auth-types.gen.js +1 -1
  14. package/dist/.pikku/channel/index.d.ts +1 -1
  15. package/dist/.pikku/channel/index.js +1 -1
  16. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  17. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  18. package/dist/.pikku/cli/index.d.ts +1 -1
  19. package/dist/.pikku/cli/index.js +1 -1
  20. package/dist/.pikku/cli/pikku-cli-channel.js +1 -1
  21. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  22. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  23. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
  24. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
  25. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  26. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  27. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  28. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  29. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  30. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  31. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  32. package/dist/.pikku/error/index.d.ts +1 -1
  33. package/dist/.pikku/error/index.js +1 -1
  34. package/dist/.pikku/error/pikku-error-types.gen.d.ts +1 -1
  35. package/dist/.pikku/error/pikku-error-types.gen.js +1 -1
  36. package/dist/.pikku/function/index.d.ts +1 -1
  37. package/dist/.pikku/function/index.js +1 -1
  38. package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
  39. package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
  40. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  41. package/dist/.pikku/function/pikku-functions-meta.gen.json +2 -2
  42. package/dist/.pikku/function/pikku-functions.gen.js +1 -1
  43. package/dist/.pikku/gateway/index.d.ts +1 -1
  44. package/dist/.pikku/gateway/index.js +1 -1
  45. package/dist/.pikku/gateway/pikku-gateway-types.gen.d.ts +1 -1
  46. package/dist/.pikku/gateway/pikku-gateway-types.gen.js +1 -1
  47. package/dist/.pikku/http/index.d.ts +1 -1
  48. package/dist/.pikku/http/index.js +1 -1
  49. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  50. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  51. package/dist/.pikku/mcp/index.d.ts +1 -1
  52. package/dist/.pikku/mcp/index.js +1 -1
  53. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  54. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  55. package/dist/.pikku/middleware/index.d.ts +1 -1
  56. package/dist/.pikku/middleware/index.js +1 -1
  57. package/dist/.pikku/middleware/pikku-middleware-types.gen.d.ts +1 -1
  58. package/dist/.pikku/middleware/pikku-middleware-types.gen.js +1 -1
  59. package/dist/.pikku/pikku-bootstrap-scenarios.gen.d.ts +1 -1
  60. package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +1 -1
  61. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
  62. package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
  63. package/dist/.pikku/pikku-services.gen.d.ts +1 -1
  64. package/dist/.pikku/queue/index.d.ts +1 -1
  65. package/dist/.pikku/queue/index.js +1 -1
  66. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  67. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  68. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
  69. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  70. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  71. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  72. package/dist/.pikku/scenarios/index.d.ts +1 -1
  73. package/dist/.pikku/scenarios/index.js +1 -1
  74. package/dist/.pikku/scenarios/pikku-personas.gen.js +1 -1
  75. package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +1 -1
  76. package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
  77. package/dist/.pikku/scenarios/pikku-scenario-types.gen.d.ts +1 -1
  78. package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +1 -1
  79. package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
  80. package/dist/.pikku/scenarios/schemas/register.gen.d.ts +1 -1
  81. package/dist/.pikku/scenarios/schemas/register.gen.js +1 -1
  82. package/dist/.pikku/scheduler/index.d.ts +1 -1
  83. package/dist/.pikku/scheduler/index.js +1 -1
  84. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  85. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  86. package/dist/.pikku/schemas/register.gen.js +1 -1
  87. package/dist/.pikku/scopes/index.d.ts +1 -1
  88. package/dist/.pikku/scopes/index.js +1 -1
  89. package/dist/.pikku/scopes/pikku-personas.gen.js +1 -1
  90. package/dist/.pikku/scopes/pikku-roles.gen.d.ts +1 -1
  91. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
  92. package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
  93. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
  94. package/dist/.pikku/secrets/index.d.ts +1 -1
  95. package/dist/.pikku/secrets/index.js +1 -1
  96. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  97. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  98. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  99. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  100. package/dist/.pikku/services/pikku-meta-service.gen.d.ts +1 -1
  101. package/dist/.pikku/services/pikku-meta-service.gen.js +1 -1
  102. package/dist/.pikku/setup/index.d.ts +1 -1
  103. package/dist/.pikku/setup/index.js +1 -1
  104. package/dist/.pikku/setup/pikku-setup-types.gen.d.ts +1 -1
  105. package/dist/.pikku/setup/pikku-setup-types.gen.js +1 -1
  106. package/dist/.pikku/trigger/index.d.ts +1 -1
  107. package/dist/.pikku/trigger/index.js +1 -1
  108. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  109. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  110. package/dist/.pikku/variables/index.d.ts +1 -1
  111. package/dist/.pikku/variables/index.js +1 -1
  112. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  113. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  114. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  115. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  116. package/dist/.pikku/workflow/index.d.ts +1 -1
  117. package/dist/.pikku/workflow/index.js +1 -1
  118. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
  119. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  120. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  121. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  122. package/dist/bin/pikku-bin.mjs +2 -2
  123. package/dist/src/functions/commands/dev.js +72 -62
  124. package/dist/src/functions/commands/watch.js +56 -37
  125. package/package.json +1 -1
  126. package/surface.json +1 -1
@@ -13,48 +13,67 @@ export const watch = pikkuSessionlessFunc({
13
13
  logger,
14
14
  });
15
15
  }
16
- const configWatcher = chokidar.watch(watchDirectories, {
16
+ const watcher = chokidar.watch(watchDirectories, {
17
17
  ignoreInitial: true,
18
18
  ignored: /.*\.gen\.tsx?/,
19
19
  });
20
- let watcher = new chokidar.FSWatcher({});
21
- const generatorWatcher = () => {
22
- watcher.close();
23
- logger.info(`• Watching directories: \n - ${watchDirectories.join('\n - ')}`);
24
- watcher = chokidar.watch(watchDirectories, {
25
- ignoreInitial: true,
26
- ignored: /.*\.gen\.ts/,
27
- });
28
- watcher.on('ready', async () => {
29
- const handle = async () => {
20
+ logger.info(`• Watching directories: \n - ${watchDirectories.join('\n - ')}`);
21
+ watcher.on('ready', async () => {
22
+ const handle = async () => {
23
+ try {
24
+ const start = Date.now();
25
+ invalidateInspectorState();
26
+ await rpc.invoke('all');
27
+ logger.info({
28
+ message: `✓ Generated in ${Date.now() - start}ms`,
29
+ type: 'timing',
30
+ });
31
+ }
32
+ catch (err) {
33
+ console.error(err);
34
+ logger.error('Error running watch');
35
+ }
36
+ };
37
+ // A codegen pass holds a whole ts.Program, so two overlapping passes double
38
+ // the peak RSS. Coalesce instead: changes arriving mid-pass schedule exactly
39
+ // one more run after it.
40
+ let inFlight;
41
+ let queued = false;
42
+ const runHandle = async () => {
43
+ if (inFlight) {
44
+ queued = true;
45
+ return;
46
+ }
47
+ do {
48
+ queued = false;
49
+ inFlight = handle();
30
50
  try {
31
- const start = Date.now();
32
- invalidateInspectorState();
33
- await rpc.invoke('all');
34
- logger.info({
35
- message: `✓ Generated in ${Date.now() - start}ms`,
36
- type: 'timing',
37
- });
38
- }
39
- catch (err) {
40
- console.error(err);
41
- logger.error('Error running watch');
51
+ await inFlight;
42
52
  }
43
- };
44
- await handle();
45
- let timeout;
46
- const deduped = (_file) => {
47
- if (timeout) {
48
- clearTimeout(timeout);
53
+ finally {
54
+ inFlight = undefined;
49
55
  }
50
- timeout = setTimeout(handle, 1000);
51
- };
52
- watcher.on('change', deduped);
53
- watcher.on('add', deduped);
54
- watcher.on('unlink', deduped);
55
- });
56
- };
57
- configWatcher.on('ready', generatorWatcher);
58
- configWatcher.on('change', generatorWatcher);
56
+ } while (queued);
57
+ };
58
+ await runHandle();
59
+ let timeout;
60
+ const deduped = (_file) => {
61
+ if (timeout) {
62
+ clearTimeout(timeout);
63
+ }
64
+ timeout = setTimeout(runHandle, 1000);
65
+ };
66
+ watcher.on('change', deduped);
67
+ watcher.on('add', deduped);
68
+ watcher.on('unlink', deduped);
69
+ });
70
+ process.once('SIGINT', async () => {
71
+ await watcher.close();
72
+ process.exit(0);
73
+ });
74
+ // Without this the command returns the moment the handlers are registered and
75
+ // the process exits, taking the watcher with it — chokidar's `ready` never
76
+ // fires, so `pikku watch` regenerated nothing at all.
77
+ await new Promise(() => { });
59
78
  },
60
79
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pikku/cli",
3
- "version": "0.12.112",
3
+ "version": "0.12.113",
4
4
  "description": "Pikku CLI — code generation, dev server, migrations and deployment",
5
5
  "author": "yasser.fadl@gmail.com",
6
6
  "license": "BUSL-1.1",
package/surface.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.12.112",
2
+ "version": "0.12.113",
3
3
  "entryPoints": [
4
4
  {
5
5
  "id": "app",