From b3b9d40293148aa23433d7c995ae677369db51c1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 12:34:14 -0600 Subject: [PATCH] [Backport 8.x] Fix ECMAScript import (#2476) Co-authored-by: Josh Mock --- .github/workflows/nodejs.yml | 10 +++++++++- package.json | 5 ++++- test/esm/package.json | 7 +++++++ test/esm/test-import.mjs | 28 ++++++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 test/esm/package.json create mode 100644 test/esm/test-import.mjs diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index e984adb53..85f8131d3 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -32,7 +32,7 @@ jobs: strategy: fail-fast: false matrix: - node-version: [18.x, 20.x, 22.x] + node-version: [18.x, 20.x, 22.x, 23.x] os: [ubuntu-latest, windows-latest, macOS-latest] steps: @@ -57,6 +57,10 @@ jobs: run: | npm run test:unit + - name: ECMAScript module test + run: | + npm run test:esm + license: name: License check runs-on: ubuntu-latest @@ -110,3 +114,7 @@ jobs: - name: Unit test run: | bun run test:unit-bun + + - name: ECMAScript module test + run: | + bun run test:esm diff --git a/package.json b/package.json index 7d985cde4..77f624137 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,15 @@ "main": "./index.js", "types": "index.d.ts", "exports": { - "require": "./index.js" + "require": "./index.js", + "import": "./index.js", + "types": "./index.d.ts" }, "scripts": { "test": "npm run build && npm run lint && tap", "test:unit": "npm run build && tap", "test:unit-bun": "bun run build && bunx tap", + "test:esm": "npm run build && cd test/esm/ && npm install && node test-import.mjs", "test:coverage-100": "npm run build && tap --coverage --100", "test:coverage-report": "npm run build && tap --coverage && nyc report --reporter=text-lcov > coverage.lcov", "test:coverage-ui": "npm run build && tap --coverage --coverage-report=html", diff --git a/test/esm/package.json b/test/esm/package.json new file mode 100644 index 000000000..5209563e8 --- /dev/null +++ b/test/esm/package.json @@ -0,0 +1,7 @@ +{ + "name": "esm", + "version": "1.0.0", + "dependencies": { + "@elastic/elasticsearch": "file:../.." + } +} diff --git a/test/esm/test-import.mjs b/test/esm/test-import.mjs new file mode 100644 index 000000000..f7a6f09e6 --- /dev/null +++ b/test/esm/test-import.mjs @@ -0,0 +1,28 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { Client } from '@elastic/elasticsearch' + +new Client({ + node: 'http://localhost:9200', + auth: { + username: 'elastic', + password: 'changeme', + } +})