diff --git a/packages/core/signal.mjs b/packages/core/signal.mjs index ca20a8a2..aef1af92 100644 --- a/packages/core/signal.mjs +++ b/packages/core/signal.mjs @@ -649,7 +649,7 @@ export const always = register('always', function (func, pat) { * @memberof Pattern * @returns Pattern * @example - * * s("bd(5,8)").onKey("Control:j", x => x.segment(16).color("red")).onKey("Control:i", x => x.fast(2).color("blue")) + * s("bd(5,8)").onKey("Control:j", x => x.segment(16).color("red")).onKey("Control:i", x => x.fast(2).color("blue")) */ export const onKey = register('onKey', function (input, func, pat) { diff --git a/packages/core/util.mjs b/packages/core/util.mjs index 7d3e55e9..53a017c5 100644 --- a/packages/core/util.mjs +++ b/packages/core/util.mjs @@ -438,6 +438,9 @@ let keyState; export function getCurrentKeyboardState() { if (keyState == null) { + if (typeof window === 'undefined') { + return; + } keyState = {}; // Listen for the keydown event to mark the key as pressed window.addEventListener('keydown', (event) => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 12113c61..6cb259a9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -331,6 +331,19 @@ importers: specifier: ^2.1.3 version: 2.1.3(@types/node@22.7.6)(@vitest/ui@2.1.3)(terser@5.36.0) + packages/mqtt: + dependencies: + '@strudel/core': + specifier: workspace:* + version: link:../core + paho-mqtt: + specifier: ^1.1.0 + version: 1.1.0 + devDependencies: + vite: + specifier: ^5.0.10 + version: 5.4.9(@types/node@22.7.6)(terser@5.36.0) + packages/osc: dependencies: '@strudel/core': @@ -623,6 +636,9 @@ importers: '@strudel/mini': specifier: workspace:* version: link:../packages/mini + '@strudel/mqtt': + specifier: workspace:* + version: link:../packages/mqtt '@strudel/osc': specifier: workspace:* version: link:../packages/osc @@ -5991,6 +6007,9 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} hasBin: true + paho-mqtt@1.1.0: + resolution: {integrity: sha512-KPbL9KAB0ASvhSDbOrZBaccXS+/s7/LIofbPyERww8hM5Ko71GUJQ6Nmg0BWqj8phAIT8zdf/Sd/RftHU9i2HA==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -7740,6 +7759,7 @@ packages: workbox-google-analytics@7.0.0: resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} + deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained workbox-navigation-preload@7.0.0: resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} @@ -14686,6 +14706,8 @@ snapshots: - bluebird - supports-color + paho-mqtt@1.1.0: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -16979,4 +17001,4 @@ snapshots: zod@3.23.8: {} - zwitch@2.0.4: {} \ No newline at end of file + zwitch@2.0.4: {} diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index 7c21d464..33529ac8 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -4902,6 +4902,8 @@ exports[`runs examples > example "often" example index 0 1`] = ` ] `; +exports[`runs examples > example "onKey" example index 0 1`] = `[]`; + exports[`runs examples > example "orbit" example index 0 1`] = ` [ "[ 0/1 → 1/6 | s:hh delay:0.5 delaytime:0.25 orbit:1 ]",