diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 73% rename from .eslintrc.js rename to .eslintrc.cjs index fbb623ee1b..e42653fdf8 100644 --- a/.eslintrc.js +++ b/.eslintrc.cjs @@ -1,9 +1,10 @@ -'use strict' - const { overrides } = require('@netlify/eslint-config-node') module.exports = { extends: ['plugin:fp/recommended', '@netlify/eslint-config-node'], + parserOptions: { + sourceType: 'module', + }, rules: { strict: 2, @@ -54,32 +55,17 @@ module.exports = { ], }, ], + 'import/extensions': [2, 'ignorePackages'], }, overrides: [ ...overrides, - { - files: ['**/tests.{cjs,mjs,js}', '**/tests/**/*.{cjs,mjs,js}'], - rules: { - 'node/no-missing-import': 0, - }, - }, { files: ['**/fixtures/**/*.{cjs,mjs,js}'], rules: { 'import/no-unresolved': 0, + 'node/no-missing-import': 0, }, }, - { - files: ['**/fixtures/**/*edge-handlers*/**/*.js', '**/fixtures/*es_module*/**/*.js'], - parserOptions: { - sourceType: 'module', - }, - rules: { - 'node/no-unsupported-features/es-syntax': 0, - 'ava/no-import-test-files': 0, - }, - }, - // @todo As it stands, this rule is problematic with methods that get+send // many parameters, such as `runStep` in `src/steps/run_step.js`. // We should discuss whether we want to keep this rule or discontinue it. @@ -123,30 +109,5 @@ module.exports = { 'import/no-anonymous-default-export': 0, }, }, - - { - files: ['packages/*/tests/**/*.{cjs,mjs,js}'], - rules: { - 'no-magic-numbers': 'off', - }, - }, - - // Those packages are using pure ES modules - { - files: [ - 'packages/build/**/*.{cjs,mjs,js}', - 'packages/cache-utils/**/*.{cjs,mjs,js}', - 'packages/config/**/*.{cjs,mjs,js}', - 'packages/functions-utils/**/*.{cjs,mjs,js}', - 'packages/git-utils/**/*.{cjs,mjs,js}', - 'packages/run-utils/**/*.{cjs,mjs,js}', - ], - parserOptions: { - sourceType: 'module', - }, - rules: { - 'import/extensions': [2, 'ignorePackages'], - }, - }, ], } diff --git a/commitlint.config.js b/commitlint.config.cjs similarity index 82% rename from commitlint.config.js rename to commitlint.config.cjs index 329a25f070..4fedde6daf 100644 --- a/commitlint.config.js +++ b/commitlint.config.cjs @@ -1,3 +1 @@ -'use strict' - module.exports = { extends: ['@commitlint/config-conventional'] } diff --git a/package.json b/package.json index 537d403edf..5d2f900bed 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "private": true, "version": "0.0.0", "description": "Netlify build module", - "main": "index.js", + "type": "module", "author": "Netlify Inc.", "scripts": { "test": "run-s format test:dev", diff --git a/packages/build/tests/core/tests.mjs b/packages/build/tests/core/tests.mjs index ccb9fadba3..928893e223 100644 --- a/packages/build/tests/core/tests.mjs +++ b/packages/build/tests/core/tests.mjs @@ -226,7 +226,8 @@ const getNodeBinary = async function (nodeVersion, retries = 1) { const MAX_RETRIES = 10 // Memoize `get-node` -const mGetNode = moize(getNodeBinary, { isPromise: true, maxSize: 1e3 }) +const GET_NODE_MOIZE_MAX_SIZE = 1e3 +const mGetNode = moize(getNodeBinary, { isPromise: true, maxSize: GET_NODE_MOIZE_MAX_SIZE }) test('--node-path is used by build.command', async (t) => { const { path } = await mGetNode(CHILD_NODE_VERSION) @@ -357,7 +358,7 @@ test.serial('Passes the right base path properties to zip-it-and-ship-it', async t.is(repositoryRoot, fixtureDir) }) -// eslint-disable-next-line max-statements +/* eslint-disable max-statements, no-magic-numbers */ test.serial('Passes the right feature flags to zip-it-and-ship-it', async (t) => { // eslint-disable-next-line import/no-named-as-default-member const mockZipFunctions = sinon.stub().resolves() @@ -417,6 +418,7 @@ test.serial('Passes the right feature flags to zip-it-and-ship-it', async (t) => t.true(mockZipFunctions.getCall(7).args[2].featureFlags.this_is_a_mock_flag) t.true(mockZipFunctions.getCall(7).args[2].featureFlags.and_another_one) }) +/* eslint-enable max-statements, no-magic-numbers */ test('Print warning on lingering processes', async (t) => { const { returnValue } = await runFixture(t, 'lingering', { diff --git a/packages/build/tests/edge_handlers/fixtures/simple/netlify/edge-handlers/test.js b/packages/build/tests/edge_handlers/fixtures/simple/netlify/edge-handlers/test.js index 886501571b..73dea48bf0 100644 --- a/packages/build/tests/edge_handlers/fixtures/simple/netlify/edge-handlers/test.js +++ b/packages/build/tests/edge_handlers/fixtures/simple/netlify/edge-handlers/test.js @@ -1,5 +1,6 @@ import isPlainObj from 'is-plain-obj' +// eslint-disable-next-line ava/no-import-test-files import data from './data.json' export const onRequest = function (event) { diff --git a/packages/build/tests/plugins/fixtures/commonjs_local/netlify.toml b/packages/build/tests/plugins/fixtures/commonjs_local/netlify.toml index 81b0ce8bb1..384ddc321e 100644 --- a/packages/build/tests/plugins/fixtures/commonjs_local/netlify.toml +++ b/packages/build/tests/plugins/fixtures/commonjs_local/netlify.toml @@ -1,2 +1,2 @@ [[plugins]] -package = "./plugin" +package = "./plugin.cjs" diff --git a/packages/build/tests/plugins/fixtures/commonjs_local/plugin.js b/packages/build/tests/plugins/fixtures/commonjs_local/plugin.cjs similarity index 100% rename from packages/build/tests/plugins/fixtures/commonjs_local/plugin.js rename to packages/build/tests/plugins/fixtures/commonjs_local/plugin.cjs diff --git a/packages/build/tests/plugins/fixtures/ts_transpile_already/netlify.toml b/packages/build/tests/plugins/fixtures/ts_transpile_already/netlify.toml index 81b0ce8bb1..384ddc321e 100644 --- a/packages/build/tests/plugins/fixtures/ts_transpile_already/netlify.toml +++ b/packages/build/tests/plugins/fixtures/ts_transpile_already/netlify.toml @@ -1,2 +1,2 @@ [[plugins]] -package = "./plugin" +package = "./plugin.cjs" diff --git a/packages/build/tests/plugins/fixtures/ts_transpile_already/plugin.js b/packages/build/tests/plugins/fixtures/ts_transpile_already/plugin.cjs similarity index 100% rename from packages/build/tests/plugins/fixtures/ts_transpile_already/plugin.js rename to packages/build/tests/plugins/fixtures/ts_transpile_already/plugin.cjs diff --git a/packages/build/tests/plugins/snapshots/tests.mjs.md b/packages/build/tests/plugins/snapshots/tests.mjs.md index b19873f655..2c4d2352ab 100644 --- a/packages/build/tests/plugins/snapshots/tests.mjs.md +++ b/packages/build/tests/plugins/snapshots/tests.mjs.md @@ -252,21 +252,21 @@ Generated by [AVA](https://avajs.dev). plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin␊ + package: ./plugin.cjs␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ + - ./plugin.cjs@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. ./plugin (onPreBuild event) ␊ + 1. ./plugin.cjs (onPreBuild event) ␊ ────────────────────────────────────────────────────────────────␊ ␊ true␊ ␊ - (./plugin onPreBuild completed in 1ms)␊ + (./plugin.cjs onPreBuild completed in 1ms)␊ ␊ ────────────────────────────────────────────────────────────────␊ Netlify Build Complete ␊ @@ -2564,21 +2564,21 @@ Generated by [AVA](https://avajs.dev). plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin␊ + package: ./plugin.cjs␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ + - ./plugin.cjs@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. ./plugin (onPreBuild event) ␊ + 1. ./plugin.cjs (onPreBuild event) ␊ ────────────────────────────────────────────────────────────────␊ ␊ JavaScript␊ ␊ - (./plugin onPreBuild completed in 1ms)␊ + (./plugin.cjs onPreBuild completed in 1ms)␊ ␊ ────────────────────────────────────────────────────────────────␊ Netlify Build Complete ␊ diff --git a/packages/build/tests/plugins/snapshots/tests.mjs.snap b/packages/build/tests/plugins/snapshots/tests.mjs.snap index 6d96162640..f1afda93a5 100644 Binary files a/packages/build/tests/plugins/snapshots/tests.mjs.snap and b/packages/build/tests/plugins/snapshots/tests.mjs.snap differ diff --git a/packages/build/tests/telemetry/tests.mjs b/packages/build/tests/telemetry/tests.mjs index f8545236b1..e521e4763c 100644 --- a/packages/build/tests/telemetry/tests.mjs +++ b/packages/build/tests/telemetry/tests.mjs @@ -222,9 +222,11 @@ test('Telemetry calls timeout by default', async (t) => { // We want to rely on the default timeout value disableTelemetryTimeout: false, // Introduce an arbitrary large timeout on the server side so that we can validate the client timeout works - waitTelemetryServer: 5 * 60 * 1000, + waitTelemetryServer: WAIT_TELEMETRY_SERVER, // The error monitor snapshot should contain the timeout error snapshot: true, }) t.is(telemetryRequests.length, 0) }) + +const WAIT_TELEMETRY_SERVER = 3e5