From 2f6e3550462dbc1ba9640f4916e62e0c03407879 Mon Sep 17 00:00:00 2001 From: Vitalii Rybachenko Date: Tue, 18 Feb 2025 19:42:21 -0500 Subject: [PATCH] fix: pass config object to devCommand step handler --- packages/build/src/steps/get.ts | 6 ++++-- .../fixtures/dev_and_build/plugin.js | 3 ++- .../plugins_events/snapshots/tests.js.md | 2 ++ .../plugins_events/snapshots/tests.js.snap | Bin 2549 -> 2611 bytes packages/build/tests/plugins_events/tests.js | 14 ++++++++++++++ 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/packages/build/src/steps/get.ts b/packages/build/src/steps/get.ts index 00fb23acda..2f4a910763 100644 --- a/packages/build/src/steps/get.ts +++ b/packages/build/src/steps/get.ts @@ -28,8 +28,10 @@ export const getSteps = function (steps, eventHandlers?: any[]) { export const getDevSteps = function (command, steps, eventHandlers?: any[]) { const devCommandStep = { event: 'onDev', - coreStep: async () => { - await command() + coreStep: async (args) => { + const { constants, event } = args + const utils = getUtils({ event, constants, runState: {} }) + await command({ utils, ...args }) return {} }, diff --git a/packages/build/tests/plugins_events/fixtures/dev_and_build/plugin.js b/packages/build/tests/plugins_events/fixtures/dev_and_build/plugin.js index 3c2080e1be..f50b7381e7 100644 --- a/packages/build/tests/plugins_events/fixtures/dev_and_build/plugin.js +++ b/packages/build/tests/plugins_events/fixtures/dev_and_build/plugin.js @@ -1,5 +1,6 @@ -export const onPreDev = function ({ constants }) { +export const onPreDev = function ({ constants, netlifyConfig }) { console.log('onPreDev:', constants) + netlifyConfig.build.environment.TEST_ASSIGN = 'true'; } export const onDev = function ({ constants }) { diff --git a/packages/build/tests/plugins_events/snapshots/tests.js.md b/packages/build/tests/plugins_events/snapshots/tests.js.md index 9ae25ba585..3f0c2d1161 100644 --- a/packages/build/tests/plugins_events/snapshots/tests.js.md +++ b/packages/build/tests/plugins_events/snapshots/tests.js.md @@ -1518,6 +1518,7 @@ Generated by [AVA](https://avajs.dev). INTERNAL_EDGE_FUNCTIONS_SRC: '.netlify/edge-functions',␊ PUBLISH_DIR: '.'␊ }␊ + Netlify configuration property "build.environment.TEST_ASSIGN" value changed.␊ ␊ (./plugin.js onPreDev completed in 1ms)␊ ␊ @@ -1555,6 +1556,7 @@ Generated by [AVA](https://avajs.dev). INTERNAL_EDGE_FUNCTIONS_SRC: '.netlify/edge-functions',␊ PUBLISH_DIR: '.'␊ }␊ + Netlify configuration property "build.environment.TEST_ASSIGN" value changed.␊ onDev: {␊ CONFIG_PATH: 'netlify.toml',␊ FUNCTIONS_DIST: '.netlify/functions/',␊ diff --git a/packages/build/tests/plugins_events/snapshots/tests.js.snap b/packages/build/tests/plugins_events/snapshots/tests.js.snap index 4c60121ec827b8703072155996ac0b1c5d1df513..5871cce9ef0a987e37899a3ea5cbbe125f458226 100644 GIT binary patch literal 2611 zcmV-33e5FERzVe28}KAh$md-{F_} zF*Y8R{2z-500000000B+T|sXfxfM<~Zk!CdZ5KThC{WxvBdnwS{0!51 zFsJ_c38lOSBfIy;b`g`ks~j=Ts&cPb7mX3&tlGzKdEg^fjkc&u-&g=))1wh*H7gWq z)TMP;7DX(H9vzN6#E}D-z|$dn zWXaDNMMPDwkK#kJ%;tFx7WntJqnjiBbCDuFr0 zdwHjr6ggL{8bh`}H38DdZ{F(8!dN)Do_Er%e;!SW;t6UnYF zQ8*S&U~8)J7GT1WPizm6?^D0r#tG06iyR`xY!}6U*I>dR03sndh}+l;rF$IjPxPAJ zCWx(l@>Ci*z{$j#o3tBO(Y>D;I%mEqx|H1ys7 zsRDi9zi*(gVCW0?t1BC6iGS1cTMh_LjhH7As)8;V9EOWS^O$c54A#J*Zg5zHX&DFm z79H%L&qXzQHt8WxjFiPSHWKmo4Z}4G<{EOtx}uAgWJ8(Ya@fZ7ka^OLgsfMWZ$u}B zSPpXF^jwL7u7T0Qgjmcz9(%U*yx=t8;7}w_OUCI)YE;JcW%=PPfoYo(7rb4{7wHKmF4&US4l_m|~#ZlmRC>)sl_HZL2vO~3ZT32~EZnB~>Z z%qP3|N+E17%(Zb*giRoUZWqRrN!^U7#lz%5(x&8S2-=Fib0ug7oNf`EK1hSpeECfG zf1m)<9doH$EHG)9&7@3h832`ECR0MDr2#5wJTU`-T0x-65-Y$6 z@+rg04p>}~A9n9!g|4k!San0yDoed3MFSuo}Y45_0S=2Fll4U1=CGk=ogAYJ@N4bW_F0n!2gES(MR! z6Qo&J?T^CqPO;WdP40@*rbCPm&8^GWb$WpE+{}}5=Cx(JJJL!xg&;w<;uWvKI~%_wv!Q1 zJ4FyMX)Fwlk#BqP_oms{yN?t$_LFxF8!MEJMH{9e8H;DO3@#Rpl^+$m5Nj?>?3x1% zY~pyx?^1%6FbY4Tx5WyhhU$FhZ7t_DPiRpce?EXO!2z_S&|*rPRs!EM;)_W&C=TS; z`4~xlvX~oG0<)Yh*h+|EVIODC{>ITUk!H>Oob^2dW0&h^7cLiZ7WiG0zbT&9pUv-@ z6y|9WN4r8lIi(x=R$`D`oT^xYCa%4r?;?N4Bs@0fmUKyE-5_a6hjO@HR6L`jNt(aa zr1{H1e`byU=KmDX|F;4CB0*or3jd2~-5mULtnQzdW@$)(0j664CKJOjF$`T|7HN4l;M}ASiDHeAh19?&LC%XbJ8Hj$%{3_qFi0tu=W+v zIsPL##axWj(xO9rE3W^=VHw@_`(9HA06&DUv!Um zI|nt`o)*^jV+&yaw)F!d_JdVL!^Yl=Mt62=O(q+fN zjLUxY-TFbJyVpFKZr!tc10)_d+uhbteYYijuJDt?MyJ)>|E&A`WwW){ebqQ=H;)c$ zur0QHd%DH$akG1HB<5j{a6EVjE^_F@PUGZow>35E_DMZ+i90caP&+2poan7CS@b-9 z`MlL^AH>Vuw!Tco@Fp6WW=5t)J6f~RTpcxcUbQ`@j4zaOWMsZm=U)iyi&XR^?)%0i0+EBhw_VIqE_235k` zGEqz|o`^w`0T&02FA2BYe@6+o{KurFn{dnW!YzAfJU0fFKy%_X8w}C`gW`ishOndC zrBK;N$mi#i{Dz1^GJ7Gwuco&*brtL&N3 VQ$53ckZaoa{{gm=fe5(6005GF0d)WX literal 2549 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 { + const devCommand = sinon.stub().resolves() + + await new Fixture('./fixtures/dev_and_build') + .withFlags({ debug: false, quiet: true, timeline: 'dev' }) + .runDev(devCommand) + + t.is(devCommand.callCount, 1) + t.truthy(devCommand.lastCall.args[0]) + t.truthy(devCommand.lastCall.args[0].netlifyConfig) + t.truthy(devCommand.lastCall.args[0].childEnv.TEST_ASSIGN) + console.log(devCommand.lastCall.args[0].childEnv) +})