From 650e848b21516562b1647b3f27a394d7968d0acd Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 6 Dec 2022 03:31:13 +0000 Subject: [PATCH 001/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 56ccffb..94c2771 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.0.x" + "@stdlib/types": "^0.0.x", + "@stdlib/error-tools-fmtprodmsg": "^0.0.x" }, "devDependencies": { "@stdlib/array-dtype": "^0.0.x", @@ -82,4 +83,4 @@ "type": "patreon", "url": "https://www.patreon.com/athan" } -} +} \ No newline at end of file From 678c0805b65d6ae578a4d60ad27ed7e793f39837 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 6 Dec 2022 03:50:15 +0000 Subject: [PATCH 002/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 62 - .github/workflows/cancel.yml | 56 - .github/workflows/close_pull_requests.yml | 44 - .github/workflows/examples.yml | 62 - .github/workflows/npm_downloads.yml | 108 - .github/workflows/productionize.yml | 781 ---- .github/workflows/publish.yml | 117 - .github/workflows/test.yml | 92 - .github/workflows/test_bundles.yml | 180 - .github/workflows/test_coverage.yml | 123 - .github/workflows/test_install.yml | 83 - .gitignore | 183 - .npmignore | 227 -- .npmrc | 28 - CHANGELOG.md | 5 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 58 +- benchmark/benchmark.js | 301 -- branches.md | 53 - browser.js | 3 + browser.js.map | 1 + docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4044 +++++++++++++++++++++ stats_node.html | 4044 +++++++++++++++++++++ test/test.js | 101 - 39 files changed, 8136 insertions(+), 4529 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 0fd4d6c..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 06a9a75..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index a00dbe5..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,56 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - uses: styfle/cancel-workflow-action@0.11.0 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 0c43018..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,44 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - run: - runs-on: ubuntu-latest - steps: - - uses: superbrothers/close-pull-request@v3 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 7902a7d..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout the repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 4e8a39d..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,108 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - uses: actions/upload-artifact@v3 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - uses: distributhor/workflow-webhook@v3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 37ddb4f..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,781 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - uses: actions/checkout@v3 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Format error messages: - - name: 'Replace double quotes with single quotes in rewritten format string error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\( \"([a-zA-Z0-9]+)\"/Error\( format\( '\1'/g" {} \; - - # Format string literal error messages: - - name: 'Replace double quotes with single quotes in rewritten string literal error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\(\"([a-zA-Z0-9]+)\"\)/Error\( format\( '\1' \)/g" {} \; - - # Format code: - - name: 'Replace double quotes with single quotes in inserted `require` calls' - run: | - find . -name "*.js" -exec sed -E -i "s/require\( ?\"@stdlib\/error-tools-fmtprodmsg\" ?\);/require\( '@stdlib\/error-tools-fmtprodmsg' \);/g" {} \; - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\"/\"@stdlib\/error-tools-fmtprodmsg\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^0.0.x'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - uses: act10ns/slack@v1 - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -104,10 +112,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -235,7 +253,7 @@ Copyright © 2016-2022. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib +[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 7035d31..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..2e1dd60 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2022 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index d13fb63..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 2.0 - -/// - -import { Collection } from '@stdlib/types/object'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => any; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => any; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 40e1a67..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType any - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType any -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..5b24297 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2022 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 94c2771..bd57a84 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.0.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.0.x", - "@stdlib/error-tools-fmtprodmsg": "^0.0.x" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.0.x", - "@stdlib/array-dtypes": "^0.0.x", - "@stdlib/array-filled": "^0.0.x", - "@stdlib/array-filled-by": "^0.0.x", - "@stdlib/array-typed-real-dtypes": "^0.0.x", - "@stdlib/assert-is-function": "^0.0.x", - "@stdlib/bench": "^0.0.x", - "@stdlib/math-base-assert-is-nan": "^0.0.x", - "@stdlib/random-base-discrete-uniform": "^0.0.x", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "2.x.x" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "patreon", "url": "https://www.patreon.com/athan" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..8fe602d --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4044 @@ + + + + + + + + RollUp Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..c06a5ac --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4044 @@ + + + + + + + + RollUp Visualizer + + + +
+ + + + + diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From c225c1d12c991f3d97d85f1afd980d0284d98bd7 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Wed, 1 Feb 2023 04:08:40 +0000 Subject: [PATCH 003/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2f82e90..cdf220e 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.0.x" + "@stdlib/types": "^0.0.x", + "@stdlib/error-tools-fmtprodmsg": "^0.0.x" }, "devDependencies": { "@stdlib/array-dtype": "^0.0.x", @@ -82,4 +83,4 @@ "type": "patreon", "url": "https://www.patreon.com/athan" } -} +} \ No newline at end of file From 1ef7309844cf71a5bf83e4e7b6f54444ffa63e57 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Wed, 1 Feb 2023 15:45:14 +0000 Subject: [PATCH 004/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4044 -------------------------------------------- stats_node.html | 4044 -------------------------------------------- 6 files changed, 8096 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 2e1dd60..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2022 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 5b24297..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2022 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 8fe602d..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4044 +0,0 @@ - - - - - - - - RollUp Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index c06a5ac..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4044 +0,0 @@ - - - - - - - - RollUp Visualizer - - - -
- - - - - From d91315d6aaf6efc0a16bfa50c0bb87d8f2af6ce9 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Wed, 1 Feb 2023 15:46:09 +0000 Subject: [PATCH 005/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 62 - .github/workflows/cancel.yml | 56 - .github/workflows/close_pull_requests.yml | 44 - .github/workflows/examples.yml | 62 - .github/workflows/npm_downloads.yml | 108 - .github/workflows/productionize.yml | 791 --- .github/workflows/publish.yml | 117 - .github/workflows/test.yml | 92 - .github/workflows/test_bundles.yml | 180 - .github/workflows/test_coverage.yml | 123 - .github/workflows/test_install.yml | 83 - .gitignore | 184 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/test.js | 101 - 40 files changed, 12402 insertions(+), 4541 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 0fd4d6c..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index b3aa764..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2023-02-01T02:16:39.574Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 06a9a75..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index a00dbe5..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,56 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - uses: styfle/cancel-workflow-action@0.11.0 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 0c43018..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,44 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - run: - runs-on: ubuntu-latest - steps: - - uses: superbrothers/close-pull-request@v3 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 7902a7d..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout the repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 4e8a39d..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,108 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - uses: actions/upload-artifact@v3 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - uses: distributhor/workflow-webhook@v3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4eea88..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,791 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - uses: actions/checkout@v3 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Format error messages: - - name: 'Replace double quotes with single quotes in rewritten format string error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\( \"([a-zA-Z0-9]+)\"/Error\( format\( '\1'/g" {} \; - - # Format string literal error messages: - - name: 'Replace double quotes with single quotes in rewritten string literal error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\(\"([a-zA-Z0-9]+)\"\)/Error\( format\( '\1' \)/g" {} \; - - # Format code: - - name: 'Replace double quotes with single quotes in inserted `require` calls' - run: | - find . -name "*.js" -exec sed -E -i "s/require\( ?\"@stdlib\/error-tools-fmtprodmsg\" ?\);/require\( '@stdlib\/error-tools-fmtprodmsg' \);/g" {} \; - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\"/\"@stdlib\/error-tools-fmtprodmsg\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^0.0.x'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/checkout@v3 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - uses: act10ns/slack@v1 - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -104,10 +112,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -235,7 +253,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib +[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 7035d31..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index d13fb63..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 2.0 - -/// - -import { Collection } from '@stdlib/types/object'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => any; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => any; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 40e1a67..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType any - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType any -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index cdf220e..bd57a84 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.0.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.0.x", - "@stdlib/error-tools-fmtprodmsg": "^0.0.x" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.0.x", - "@stdlib/array-dtypes": "^0.0.x", - "@stdlib/array-filled": "^0.0.x", - "@stdlib/array-filled-by": "^0.0.x", - "@stdlib/array-typed-real-dtypes": "^0.0.x", - "@stdlib/assert-is-function": "^0.0.x", - "@stdlib/bench": "^0.0.x", - "@stdlib/math-base-assert-is-nan": "^0.0.x", - "@stdlib/random-base-discrete-uniform": "^0.0.x", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "patreon", "url": "https://www.patreon.com/athan" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..1511bc7 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..f28936b --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From b37d932f86f1cefb13f87314383b3289a76a8c01 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 2 Feb 2023 04:52:03 +0000 Subject: [PATCH 006/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 8478ec6..b900e31 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.0.x" + "@stdlib/types": "^0.0.x", + "@stdlib/error-tools-fmtprodmsg": "^0.0.x" }, "devDependencies": { "@stdlib/array-dtype": "^0.0.x", @@ -82,4 +83,4 @@ "type": "patreon", "url": "https://www.patreon.com/athan" } -} +} \ No newline at end of file From a51f23dd886ea90ef43fb828197ad19901b03745 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 2 Feb 2023 05:07:49 +0000 Subject: [PATCH 007/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 3038678..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 7c92726..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 1511bc7..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index f28936b..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 9323f76d4370d27521f6a4220e2cd175ce810424 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 2 Feb 2023 05:08:47 +0000 Subject: [PATCH 008/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 62 - .github/workflows/cancel.yml | 56 - .github/workflows/close_pull_requests.yml | 44 - .github/workflows/examples.yml | 62 - .github/workflows/npm_downloads.yml | 108 - .github/workflows/productionize.yml | 791 --- .github/workflows/publish.yml | 117 - .github/workflows/test.yml | 92 - .github/workflows/test_bundles.yml | 180 - .github/workflows/test_coverage.yml | 123 - .github/workflows/test_install.yml | 83 - .gitignore | 184 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/test.js | 101 - 39 files changed, 12402 insertions(+), 4540 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 0fd4d6c..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 06a9a75..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index a00dbe5..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,56 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - uses: styfle/cancel-workflow-action@0.11.0 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 0c43018..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,44 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - run: - runs-on: ubuntu-latest - steps: - - uses: superbrothers/close-pull-request@v3 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 7902a7d..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout the repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 4e8a39d..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,108 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - uses: actions/upload-artifact@v3 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - uses: distributhor/workflow-webhook@v3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4eea88..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,791 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - uses: actions/checkout@v3 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Format error messages: - - name: 'Replace double quotes with single quotes in rewritten format string error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\( \"([a-zA-Z0-9]+)\"/Error\( format\( '\1'/g" {} \; - - # Format string literal error messages: - - name: 'Replace double quotes with single quotes in rewritten string literal error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\(\"([a-zA-Z0-9]+)\"\)/Error\( format\( '\1' \)/g" {} \; - - # Format code: - - name: 'Replace double quotes with single quotes in inserted `require` calls' - run: | - find . -name "*.js" -exec sed -E -i "s/require\( ?\"@stdlib\/error-tools-fmtprodmsg\" ?\);/require\( '@stdlib\/error-tools-fmtprodmsg' \);/g" {} \; - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\"/\"@stdlib\/error-tools-fmtprodmsg\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^0.0.x'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/checkout@v3 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - uses: act10ns/slack@v1 - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -104,10 +112,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -235,7 +253,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib +[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 7035d31..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index d13fb63..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 2.0 - -/// - -import { Collection } from '@stdlib/types/object'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => any; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => any; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 40e1a67..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType any - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType any -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index b900e31..09402d0 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.0.1", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.0.x", - "@stdlib/error-tools-fmtprodmsg": "^0.0.x" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.0.x", - "@stdlib/array-dtypes": "^0.0.x", - "@stdlib/array-filled": "^0.0.x", - "@stdlib/array-filled-by": "^0.0.x", - "@stdlib/array-typed-real-dtypes": "^0.0.x", - "@stdlib/assert-is-function": "^0.0.x", - "@stdlib/bench": "^0.0.x", - "@stdlib/math-base-assert-is-nan": "^0.0.x", - "@stdlib/random-base-discrete-uniform": "^0.0.x", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "patreon", "url": "https://www.patreon.com/athan" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..d2c64a0 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..4730eb5 --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 2b3c6e094fe6c887865ccb4f15cd8597d0e9316b Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 2 Feb 2023 05:09:32 +0000 Subject: [PATCH 009/120] Update README.md for UMD bundle v0.0.1 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7fccf05..bf2fbc2 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ limitations under the License. To use in Observable, ```javascript -getter = require( 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-getter@umd/browser.js' ) +getter = require( 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-getter@v0.0.1-umd/browser.js' ) ``` To vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build: @@ -55,7 +55,7 @@ var getter = require( 'path/to/vendor/umd/array-base-getter/index.js' ) To include the bundle in a webpage, ```html - + ``` If no recognized module system is present, access bundle contents via the global scope: @@ -118,7 +118,7 @@ The returned accessor function accepts the following arguments: - + + ``` If no recognized module system is present, access bundle contents via the global scope: @@ -118,7 +123,7 @@ The returned accessor function accepts the following arguments: - + - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index 4730eb5..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From a5df3478b0e99370b05253cfdf9f3af2a666d685 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 1 Jun 2023 18:16:48 +0000 Subject: [PATCH 013/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 62 - .github/workflows/cancel.yml | 56 - .github/workflows/close_pull_requests.yml | 44 - .github/workflows/examples.yml | 62 - .github/workflows/npm_downloads.yml | 108 - .github/workflows/productionize.yml | 798 --- .github/workflows/publish.yml | 242 - .github/workflows/test.yml | 97 - .github/workflows/test_bundles.yml | 180 - .github/workflows/test_coverage.yml | 123 - .github/workflows/test_install.yml | 83 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/test.js | 101 - 40 files changed, 12402 insertions(+), 4682 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 0fd4d6c..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 8f0bf3b..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2023-06-01T06:32:45.240Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 06a9a75..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index a00dbe5..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,56 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - uses: styfle/cancel-workflow-action@0.11.0 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 0c43018..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,44 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - run: - runs-on: ubuntu-latest - steps: - - uses: superbrothers/close-pull-request@v3 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 7902a7d..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout the repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 4e8a39d..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,108 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - uses: actions/upload-artifact@v3 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - uses: distributhor/workflow-webhook@v3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 3e8e2db..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,798 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - uses: actions/checkout@v3 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Format error messages: - - name: 'Replace double quotes with single quotes in rewritten format string error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\( \"([a-zA-Z0-9]+)\"/Error\( format\( '\1'/g" {} \; - - # Format string literal error messages: - - name: 'Replace double quotes with single quotes in rewritten string literal error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\(\"([a-zA-Z0-9]+)\"\)/Error\( format\( '\1' \)/g" {} \; - - # Format code: - - name: 'Replace double quotes with single quotes in inserted `require` calls' - run: | - find . -name "*.js" -exec sed -E -i "s/require\( ?\"@stdlib\/error-tools-fmtprodmsg\" ?\);/require\( '@stdlib\/error-tools-fmtprodmsg' \);/g" {} \; - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/checkout@v3 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - uses: act10ns/slack@v1 - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -104,10 +112,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -235,7 +253,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib +[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index d13fb63..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 2.0 - -/// - -import { Collection } from '@stdlib/types/object'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => any; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => any; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 40e1a67..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType any - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType any -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 4865573..7af851a 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.0.1", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.0.14", - "@stdlib/error-tools-fmtprodmsg": "^0.0.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.0.6", - "@stdlib/array-dtypes": "^0.0.6", - "@stdlib/array-filled": "^0.0.6", - "@stdlib/array-filled-by": "^0.0.2", - "@stdlib/array-typed-real-dtypes": "^0.0.2", - "@stdlib/assert-is-function": "^0.0.8", - "@stdlib/bench": "^0.0.12", - "@stdlib/math-base-assert-is-nan": "^0.0.8", - "@stdlib/random-base-discrete-uniform": "^0.0.6", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..1251051 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..c68ebec --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 1cd7958d06fd9729fdcacbf0df16836c771ed028 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 27 Jun 2023 20:56:31 +0000 Subject: [PATCH 014/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c202a8e..4865573 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.0.14" + "@stdlib/types": "^0.0.14", + "@stdlib/error-tools-fmtprodmsg": "^0.0.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.0.6", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 6c61ece742cd0c961872bb2ce1a6cb12d57f873b Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 27 Jun 2023 20:58:49 +0000 Subject: [PATCH 015/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 3038678..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 7c92726..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 1251051..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index c68ebec..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From d9a8c7313bf42810fd37605a3f2d0ec87e67d925 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 27 Jun 2023 20:59:44 +0000 Subject: [PATCH 016/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 62 - .github/workflows/cancel.yml | 56 - .github/workflows/close_pull_requests.yml | 44 - .github/workflows/examples.yml | 62 - .github/workflows/npm_downloads.yml | 108 - .github/workflows/productionize.yml | 798 --- .github/workflows/publish.yml | 242 - .github/workflows/test.yml | 97 - .github/workflows/test_bundles.yml | 180 - .github/workflows/test_coverage.yml | 123 - .github/workflows/test_install.yml | 83 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/test.js | 101 - 39 files changed, 12402 insertions(+), 4681 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 0fd4d6c..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 06a9a75..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index a00dbe5..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,56 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - uses: styfle/cancel-workflow-action@0.11.0 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 0c43018..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,44 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - run: - runs-on: ubuntu-latest - steps: - - uses: superbrothers/close-pull-request@v3 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 7902a7d..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout the repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 4e8a39d..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,108 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - uses: actions/upload-artifact@v3 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - uses: distributhor/workflow-webhook@v3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 3e8e2db..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,798 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - uses: actions/checkout@v3 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Format error messages: - - name: 'Replace double quotes with single quotes in rewritten format string error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\( \"([a-zA-Z0-9]+)\"/Error\( format\( '\1'/g" {} \; - - # Format string literal error messages: - - name: 'Replace double quotes with single quotes in rewritten string literal error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\(\"([a-zA-Z0-9]+)\"\)/Error\( format\( '\1' \)/g" {} \; - - # Format code: - - name: 'Replace double quotes with single quotes in inserted `require` calls' - run: | - find . -name "*.js" -exec sed -E -i "s/require\( ?\"@stdlib\/error-tools-fmtprodmsg\" ?\);/require\( '@stdlib\/error-tools-fmtprodmsg' \);/g" {} \; - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/checkout@v3 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - uses: act10ns/slack@v1 - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -104,10 +112,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -235,7 +253,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib +[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index c1ffa8a..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/object'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 3199b26..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType any - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType any -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 4865573..7af851a 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.0.1", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.0.14", - "@stdlib/error-tools-fmtprodmsg": "^0.0.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.0.6", - "@stdlib/array-dtypes": "^0.0.6", - "@stdlib/array-filled": "^0.0.6", - "@stdlib/array-filled-by": "^0.0.2", - "@stdlib/array-typed-real-dtypes": "^0.0.2", - "@stdlib/assert-is-function": "^0.0.8", - "@stdlib/bench": "^0.0.12", - "@stdlib/math-base-assert-is-nan": "^0.0.8", - "@stdlib/random-base-discrete-uniform": "^0.0.6", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..ca3da91 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..9445610 --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From dd90f4d7d2b480a75b7824441f65dc9116f8cfd8 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 1 Jul 2023 09:30:48 +0000 Subject: [PATCH 017/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c202a8e..4865573 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.0.14" + "@stdlib/types": "^0.0.14", + "@stdlib/error-tools-fmtprodmsg": "^0.0.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.0.6", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 9e8a9dbd6871fa8ab3e3bb20dc27ba8b01ffc2aa Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 1 Jul 2023 18:36:01 +0000 Subject: [PATCH 018/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 3038678..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 7c92726..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index ca3da91..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index 9445610..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 8eb4fda9217a0b8e8e81335d2098b8b62893b9c3 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 1 Jul 2023 18:36:56 +0000 Subject: [PATCH 019/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 62 - .github/workflows/cancel.yml | 56 - .github/workflows/close_pull_requests.yml | 44 - .github/workflows/examples.yml | 62 - .github/workflows/npm_downloads.yml | 108 - .github/workflows/productionize.yml | 798 --- .github/workflows/publish.yml | 242 - .github/workflows/test.yml | 97 - .github/workflows/test_bundles.yml | 180 - .github/workflows/test_coverage.yml | 123 - .github/workflows/test_install.yml | 83 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/test.js | 101 - 40 files changed, 12402 insertions(+), 4682 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 0fd4d6c..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index ac56a87..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2023-07-01T06:23:43.442Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 06a9a75..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index a00dbe5..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,56 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - uses: styfle/cancel-workflow-action@0.11.0 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 0c43018..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,44 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - run: - runs-on: ubuntu-latest - steps: - - uses: superbrothers/close-pull-request@v3 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 7902a7d..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout the repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 4e8a39d..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,108 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - uses: actions/upload-artifact@v3 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - uses: distributhor/workflow-webhook@v3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 3e8e2db..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,798 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - uses: actions/checkout@v3 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Format error messages: - - name: 'Replace double quotes with single quotes in rewritten format string error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\( \"([a-zA-Z0-9]+)\"/Error\( format\( '\1'/g" {} \; - - # Format string literal error messages: - - name: 'Replace double quotes with single quotes in rewritten string literal error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\(\"([a-zA-Z0-9]+)\"\)/Error\( format\( '\1' \)/g" {} \; - - # Format code: - - name: 'Replace double quotes with single quotes in inserted `require` calls' - run: | - find . -name "*.js" -exec sed -E -i "s/require\( ?\"@stdlib\/error-tools-fmtprodmsg\" ?\);/require\( '@stdlib\/error-tools-fmtprodmsg' \);/g" {} \; - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/checkout@v3 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - uses: act10ns/slack@v1 - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -104,10 +112,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -235,7 +253,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib +[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index c1ffa8a..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/object'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 3199b26..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType any - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType any -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 4865573..7af851a 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.0.1", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.0.14", - "@stdlib/error-tools-fmtprodmsg": "^0.0.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.0.6", - "@stdlib/array-dtypes": "^0.0.6", - "@stdlib/array-filled": "^0.0.6", - "@stdlib/array-filled-by": "^0.0.2", - "@stdlib/array-typed-real-dtypes": "^0.0.2", - "@stdlib/assert-is-function": "^0.0.8", - "@stdlib/bench": "^0.0.12", - "@stdlib/math-base-assert-is-nan": "^0.0.8", - "@stdlib/random-base-discrete-uniform": "^0.0.6", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..c667639 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..49783c7 --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From fb5a7e6f73abbad065d0eb1eda7acc88248be333 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 17 Aug 2023 02:24:11 +0000 Subject: [PATCH 020/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c202a8e..4865573 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.0.14" + "@stdlib/types": "^0.0.14", + "@stdlib/error-tools-fmtprodmsg": "^0.0.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.0.6", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 7751ceadc94b0373ce0b7612728cc0fe85b52466 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 17 Aug 2023 02:32:57 +0000 Subject: [PATCH 021/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 3038678..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 7c92726..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index c667639..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index 49783c7..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From b3074e4133306d8802037ad4170f66defb15fd76 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 17 Aug 2023 02:34:10 +0000 Subject: [PATCH 022/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 62 - .github/workflows/cancel.yml | 56 - .github/workflows/close_pull_requests.yml | 44 - .github/workflows/examples.yml | 62 - .github/workflows/npm_downloads.yml | 108 - .github/workflows/productionize.yml | 783 --- .github/workflows/publish.yml | 242 - .github/workflows/test.yml | 97 - .github/workflows/test_bundles.yml | 180 - .github/workflows/test_coverage.yml | 123 - .github/workflows/test_install.yml | 83 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/test.js | 101 - 42 files changed, 12402 insertions(+), 4681 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 0fd4d6c..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 06a9a75..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index a00dbe5..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,56 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - uses: styfle/cancel-workflow-action@0.11.0 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 0c43018..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,44 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - run: - runs-on: ubuntu-latest - steps: - - uses: superbrothers/close-pull-request@v3 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 7902a7d..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout the repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 4e8a39d..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,108 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - uses: actions/upload-artifact@v3 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - uses: distributhor/workflow-webhook@v3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 91f2b93..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,783 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - uses: actions/checkout@v3 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/checkout@v3 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - uses: act10ns/slack@v2 - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -104,10 +112,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -235,7 +253,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib +[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 11cca94..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var get = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 9d649c4..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 3199b26..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType any - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType any -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 4865573..7af851a 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.0.1", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.0.14", - "@stdlib/error-tools-fmtprodmsg": "^0.0.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.0.6", - "@stdlib/array-dtypes": "^0.0.6", - "@stdlib/array-filled": "^0.0.6", - "@stdlib/array-filled-by": "^0.0.2", - "@stdlib/array-typed-real-dtypes": "^0.0.2", - "@stdlib/assert-is-function": "^0.0.8", - "@stdlib/bench": "^0.0.12", - "@stdlib/math-base-assert-is-nan": "^0.0.8", - "@stdlib/random-base-discrete-uniform": "^0.0.6", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..5d5faec --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..31f445a --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From fb8bb71bc962b94eec89710a8a4011c0f4ddc7b9 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 24 Aug 2023 21:42:13 +0000 Subject: [PATCH 023/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c202a8e..4865573 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.0.14" + "@stdlib/types": "^0.0.14", + "@stdlib/error-tools-fmtprodmsg": "^0.0.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.0.6", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From ab3e7739e52bcc9e55b1e23814ac01a16242efb5 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 24 Aug 2023 21:44:53 +0000 Subject: [PATCH 024/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 3038678..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 7c92726..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 5d5faec..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index 31f445a..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 2e97cc8def2c3840f00ed3fb30ad9c236bf95c48 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 24 Aug 2023 21:45:57 +0000 Subject: [PATCH 025/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 62 - .github/workflows/cancel.yml | 56 - .github/workflows/close_pull_requests.yml | 44 - .github/workflows/examples.yml | 62 - .github/workflows/npm_downloads.yml | 108 - .github/workflows/productionize.yml | 783 --- .github/workflows/publish.yml | 242 - .github/workflows/test.yml | 97 - .github/workflows/test_bundles.yml | 180 - .github/workflows/test_coverage.yml | 123 - .github/workflows/test_install.yml | 83 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/test.js | 101 - 42 files changed, 12402 insertions(+), 4681 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 0fd4d6c..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 06a9a75..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index a00dbe5..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,56 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - uses: styfle/cancel-workflow-action@0.11.0 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 0c43018..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,44 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - run: - runs-on: ubuntu-latest - steps: - - uses: superbrothers/close-pull-request@v3 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 7902a7d..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout the repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 4e8a39d..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,108 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - uses: actions/upload-artifact@v3 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - uses: distributhor/workflow-webhook@v3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 91f2b93..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,783 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - uses: actions/checkout@v3 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/checkout@v3 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - uses: act10ns/slack@v2 - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -104,10 +112,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -235,7 +253,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib +[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 11cca94..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var get = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 959a4d9..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; // tslint:disable-line:no-unnecessary-generics - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; // tslint:disable-line:no-unnecessary-generics - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 4865573..7af851a 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.0.1", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.0.14", - "@stdlib/error-tools-fmtprodmsg": "^0.0.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.0.6", - "@stdlib/array-dtypes": "^0.0.6", - "@stdlib/array-filled": "^0.0.6", - "@stdlib/array-filled-by": "^0.0.2", - "@stdlib/array-typed-real-dtypes": "^0.0.2", - "@stdlib/assert-is-function": "^0.0.8", - "@stdlib/bench": "^0.0.12", - "@stdlib/math-base-assert-is-nan": "^0.0.8", - "@stdlib/random-base-discrete-uniform": "^0.0.6", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..8926db6 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..6e5f450 --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From cf6f33e7607740c05fee74048bbcbbc460e3d329 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 24 Sep 2023 06:40:17 +0000 Subject: [PATCH 026/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b627f7e..53f5705 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.1.0" + "@stdlib/types": "^0.1.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.0" }, "devDependencies": { "@stdlib/array-dtype": "^0.0.6", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 0b09fce8dce80fdaed83412967fe7f77435d5d6e Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 24 Sep 2023 08:57:46 +0000 Subject: [PATCH 027/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 3038678..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 7c92726..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 8926db6..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index 6e5f450..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From a325b8456941a335eda1eeecf200c17c0d3fc11f Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 24 Sep 2023 08:58:38 +0000 Subject: [PATCH 028/120] Auto-generated commit --- .editorconfig | 186 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 62 - .github/workflows/cancel.yml | 56 - .github/workflows/close_pull_requests.yml | 44 - .github/workflows/examples.yml | 62 - .github/workflows/npm_downloads.yml | 108 - .github/workflows/productionize.yml | 783 --- .github/workflows/publish.yml | 242 - .github/workflows/test.yml | 97 - .github/workflows/test_bundles.yml | 180 - .github/workflows/test_coverage.yml | 123 - .github/workflows/test_install.yml | 83 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/test.js | 101 - 43 files changed, 12402 insertions(+), 4716 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 13e9c39..0000000 --- a/.editorconfig +++ /dev/null @@ -1,186 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 06a9a75..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index a00dbe5..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,56 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - uses: styfle/cancel-workflow-action@0.11.0 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 0c43018..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,44 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - run: - runs-on: ubuntu-latest - steps: - - uses: superbrothers/close-pull-request@v3 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 7902a7d..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,62 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout the repository' - uses: actions/checkout@v3 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 4e8a39d..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,108 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - uses: actions/upload-artifact@v3 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - uses: distributhor/workflow-webhook@v3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 91f2b93..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,783 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - uses: actions/checkout@v3 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/checkout@v3 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - uses: act10ns/slack@v2 - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - uses: actions/setup-node@v3 - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -115,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -246,7 +264,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib +[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 11cca94..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var get = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 959a4d9..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; // tslint:disable-line:no-unnecessary-generics - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; // tslint:disable-line:no-unnecessary-generics - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 53f5705..b7a5e74 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.1.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.1.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.0" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.0.6", - "@stdlib/array-dtypes": "^0.1.0", - "@stdlib/array-filled": "^0.0.6", - "@stdlib/array-filled-by": "^0.0.2", - "@stdlib/array-typed-real-dtypes": "^0.1.0", - "@stdlib/assert-is-function": "^0.1.0", - "@stdlib/bench": "^0.1.0", - "@stdlib/math-base-assert-is-nan": "^0.1.0", - "@stdlib/random-base-discrete-uniform": "^0.0.6", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..ae3fe4f --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..5528440 --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From d2422a1773b18e04898f5b7d22dcd1e0d14c8cc5 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 24 Sep 2023 10:47:39 +0000 Subject: [PATCH 029/120] Update README.md for UMD bundle v0.1.0 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 10b6e5e..fa736ea 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ limitations under the License. To use in Observable, ```javascript -getter = require( 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-getter@umd/browser.js' ) +getter = require( 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-getter@v0.1.0-umd/browser.js' ) ``` To vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build: @@ -66,7 +66,7 @@ var getter = require( 'path/to/vendor/umd/array-base-getter/index.js' ) To include the bundle in a webpage, ```html - + ``` If no recognized module system is present, access bundle contents via the global scope: @@ -129,7 +129,7 @@ The returned accessor function accepts the following arguments: - + + ``` If no recognized module system is present, access bundle contents via the global scope: @@ -129,7 +134,7 @@ The returned accessor function accepts the following arguments: - + - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index 5528440..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 996f4ae3e47207225f8e85d6e013199a8f4433de Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 2 Oct 2023 22:35:04 +0000 Subject: [PATCH 033/120] Auto-generated commit --- .editorconfig | 186 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 247 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/dist/test.js | 101 - test/test.js | 101 - 45 files changed, 12402 insertions(+), 4876 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 13e9c39..0000000 --- a/.editorconfig +++ /dev/null @@ -1,186 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index ced1da2..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2023-10-01T04:21:55.327Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index ab56cca..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c1c45e7..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3d75797..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA corresponding to v3.0.3: - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 265afda..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -115,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -246,7 +264,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib +[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 11cca94..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var get = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 959a4d9..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; // tslint:disable-line:no-unnecessary-generics - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; // tslint:disable-line:no-unnecessary-generics - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 843a64d..b7a5e74 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.1.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.1.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.0" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.1.0", - "@stdlib/array-dtypes": "^0.1.0", - "@stdlib/array-filled": "^0.1.0", - "@stdlib/array-filled-by": "^0.1.0", - "@stdlib/array-typed-real-dtypes": "^0.1.0", - "@stdlib/assert-is-function": "^0.1.0", - "@stdlib/bench": "^0.1.0", - "@stdlib/math-base-assert-is-nan": "^0.1.0", - "@stdlib/random-base-discrete-uniform": "^0.1.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..d2931ed --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..fad8deb --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index 6cd06ad..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../../dist' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 4434a126838e98d754c7a9153cb54f06882dd261 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 5 Oct 2023 17:42:43 +0000 Subject: [PATCH 034/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0d2ce6e..ff1fd79 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.1.0" + "@stdlib/types": "^0.1.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-dtype": "^0.1.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From d55807c739370db2c71add3694b5c50fe2729bd3 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 6 Oct 2023 23:35:24 +0000 Subject: [PATCH 035/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 3038678..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 7c92726..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index d2931ed..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index fad8deb..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 7df74c3d8d6929be4ecbea0870c35fb0b9bfa2b4 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 6 Oct 2023 23:38:32 +0000 Subject: [PATCH 036/120] Auto-generated commit --- .editorconfig | 186 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 247 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/dist/test.js | 101 - test/test.js | 101 - 44 files changed, 12402 insertions(+), 4875 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 13e9c39..0000000 --- a/.editorconfig +++ /dev/null @@ -1,186 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index ab56cca..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c1c45e7..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3d75797..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA corresponding to v3.0.3: - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 265afda..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -115,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -246,7 +264,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib +[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 11cca94..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var get = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 959a4d9..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; // tslint:disable-line:no-unnecessary-generics - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; // tslint:disable-line:no-unnecessary-generics - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index ff1fd79..b7a5e74 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.1.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.1.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.1.0", - "@stdlib/array-dtypes": "^0.1.0", - "@stdlib/array-filled": "^0.1.0", - "@stdlib/array-filled-by": "^0.1.0", - "@stdlib/array-typed-real-dtypes": "^0.1.0", - "@stdlib/assert-is-function": "^0.1.1", - "@stdlib/bench": "^0.1.0", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/random-base-discrete-uniform": "^0.1.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..4b98903 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..7eee0bc --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index 6cd06ad..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../../dist' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 3893a49250a4b304a77b976e3262ccfeda36ac6c Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Wed, 1 Nov 2023 15:18:01 +0000 Subject: [PATCH 037/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f0faeb9..b91c07d 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.1.0" + "@stdlib/types": "^0.1.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-dtype": "^0.1.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 5c7d685a991c12315f3ebbf97c13e9c9b17f38f4 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 2 Nov 2023 22:44:05 +0000 Subject: [PATCH 038/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 3038678..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 7c92726..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 4b98903..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index 7eee0bc..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From b247062c54428b267eec6ed722b0be580d0ee2cb Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 2 Nov 2023 22:48:03 +0000 Subject: [PATCH 039/120] Auto-generated commit --- .editorconfig | 186 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 45 files changed, 12402 insertions(+), 4816 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 13e9c39..0000000 --- a/.editorconfig +++ /dev/null @@ -1,186 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index e2e44af..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2023-11-01T04:37:06.874Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index ab56cca..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c1c45e7..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3d75797..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA corresponding to v3.0.3: - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 265afda..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -115,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -246,7 +264,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib +[@stdlib/array/dtypes]: https://github.com/stdlib-js/stdlib/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 11cca94..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var get = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 959a4d9..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; // tslint:disable-line:no-unnecessary-generics - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; // tslint:disable-line:no-unnecessary-generics - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index b91c07d..b7a5e74 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.1.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.1.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.1.0", - "@stdlib/array-dtypes": "^0.1.0", - "@stdlib/array-filled": "^0.1.0", - "@stdlib/array-filled-by": "^0.1.0", - "@stdlib/array-typed-real-dtypes": "^0.1.1", - "@stdlib/assert-is-function": "^0.1.1", - "@stdlib/bench": "^0.1.0", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/random-base-discrete-uniform": "^0.1.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..0ba160e --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..bdc08b7 --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 7d20e8bfdc5fa35c701ddf25db346f611002ecc6 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 9 Nov 2023 10:01:20 +0000 Subject: [PATCH 040/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 06fd92c..328967c 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.2.0" + "@stdlib/types": "^0.2.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-dtype": "^0.1.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 1c5bb16114e4659e4410a4f2bf47421400354f8e Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 9 Nov 2023 10:39:32 +0000 Subject: [PATCH 041/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 3038678..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 7c92726..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 0ba160e..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index bdc08b7..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 4991643f23f1a7b24f7626edca7d88f648ebd8fa Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 9 Nov 2023 10:42:11 +0000 Subject: [PATCH 042/120] Auto-generated commit --- .editorconfig | 186 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 44 files changed, 12402 insertions(+), 4815 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 13e9c39..0000000 --- a/.editorconfig +++ /dev/null @@ -1,186 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index ab56cca..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c1c45e7..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3d75797..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA corresponding to v3.0.3: - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 265afda..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -115,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -246,7 +264,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 11cca94..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var get = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 959a4d9..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; // tslint:disable-line:no-unnecessary-generics - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; // tslint:disable-line:no-unnecessary-generics - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 328967c..b7a5e74 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.1.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.2.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.1.0", - "@stdlib/array-dtypes": "^0.1.0", - "@stdlib/array-filled": "^0.1.0", - "@stdlib/array-filled-by": "^0.1.0", - "@stdlib/array-typed-real-dtypes": "^0.1.1", - "@stdlib/assert-is-function": "^0.1.1", - "@stdlib/bench": "^0.2.0", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/random-base-discrete-uniform": "^0.1.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..f15ec5d --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..36f7f12 --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From c706fe2202011697b70d7f9005365ebd62dfe172 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 12 Nov 2023 15:09:49 +0000 Subject: [PATCH 043/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 06fd92c..328967c 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.2.0" + "@stdlib/types": "^0.2.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-dtype": "^0.1.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 73aa7477281088704430af77faba89df181cd9e5 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 12 Nov 2023 15:24:06 +0000 Subject: [PATCH 044/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 3038678..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 7c92726..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index f15ec5d..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index 36f7f12..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From f8271b14464a1171b05a652073ebc0b5b8b01038 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 12 Nov 2023 15:27:41 +0000 Subject: [PATCH 045/120] Auto-generated commit --- .editorconfig | 186 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 44 files changed, 12402 insertions(+), 4815 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 13e9c39..0000000 --- a/.editorconfig +++ /dev/null @@ -1,186 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index ab56cca..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c1c45e7..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3d75797..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA corresponding to v3.0.3: - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 265afda..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -115,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -246,7 +264,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 11cca94..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var get = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 5912b02..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index e9eaee0..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var get = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 328967c..b7a5e74 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.1.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.2.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.1.0", - "@stdlib/array-dtypes": "^0.1.0", - "@stdlib/array-filled": "^0.1.0", - "@stdlib/array-filled-by": "^0.1.0", - "@stdlib/array-typed-real-dtypes": "^0.1.1", - "@stdlib/assert-is-function": "^0.1.1", - "@stdlib/bench": "^0.2.0", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/random-base-discrete-uniform": "^0.1.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..a2fdab5 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..8b33cc3 --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 836f6a896125eba0e602d4f286d144fe39fb4654 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 23 Nov 2023 09:36:05 +0000 Subject: [PATCH 046/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b217b18..58516ee 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.2.0" + "@stdlib/types": "^0.2.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-dtype": "^0.1.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 768c03ded3a8dc3a47d26f76c1be0fe22bff18c3 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 23 Nov 2023 09:40:03 +0000 Subject: [PATCH 047/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 3038678..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 7c92726..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index a2fdab5..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index 8b33cc3..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From ecbf7734e69448d542bcf64fc92317263e78caa7 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 23 Nov 2023 09:42:57 +0000 Subject: [PATCH 048/120] Auto-generated commit --- .editorconfig | 186 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 44 files changed, 12402 insertions(+), 4815 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 13e9c39..0000000 --- a/.editorconfig +++ /dev/null @@ -1,186 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index ab56cca..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c1c45e7..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3d75797..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA corresponding to v3.0.3: - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 265afda..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -115,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -246,7 +264,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 5912b02..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 58516ee..b7a5e74 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.1.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.2.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.1.0", - "@stdlib/array-dtypes": "^0.1.0", - "@stdlib/array-filled": "^0.1.0", - "@stdlib/array-filled-by": "^0.1.0", - "@stdlib/array-typed-real-dtypes": "^0.1.1", - "@stdlib/assert-is-function": "^0.1.1", - "@stdlib/bench": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/random-base-discrete-uniform": "^0.1.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..55c8cee --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..e7249d2 --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From ae23167503de6ca4f4052de08881fb2dceca267c Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 1 Dec 2023 11:39:03 +0000 Subject: [PATCH 049/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b217b18..58516ee 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.2.0" + "@stdlib/types": "^0.2.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-dtype": "^0.1.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 98b47a6bfd9e14bc5fdaca7cc0295872d126ed58 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 2 Dec 2023 08:51:47 +0000 Subject: [PATCH 050/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 3038678..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 7c92726..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 55c8cee..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index e7249d2..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From c3be290910c13d25ade31613550e5a9a5aaed64f Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 2 Dec 2023 08:54:48 +0000 Subject: [PATCH 051/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 45 files changed, 12402 insertions(+), 4811 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index beb67a2..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2023-12-01T04:48:22.906Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index ab56cca..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c1c45e7..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3d75797..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA corresponding to v3.0.3: - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 265afda..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -115,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -246,7 +264,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 57cfdb7..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..3038678 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 5912b02..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..7c92726 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 58516ee..b7a5e74 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.1.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.2.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.1.0", - "@stdlib/array-dtypes": "^0.1.0", - "@stdlib/array-filled": "^0.1.0", - "@stdlib/array-filled-by": "^0.1.0", - "@stdlib/array-typed-real-dtypes": "^0.1.1", - "@stdlib/assert-is-function": "^0.1.1", - "@stdlib/bench": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/random-base-discrete-uniform": "^0.1.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7bd6ac6 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..7ea6597 --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From fb8545373fccc5afd1580cca680f600338176fce Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 1 Jan 2024 06:54:24 +0000 Subject: [PATCH 052/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 111a65d..f60f934 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.2.0" + "@stdlib/types": "^0.2.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-dtype": "^0.1.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From dd1711f65eb8ae1ad4cac57ca8244d3298a057bd Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 1 Jan 2024 13:40:12 +0000 Subject: [PATCH 053/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 3038678..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 7c92726..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7bd6ac6..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index 7ea6597..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 0e7ffca4e387e48f4bf394e6215a28fbdc20f8b1 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 1 Jan 2024 13:40:41 +0000 Subject: [PATCH 054/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 228 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 46 files changed, 12402 insertions(+), 4817 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index f66c119..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-01-01T04:14:41.035Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 30656c4..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c92f5c4..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 99577dc..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index e1e3539..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -115,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -246,7 +264,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 5912b02..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( `@stdlib/array/float64` ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( `@stdlib/array/float32` ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( `@stdlib/array/int32` ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( `@stdlib/array/int16` ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( `@stdlib/array/int8` ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( `@stdlib/array/uint32` ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( `@stdlib/array/uint16` ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( `@stdlib/array/uint8` ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( `@stdlib/array/uint8c` ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( `@stdlib/array/dtype` ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index f60f934..b7a5e74 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.1.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.2.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.1.0", - "@stdlib/array-dtypes": "^0.1.0", - "@stdlib/array-filled": "^0.1.0", - "@stdlib/array-filled-by": "^0.1.0", - "@stdlib/array-typed-real-dtypes": "^0.1.1", - "@stdlib/assert-is-function": "^0.1.1", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/random-base-discrete-uniform": "^0.1.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..caa4c77 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..040d6e9 --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 8ceed11024acb0f19fdafe3a88f25b47603fc6f0 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 7 Jan 2024 22:11:36 +0000 Subject: [PATCH 055/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 111a65d..f60f934 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.2.0" + "@stdlib/types": "^0.2.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-dtype": "^0.1.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From ba78d671cc238b258ae37f9f6c3f0cac8938503a Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 7 Jan 2024 22:28:05 +0000 Subject: [PATCH 056/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index caa4c77..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index 040d6e9..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 7da8bf34fbb771b21858d582e7a5dab33e9ba402 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 7 Jan 2024 22:28:25 +0000 Subject: [PATCH 057/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 228 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 - branches.md | 53 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 45 files changed, 12402 insertions(+), 4816 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 30656c4..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c92f5c4..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 99577dc..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index e1e3539..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` + +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -115,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -246,7 +264,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 1038a7e..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index f60f934..b7a5e74 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.1.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.2.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.1.0", - "@stdlib/array-dtypes": "^0.1.0", - "@stdlib/array-filled": "^0.1.0", - "@stdlib/array-filled-by": "^0.1.0", - "@stdlib/array-typed-real-dtypes": "^0.1.1", - "@stdlib/assert-is-function": "^0.1.1", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/random-base-discrete-uniform": "^0.1.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..ed50269 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..bf8e6cb --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 2784500a06668ba4aaeb633681be8c502ded7bbb Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 1 Feb 2024 07:24:16 +0000 Subject: [PATCH 058/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 111a65d..f60f934 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.2.0" + "@stdlib/types": "^0.2.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-dtype": "^0.1.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From b5a76aaec4cbef34d67265fadf68ea63489e85d7 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 1 Feb 2024 12:56:26 +0000 Subject: [PATCH 059/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index ed50269..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index bf8e6cb..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 58e8b570d341c15b4ca44e8a95f0ee1d95e3a6f5 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 1 Feb 2024 12:56:48 +0000 Subject: [PATCH 060/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 228 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 - branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 46 files changed, 12401 insertions(+), 4821 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index cce7134..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-02-01T05:03:54.534Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 30656c4..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c92f5c4..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 99577dc..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index e1e3539..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index f60f934..b7a5e74 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.1.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.2.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.1.0", - "@stdlib/array-dtypes": "^0.1.0", - "@stdlib/array-filled": "^0.1.0", - "@stdlib/array-filled-by": "^0.1.0", - "@stdlib/array-typed-real-dtypes": "^0.1.1", - "@stdlib/assert-is-function": "^0.1.1", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/random-base-discrete-uniform": "^0.1.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..3039139 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..50abd85 --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From c8f4efc58867ec9966c8d4a06e91197e3ebf2d3b Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Wed, 14 Feb 2024 14:10:27 +0000 Subject: [PATCH 061/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 709a491..95443b6 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.3.1" + "@stdlib/types": "^0.3.1", + "@stdlib/error-tools-fmtprodmsg": "^0.2.0" }, "devDependencies": { "@stdlib/array-dtype": "^0.1.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 8af69448ffeb54a7d91850d0acf276547f913223 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Wed, 14 Feb 2024 21:07:19 +0000 Subject: [PATCH 062/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 6177 -------------------------------------------- stats_node.html | 6177 -------------------------------------------- 6 files changed, 12362 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 3039139..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index 50abd85..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From bc3285ff184790106bbf9084e31a22c74cbdfd2f Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Wed, 14 Feb 2024 21:07:54 +0000 Subject: [PATCH 063/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 132 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 228 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 - branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 - package.json | 61 +- stats_browser.html | 6177 +++++++++++++++++++++ stats_node.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 45 files changed, 12401 insertions(+), 4824 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 813be7c..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 9106b5d..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 95443b6..57108dd 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.0", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.3.1", - "@stdlib/error-tools-fmtprodmsg": "^0.2.0" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.1.0", - "@stdlib/array-dtypes": "^0.1.0", - "@stdlib/array-filled": "^0.1.0", - "@stdlib/array-filled-by": "^0.1.0", - "@stdlib/array-typed-real-dtypes": "^0.1.1", - "@stdlib/assert-is-function": "^0.1.1", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/random-base-discrete-uniform": "^0.1.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..0a5285d --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..e807250 --- /dev/null +++ b/stats_node.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From d652f6087dcc57900b369793aeb6925bc96c10e2 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Wed, 14 Feb 2024 22:10:48 +0000 Subject: [PATCH 064/120] Update README.md for UMD bundle v0.2.0 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c40be18..7fa338d 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ limitations under the License. To use in Observable, ```javascript -getter = require( 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-getter@umd/browser.js' ) +getter = require( 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-getter@v0.2.0-umd/browser.js' ) ``` To vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build: @@ -66,7 +66,7 @@ var getter = require( 'path/to/vendor/umd/array-base-getter/index.js' ) To include the bundle in a webpage, ```html - + ``` If no recognized module system is present, access bundle contents via the global scope: @@ -129,7 +129,7 @@ The returned accessor function accepts the following arguments: - + + ``` If no recognized module system is present, access bundle contents via the global scope: @@ -129,7 +134,7 @@ The returned accessor function accepts the following arguments: - + - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index e807250..0000000 --- a/stats_node.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 7e6ef0244d7100f49a49717c41e9e7b8351d1942 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 25 Feb 2024 05:47:37 +0000 Subject: [PATCH 068/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 ---- .github/workflows/publish.yml | 249 -- .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 132 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 228 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 +++++++++++++++++++++ stats_node.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 45 files changed, 9731 insertions(+), 4818 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 9106b5d..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 8c0f207..8ed137b 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.1", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.3.2", - "@stdlib/error-tools-fmtprodmsg": "^0.2.1" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.2.0", - "@stdlib/array-dtypes": "^0.2.1", - "@stdlib/array-filled": "^0.2.0", - "@stdlib/array-filled-by": "^0.2.0", - "@stdlib/array-typed-real-dtypes": "^0.2.0", - "@stdlib/assert-is-function": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.1", - "@stdlib/random-base-discrete-uniform": "^0.2.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From decfaff5c43e110f42f89da339f2e497f4c4a7c1 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 25 Feb 2024 07:26:07 +0000 Subject: [PATCH 069/120] Update README.md for UMD bundle v0.2.1 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 237b7d3..bcc38e8 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ limitations under the License. To use in Observable, ```javascript -getter = require( 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-getter@umd/browser.js' ) +getter = require( 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-getter@v0.2.1-umd/browser.js' ) ``` To vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build: @@ -66,7 +66,7 @@ var getter = require( 'path/to/vendor/umd/array-base-getter/index.js' ) To include the bundle in a webpage, ```html - + ``` If no recognized module system is present, access bundle contents via the global scope: @@ -129,7 +129,7 @@ The returned accessor function accepts the following arguments: - + + ``` If no recognized module system is present, access bundle contents via the global scope: @@ -129,7 +134,7 @@ The returned accessor function accepts the following arguments: - + - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 737d4c3b36288e7cf808c662d1b65a07867ba330 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 1 Mar 2024 12:13:29 +0000 Subject: [PATCH 073/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 ---- .github/workflows/publish.yml | 249 -- .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 132 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 229 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 +++++++++++++++++++++ stats_node.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 46 files changed, 9731 insertions(+), 4820 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 6e10fc8..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-03-01T04:50:41.135Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 9106b5d..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 94368ee..8ed137b 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.1", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.3.2", - "@stdlib/error-tools-fmtprodmsg": "^0.2.1" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.2.1", - "@stdlib/array-dtypes": "^0.2.1", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.1", - "@stdlib/assert-is-function": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.1", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 7968dad5ae54dd823ac4cf8d753f30bbac48fb3e Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 1 Apr 2024 06:03:25 +0000 Subject: [PATCH 074/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d5a7fd1..94368ee 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.3.2" + "@stdlib/types": "^0.3.2", + "@stdlib/error-tools-fmtprodmsg": "^0.2.1" }, "devDependencies": { "@stdlib/array-dtype": "^0.2.1", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 1e49175d1a0a8b9a1c7700665eeddb9dec0af339 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 1 Apr 2024 11:15:14 +0000 Subject: [PATCH 075/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 0ccb35ab555ee41c29cbf0103e044ba21b97c5a5 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 1 Apr 2024 11:15:34 +0000 Subject: [PATCH 076/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 ---- .github/workflows/publish.yml | 249 -- .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 132 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 +++++++++++++++++++++ stats_node.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 46 files changed, 9731 insertions(+), 4823 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 693ac26..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-04-01T04:05:57.183Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index ec90164..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 94368ee..8ed137b 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.1", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.3.2", - "@stdlib/error-tools-fmtprodmsg": "^0.2.1" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.2.1", - "@stdlib/array-dtypes": "^0.2.1", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.1", - "@stdlib/assert-is-function": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.1", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From edaa039ffcb026dfe8e7da96ed77d51eede5713d Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 12 Apr 2024 02:26:01 +0000 Subject: [PATCH 077/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d5a7fd1..94368ee 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.3.2" + "@stdlib/types": "^0.3.2", + "@stdlib/error-tools-fmtprodmsg": "^0.2.1" }, "devDependencies": { "@stdlib/array-dtype": "^0.2.1", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From b1737325cbf54dc06cef961c79cc9da79af0e403 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 12 Apr 2024 07:55:36 +0000 Subject: [PATCH 078/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 1388310824a32749cd39bcb874e12bfd424eb031 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 12 Apr 2024 07:55:50 +0000 Subject: [PATCH 079/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 ---- .github/workflows/publish.yml | 249 -- .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 134 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 +++++++++++++++++++++ stats_node.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 45 files changed, 9731 insertions(+), 4824 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index ec90164..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 94368ee..8ed137b 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.1", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.3.2", - "@stdlib/error-tools-fmtprodmsg": "^0.2.1" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.2.1", - "@stdlib/array-dtypes": "^0.2.1", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.1", - "@stdlib/assert-is-function": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.1", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 0b8165562a60622779d05c17117760d943139965 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 28 Jul 2024 21:21:00 +0000 Subject: [PATCH 080/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 3a7a1f0..8794ea9 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.3.2" + "@stdlib/types": "^0.3.2", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.2.1", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From d7e655a76e3370e40f95cbf3bb510cf1114ec717 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 28 Jul 2024 21:38:13 +0000 Subject: [PATCH 081/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 0a854b6af477d6534a87425c075646b128cd462a Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 28 Jul 2024 21:38:29 +0000 Subject: [PATCH 082/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 ---- .github/workflows/publish.yml | 252 -- .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .gitignore | 188 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 139 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 +++++++++++++++++++++ stats_node.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 45 files changed, 9731 insertions(+), 4969 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index 8794ea9..251d8c7 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.2", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.3.2", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.2.1", - "@stdlib/array-dtypes": "^0.3.0", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.1", - "@stdlib/assert-is-function": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From b8ccd5cd3d243f85e0b5877a3608751f9b1fe747 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 28 Jul 2024 21:46:46 +0000 Subject: [PATCH 083/120] Update README.md for UMD bundle v0.2.2 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fed7749..2da13f3 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ limitations under the License. To use in Observable, ```javascript -getter = require( 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-getter@umd/browser.js' ) +getter = require( 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-getter@v0.2.2-umd/browser.js' ) ``` To vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build: @@ -66,7 +66,7 @@ var getter = require( 'path/to/vendor/umd/array-base-getter/index.js' ) To include the bundle in a webpage, ```html - + ``` If no recognized module system is present, access bundle contents via the global scope: @@ -129,7 +129,7 @@ The returned accessor function accepts the following arguments: - + + ``` If no recognized module system is present, access bundle contents via the global scope: @@ -129,7 +134,7 @@ The returned accessor function accepts the following arguments: - + - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 32e7563cc363582cc5e7bb9260c85e4262229aaf Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 1 Aug 2024 11:31:55 +0000 Subject: [PATCH 087/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 ---- .github/workflows/publish.yml | 252 -- .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 88 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 +++++++++++++++++++++ stats_node.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 46 files changed, 9731 insertions(+), 4921 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 9e979f7..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-08-01T04:57:05.519Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index efb4d3f..251d8c7 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.2", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.3.2", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.3.0", - "@stdlib/array-dtypes": "^0.3.0", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.2", - "@stdlib/assert-is-function": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 07cc9226fe4d87c20ef5d2c98319b5d761217622 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 3 Aug 2024 22:05:16 +0000 Subject: [PATCH 088/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ba20467..efb4d3f 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.3.2" + "@stdlib/types": "^0.3.2", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.3.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 06cfbadab792f63d89bfae453fbf98bc630e853d Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 4 Aug 2024 01:19:50 +0000 Subject: [PATCH 089/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 1c7d26742b75f747d9a605031a0e720c729e508c Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 4 Aug 2024 01:20:14 +0000 Subject: [PATCH 090/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 ---- .github/workflows/publish.yml | 252 -- .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 139 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 +++++++++++++++++++++ stats_node.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 46 files changed, 9731 insertions(+), 4972 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 23c18bf..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-08-03T20:25:14.532Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index efb4d3f..251d8c7 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.2", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.3.2", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.3.0", - "@stdlib/array-dtypes": "^0.3.0", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.2", - "@stdlib/assert-is-function": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 10152cfaad435ddbd5c49883492e2791a7d6c6c9 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 1 Sep 2024 07:12:25 +0000 Subject: [PATCH 091/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9dbdfe7..a4abb94 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.4.1" + "@stdlib/types": "^0.4.1", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.3.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 89709cf16236dde7a561bb3a47b587dd2829993e Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 1 Sep 2024 11:29:28 +0000 Subject: [PATCH 092/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From d76b8220f0447195c917c972e9bd78d12038b08e Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 1 Sep 2024 11:29:48 +0000 Subject: [PATCH 093/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 ---- .github/workflows/publish.yml | 252 -- .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 139 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 +++++++++++++++++++++ stats_node.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 46 files changed, 9731 insertions(+), 4972 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 284b3bd..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-09-01T05:17:06.719Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 4e0b3b3..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array - - idx: element index - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index a4abb94..251d8c7 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.2", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.4.1", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.3.0", - "@stdlib/array-dtypes": "^0.3.0", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.2", - "@stdlib/assert-is-function": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 613fc3027094f39e6629a4ea66e5bd21799d433d Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 21 Sep 2024 21:22:26 +0000 Subject: [PATCH 094/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9dbdfe7..a4abb94 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.4.1" + "@stdlib/types": "^0.4.1", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.3.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From db4a4d0fa1c733ab45f3d9c643bedf25298bce95 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 21 Sep 2024 21:28:09 +0000 Subject: [PATCH 095/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 51887c3654ecb84a02d208d429cb7c8ae48c4409 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 21 Sep 2024 21:28:23 +0000 Subject: [PATCH 096/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 ---- .github/workflows/publish.yml | 252 -- .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 173 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 +++++++++++++++++++++ stats_node.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 45 files changed, 9731 insertions(+), 5005 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 163b05f..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array. - - idx: element index. - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index a4abb94..251d8c7 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.2", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.4.1", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.3.0", - "@stdlib/array-dtypes": "^0.3.0", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.2", - "@stdlib/assert-is-function": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 46dacbd268af5a8f9ae053f3f36ef30c48e41d6d Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 1 Oct 2024 07:28:22 +0000 Subject: [PATCH 097/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9dbdfe7..a4abb94 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.4.1" + "@stdlib/types": "^0.4.1", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.3.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 659ec8d49f9c020709bbf999f4203f82fec122cc Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 1 Oct 2024 12:07:11 +0000 Subject: [PATCH 098/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From a22d05e6a364edcb4f876c7d8c516b3cad5af0f4 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 1 Oct 2024 12:07:25 +0000 Subject: [PATCH 099/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 ---- .github/workflows/publish.yml | 252 -- .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 173 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 +++++++++++++++++++++ stats_node.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 46 files changed, 9731 insertions(+), 5006 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 958c680..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-10-01T05:28:51.696Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 163b05f..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array. - - idx: element index. - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index a4abb94..251d8c7 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.2", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.4.1", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.3.0", - "@stdlib/array-dtypes": "^0.3.0", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.2", - "@stdlib/assert-is-function": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From caa4733e1a7ee898cc365895fe2f1a8139911cc2 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 1 Nov 2024 07:20:29 +0000 Subject: [PATCH 100/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9dbdfe7..a4abb94 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.4.1" + "@stdlib/types": "^0.4.1", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.3.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 9a848e8bdbc9ca499a129ac60804d6d54e14bb48 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 1 Nov 2024 11:19:30 +0000 Subject: [PATCH 101/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 5074715d471c349f85aab3110ade87ab590fa140 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 1 Nov 2024 11:19:43 +0000 Subject: [PATCH 102/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 ---- .github/workflows/publish.yml | 252 -- .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 173 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 +++++++++++++++++++++ stats_node.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 46 files changed, 9731 insertions(+), 5006 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 6303075..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-11-01T05:32:45.453Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 163b05f..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array. - - idx: element index. - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index a4abb94..251d8c7 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.2", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.4.1", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.3.0", - "@stdlib/array-dtypes": "^0.3.0", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.2", - "@stdlib/assert-is-function": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 2e0cbf08878637690d9f1ef544f342bf544a1e79 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 1 Dec 2024 07:36:36 +0000 Subject: [PATCH 103/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index dcc57da..e44b82c 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.3.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 73b3a560c02e37a5c02943667a7f3e2d19f569e4 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 1 Dec 2024 11:27:59 +0000 Subject: [PATCH 104/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From dd2c64f86dd624b6e7361dd1512a91c48625e704 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 1 Dec 2024 11:28:11 +0000 Subject: [PATCH 105/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 --- .github/workflows/publish.yml | 252 - .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .github/workflows/test_published_package.yml | 105 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 173 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 ++++++++++++++++++ stats_node.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 47 files changed, 9731 insertions(+), 5111 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 6c19369..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-12-01T05:41:18.930Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 163b05f..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array. - - idx: element index. - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index e44b82c..251d8c7 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.2", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.3.0", - "@stdlib/array-dtypes": "^0.3.0", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.2", - "@stdlib/assert-is-function": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From ba2770a6758dfb948a24ca83186a8029c59fe932 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 23 Dec 2024 02:10:12 +0000 Subject: [PATCH 106/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index dcc57da..e44b82c 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.3.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From b805381339299a66038b29a96788866a62494708 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 23 Dec 2024 02:38:53 +0000 Subject: [PATCH 107/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 148c84cb13fcba800434cb4bf28f723450052542 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 23 Dec 2024 02:39:08 +0000 Subject: [PATCH 108/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 --- .github/workflows/publish.yml | 252 - .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .github/workflows/test_published_package.yml | 105 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 173 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 ++++++++++++++++++ stats_node.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 47 files changed, 9731 insertions(+), 5111 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 0779e8a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 72cf233..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-12-23T02:01:04.901Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..6d8c69b --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 163b05f..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array. - - idx: element index. - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..299e01e --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index e44b82c..251d8c7 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.2", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.3.0", - "@stdlib/array-dtypes": "^0.3.0", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.2", - "@stdlib/assert-is-function": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 3e963350461d855360ee917666056623e277745d Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 13 Jan 2025 02:23:27 +0000 Subject: [PATCH 109/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index dcc57da..e44b82c 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.3.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 8d880314fb81e9772924962400ecc116fa1e5f3f Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 13 Jan 2025 03:00:11 +0000 Subject: [PATCH 110/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 6d8c69b..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 299e01e..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From e9a95a80573656ba2a642b4097b708230f732b78 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 13 Jan 2025 03:00:28 +0000 Subject: [PATCH 111/120] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 --- .github/workflows/publish.yml | 252 - .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .github/workflows/test_published_package.yml | 105 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 173 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 ++++++++++++++++++ stats_node.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 47 files changed, 9731 insertions(+), 5111 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 0779e8a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 751c9bc..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2025-01-13T02:11:07.054Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2025. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..680e7a5 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 163b05f..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array. - - idx: element index. - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..430f4e6 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index e44b82c..251d8c7 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.2", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.3.0", - "@stdlib/array-dtypes": "^0.3.0", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.2", - "@stdlib/assert-is-function": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From f4ff2c07e238ba9948ead4ea75aa21f897cf3874 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 2 Feb 2025 14:43:24 +0000 Subject: [PATCH 112/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index dcc57da..e44b82c 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.3.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 5491ed591b9a451103d2d1ca5d3d34c4dffe6a4b Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 2 Feb 2025 14:46:15 +0000 Subject: [PATCH 113/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 680e7a5..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 430f4e6..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From c0e91abf36357262f3f272b09c194b4600a47783 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 2 Feb 2025 14:46:34 +0000 Subject: [PATCH 114/120] Auto-generated commit --- .editorconfig | 180 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 --- .github/workflows/publish.yml | 252 - .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .github/workflows/test_published_package.yml | 105 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 173 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 ++++++++++++++++++ stats_node.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 47 files changed, 9731 insertions(+), 5110 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index dab5d2a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,180 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 8e894f1..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2025-02-02T14:42:56.905Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ebb0d03..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2025. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..680e7a5 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 163b05f..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array. - - idx: element index. - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..430f4e6 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index e44b82c..251d8c7 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.2", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.3.0", - "@stdlib/array-dtypes": "^0.3.0", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.2", - "@stdlib/assert-is-function": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 8e39ab3223485e529ce8471b692e4f64f91dd33f Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 17 Mar 2025 02:18:54 +0000 Subject: [PATCH 115/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index dcc57da..e44b82c 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.3.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 13f0c1fa056998479046534b245334e17be26dc2 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 17 Mar 2025 02:52:32 +0000 Subject: [PATCH 116/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 680e7a5..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 430f4e6..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 61c6d97ef7ea52af5cbad1efa6bf8640384d96eb Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 17 Mar 2025 02:52:56 +0000 Subject: [PATCH 117/120] Auto-generated commit --- .editorconfig | 180 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 --- .github/workflows/publish.yml | 252 - .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .github/workflows/test_published_package.yml | 105 - .gitignore | 194 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 173 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 ++++++++++++++++++ stats_node.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 47 files changed, 9731 insertions(+), 5114 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index dab5d2a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,180 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 677f1f2..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2025-03-17T01:49:35.487Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 7bd48cc..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2025. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..680e7a5 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 163b05f..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array. - - idx: element index. - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..430f4e6 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index e44b82c..251d8c7 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.2", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.3.0", - "@stdlib/array-dtypes": "^0.3.0", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.2", - "@stdlib/assert-is-function": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -}); From 0e128b391c53c47c7dfac6007054bc492e37f200 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 24 Mar 2025 01:25:06 +0000 Subject: [PATCH 118/120] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index dcc57da..e44b82c 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-dtype": "^0.3.0", @@ -82,4 +83,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 59a7aef099a3731eab0b530c6b44d02d0c7dee35 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 24 Mar 2025 01:34:33 +0000 Subject: [PATCH 119/120] Remove files --- browser.js | 3 - browser.js.map | 1 - index.js | 3 - index.js.map | 1 - stats_browser.html | 4842 -------------------------------------------- stats_node.html | 4842 -------------------------------------------- 6 files changed, 9692 deletions(-) delete mode 100644 browser.js delete mode 100644 browser.js.map delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 stats_browser.html delete mode 100644 stats_node.html diff --git a/browser.js b/browser.js deleted file mode 100644 index 680e7a5..0000000 --- a/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map deleted file mode 100644 index 745d66e..0000000 --- a/browser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 430f4e6..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); -//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 5ef22a7..0000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/stats_browser.html b/stats_browser.html deleted file mode 100644 index 7dc13e9..0000000 --- a/stats_browser.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - diff --git a/stats_node.html b/stats_node.html deleted file mode 100644 index db1c0ed..0000000 --- a/stats_node.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From b2605e1906cbaf04804de70fd1e59bf03cb6b200 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 24 Mar 2025 01:34:48 +0000 Subject: [PATCH 120/120] Auto-generated commit --- .editorconfig | 180 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 --- .github/workflows/publish.yml | 252 - .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .github/workflows/test_published_package.yml | 105 - .gitignore | 194 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 173 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 58 +- SECURITY.md | 5 - benchmark/benchmark.js | 301 -- branches.md | 56 - browser.js | 3 + browser.js.map | 1 + dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 47 - docs/types/index.d.ts | 312 -- docs/types/test.ts | 319 -- examples/index.js | 59 - index.js | 3 + index.js.map | 1 + lib/index.js | 44 - lib/main.js | 285 -- package.json | 61 +- stats_browser.html | 4842 ++++++++++++++++++ stats_node.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 101 - 47 files changed, 9731 insertions(+), 5114 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md create mode 100644 browser.js create mode 100644 browser.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/index.d.ts delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js create mode 100644 index.js create mode 100644 index.js.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats_browser.html create mode 100644 stats_node.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index dab5d2a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,180 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 98c1dff..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2025-03-24T01:07:35.207Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 7bd48cc..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 8e7daf0..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index e5a71d8..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '23 11 * * 5' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed 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. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var getter = require( '@stdlib/array-base-getter' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### getter( dtype ) @@ -117,10 +123,15 @@ The returned accessor function accepts the following arguments: -```javascript -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( '@stdlib/array-base-getter' ); +```html + + + + + + + + + ```
@@ -251,7 +267,7 @@ Copyright © 2016-2025. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-getter/main/LICENSE -[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes +[@stdlib/array/dtypes]: https://github.com/stdlib-js/array-dtypes/tree/umd
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 4ca8149..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,301 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory; -var isFunction = require( '@stdlib/assert-is-function' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var filledBy = require( '@stdlib/array-filled-by' ); -var dtype = require( '@stdlib/array-dtype' ); -var dtypes = require( '@stdlib/array-dtypes' ); -var pkg = require( './../package.json' ).name; -var getter = require( './../lib' ); - - -// VARIABLES // - -var rand = discreteUniform( 0, 127 ); - - -// MAIN // - -bench( pkg, function benchmark( b ) { - var get; - var dt; - var i; - - dt = dtypes(); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - get = getter( dt[ i%dt.length ] ); - if ( typeof get !== 'function' ) { - b.fail( 'should return a function' ); - } - } - b.toc(); - if ( !isFunction( get ) ) { - b.fail( 'should return a function' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=generic', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'generic', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float64', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float64', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=float32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'float32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=int8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'int8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint32', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint32', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint16', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint16', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); - -bench( pkg+':dtype=uint8c', function benchmark( b ) { - var arr; - var get; - var i; - var v; - - arr = filledBy( 100, 'uint8c', rand ); - get = getter( dtype( arr ) ); - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - v = get( arr, i%arr.length ); - if ( v !== v ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - if ( isnan( v ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); -}); diff --git a/branches.md b/branches.md deleted file mode 100644 index 6f23cbd..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter" -%% click B href "https://github.com/stdlib-js/array-base-getter/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-getter/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-getter/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-getter/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-getter/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/getter -[production-url]: https://github.com/stdlib-js/array-base-getter/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-getter/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-getter/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-getter/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-getter/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-getter/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-getter/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..680e7a5 --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=browser.js.map diff --git a/browser.js.map b/browser.js.map new file mode 100644 index 0000000..745d66e --- /dev/null +++ b/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 0906510..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import getter from '../docs/types/index'; -export = getter; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 7dcfc41..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var i=function(n,t){return function(){return t||n((t={exports:{}}).exports,t),t.exports}};var u=i(function(E,r){ -var e={float64:f,float32:o,int32:c,int16:g,int8:a,uint32:l,uint16:s,uint8:U,uint8c:p,generic:v,default:I};function f(n,t){return n[t]}function o(n,t){return n[t]}function c(n,t){return n[t]}function g(n,t){return n[t]}function a(n,t){return n[t]}function l(n,t){return n[t]}function s(n,t){return n[t]}function U(n,t){return n[t]}function p(n,t){return n[t]}function v(n,t){return n[t]}function I(n,t){return n[t]}function d(n){var t=e[n];return typeof t=="function"?t:e.default}r.exports=d -});var x=u();module.exports=x; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 1ab64c6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/main.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array-float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array-int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array-int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array-int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array-uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array-uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array-uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array-uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array-base-getter\n*\n* @example\n* var dtype = require( '@stdlib/array-dtype' );\n* var getter = require( '@stdlib/array-base-getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAU,CACb,QAAWC,EACX,QAAWC,EACX,MAASC,EACT,MAASC,EACT,KAAQC,EACR,OAAUC,EACV,OAAUC,EACV,MAASC,EACT,OAAUC,EACV,QAAWC,EACX,QAAWC,CACZ,EAqBA,SAASV,EAAYW,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASX,EAAYU,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASV,EAAUS,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAAST,EAAUQ,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASR,EAASO,EAAKC,EAAM,CAC5B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASP,EAAWM,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASN,EAAWK,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASL,EAAUI,EAAKC,EAAM,CAC7B,OAAOD,EAAKC,CAAI,CACjB,CAkBA,SAASJ,EAAWG,EAAKC,EAAM,CAC9B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASH,EAAYE,EAAKC,EAAM,CAC/B,OAAOD,EAAKC,CAAI,CACjB,CAgBA,SAASF,EAAcC,EAAKC,EAAM,CACjC,OAAOD,EAAKC,CAAI,CACjB,CAoBA,SAASC,EAAQC,EAAQ,CACxB,IAAIC,EAAIhB,EAASe,CAAM,EACvB,OAAK,OAAOC,GAAM,WACVA,EAEDhB,EAAQ,OAChB,CAKAD,EAAO,QAAUe,ICtPjB,IAAIG,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 163b05f..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,47 +0,0 @@ - -{{alias}}( dtype ) - Returns an accessor function for retrieving an element from an indexed - array-like object. - - An accessor function accepts the following arguments: - - - arr: input array. - - idx: element index. - - If provided an unsupported `dtype`, the function returns a default accessor - function for accessing elements from any indexed array-like object. - - Otherwise, the function returns an accessor function which should *only* be - provided an array instance corresponding to `dtype` (e.g., if `dtype` is - 'float64', the returned accessor function should only be provided instances - of Float64Array). - - Accessor functions do *not* verify that provided input arrays are array - instances corresponding to `dtype`, as doing so would introduce performance - overhead. If array instances corresponding to other data types are provided - to an accessor function, JavaScript runtimes will consider the function - polymorphic, potentially triggering de-optimization. In order to ensure - maximum performance, *always* ensure that an accessor function is - monomorphic. - - Accessor functions do *not* perform bounds checking. - - Parameters - ---------- - dtype: string - Array data type. - - Returns - ------- - f: Function - Accessor function. - - Examples - -------- - > var f = {{alias}}( 'generic' ); - > var v = f( [ 1, 2, 3, 4 ], 2 ) - 3 - - See Also - -------- - diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index 514e3c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Collection } from '@stdlib/types/array'; - -/** -* Returns an element from a `Float64Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat64 = ( arr: Float64Array, idx: number ) => number | void; - -/** -* Returns an element from a `Float32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetFloat32 = ( arr: Float32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt32 = ( arr: Int32Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt16 = ( arr: Int16Array, idx: number ) => number | void; - -/** -* Returns an element from an `Int8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetInt8 = ( arr: Int8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint32Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint32 = ( arr: Uint32Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint16Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint16 = ( arr: Uint16Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8 = ( arr: Uint8Array, idx: number ) => number | void; - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetUint8c = ( arr: Uint8ClampedArray, idx: number ) => number | void; - -/** -* Returns an element from a generic `Array`. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetGeneric = ( arr: Array, idx: number ) => T | void; - -/** -* Returns an element from an indexed array-like object. -* -* @param arr - input array -* @param idx - element index -* @returns element value -*/ -type GetArrayLike = ( arr: Collection, idx: number ) => T | void; - -/** -* Returns an accessor function for retrieving an element from a `Float64Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float64' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float64' ): GetFloat64; - -/** -* Returns an accessor function for retrieving an element from a `Float32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'float32' ); -* var v = get( arr, 2 ); -* // returns 3.0 -*/ -declare function getter( dtype: 'float32' ): GetFloat32; - -/** -* Returns an accessor function for retrieving an element from an `Int32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int32' ): GetInt32; - -/** -* Returns an accessor function for retrieving an element from an `Int16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int16' ): GetInt16; - -/** -* Returns an accessor function for retrieving an element from an `Int8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'int8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'int8' ): GetInt8; - -/** -* Returns an accessor function for retrieving an element from a `Uint32Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint32' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint32' ): GetUint32; - -/** -* Returns an accessor function for retrieving an element from a `Uint16Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint16' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint16' ): GetUint16; - -/** -* Returns an accessor function for retrieving an element from a `Uint8Array`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8' ): GetUint8; - -/** -* Returns an accessor function for retrieving an element from a `Uint8ClampedArray`. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var get = getter( 'uint8c' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'uint8c' ): GetUint8c; - -/** -* Returns an accessor function for retrieving an element from a "generic" array. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( 'generic' ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: 'generic' ): GetGeneric; - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param dtype - data type -* @returns accessor function -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -declare function getter( dtype: string ): GetArrayLike; - - -// EXPORTS // - -export = getter; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8e8efc8..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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 getter = require( './index' ); - - -// TESTS // - -// The function returns a function... -{ - getter( 'float64' ); // $ExpectType GetFloat64 - getter( 'float32' ); // $ExpectType GetFloat32 - getter( 'int32' ); // $ExpectType GetInt32 - getter( 'int16' ); // $ExpectType GetInt16 - getter( 'int8' ); // $ExpectType GetInt8 - getter( 'uint32' ); // $ExpectType GetUint32 - getter( 'uint16' ); // $ExpectType GetUint16 - getter( 'uint8' ); // $ExpectType GetUint8 - getter( 'uint8c' ); // $ExpectType GetUint8c - getter( 'generic' ); // $ExpectType GetGeneric - getter( 'foo' ); // $ExpectType GetArrayLike -} - -// The compiler throws an error if the function is provided a first argument which is not a string... -{ - getter( 5 ); // $ExpectError - getter( true ); // $ExpectError - getter( false ); // $ExpectError - getter( null ); // $ExpectError - getter( {} ); // $ExpectError - getter( [] ); // $ExpectError - getter( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - getter(); // $ExpectError - getter( 'float64', {} ); // $ExpectError -} - -// The function returns a function which returns an array element... -{ - const get1 = getter( 'generic' ); - const x1 = [ 1, 2, 3, 4 ]; - get1( x1, 2 ); // $ExpectType number | void - - const get2 = getter( 'float64' ); - const x2 = new Float64Array( [ 1, 2, 3, 4 ] ); - get2( x2, 2 ); // $ExpectType number | void - - const get3 = getter( 'float32' ); - const x3 = new Float32Array( [ 1, 2, 3, 4 ] ); - get3( x3, 2 ); // $ExpectType number | void - - const get4 = getter( 'int32' ); - const x4 = new Int32Array( [ 1, 2, 3, 4 ] ); - get4( x4, 2 ); // $ExpectType number | void - - const get5 = getter( 'int16' ); - const x5 = new Int16Array( [ 1, 2, 3, 4 ] ); - get5( x5, 2 ); // $ExpectType number | void - - const get6 = getter( 'int8' ); - const x6 = new Int8Array( [ 1, 2, 3, 4 ] ); - get6( x6, 2 ); // $ExpectType number | void - - const get7 = getter( 'uint32' ); - const x7 = new Uint32Array( [ 1, 2, 3, 4 ] ); - get7( x7, 2 ); // $ExpectType number | void - - const get8 = getter( 'uint16' ); - const x8 = new Uint16Array( [ 1, 2, 3, 4 ] ); - get8( x8, 2 ); // $ExpectType number | void - - const get9 = getter( 'uint8' ); - const x9 = new Uint8Array( [ 1, 2, 3, 4 ] ); - get9( x9, 2 ); // $ExpectType number | void - - const get10 = getter( 'uint8c' ); - const x10 = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); - get10( x10, 2 ); // $ExpectType number | void - - const get11 = getter( 'foo' ); - const x11 = [ 1, 2, 3, 4 ]; - get11( x11, 2 ); // $ExpectType unknown -} - -// The compiler throws an error if the returned function is provided a first argument which is not a collection... -{ - const get1 = getter( 'generic' ); - get1( 5, 2 ); // $ExpectError - get1( true, 2 ); // $ExpectError - get1( false, 2 ); // $ExpectError - get1( null, 2 ); // $ExpectError - get1( {}, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( 5, 2 ); // $ExpectError - get2( true, 2 ); // $ExpectError - get2( false, 2 ); // $ExpectError - get2( null, 2 ); // $ExpectError - get2( {}, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( 5, 2 ); // $ExpectError - get3( true, 2 ); // $ExpectError - get3( false, 2 ); // $ExpectError - get3( null, 2 ); // $ExpectError - get3( {}, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( 5, 2 ); // $ExpectError - get4( true, 2 ); // $ExpectError - get4( false, 2 ); // $ExpectError - get4( null, 2 ); // $ExpectError - get4( {}, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( 5, 2 ); // $ExpectError - get5( true, 2 ); // $ExpectError - get5( false, 2 ); // $ExpectError - get5( null, 2 ); // $ExpectError - get5( {}, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( 5, 2 ); // $ExpectError - get6( true, 2 ); // $ExpectError - get6( false, 2 ); // $ExpectError - get6( null, 2 ); // $ExpectError - get6( {}, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( 5, 2 ); // $ExpectError - get7( true, 2 ); // $ExpectError - get7( false, 2 ); // $ExpectError - get7( null, 2 ); // $ExpectError - get7( {}, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( 5, 2 ); // $ExpectError - get8( true, 2 ); // $ExpectError - get8( false, 2 ); // $ExpectError - get8( null, 2 ); // $ExpectError - get8( {}, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( 5, 2 ); // $ExpectError - get9( true, 2 ); // $ExpectError - get9( false, 2 ); // $ExpectError - get9( null, 2 ); // $ExpectError - get9( {}, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( 5, 2 ); // $ExpectError - get10( true, 2 ); // $ExpectError - get10( false, 2 ); // $ExpectError - get10( null, 2 ); // $ExpectError - get10( {}, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( 5, 2 ); // $ExpectError - get11( true, 2 ); // $ExpectError - get11( false, 2 ); // $ExpectError - get11( null, 2 ); // $ExpectError - get11( {}, 2 ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided a second argument which is not a number... -{ - const get1 = getter( 'generic' ); - get1( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get1( [ 1, 2, 3, 4 ], true ); // $ExpectError - get1( [ 1, 2, 3, 4 ], false ); // $ExpectError - get1( [ 1, 2, 3, 4 ], null ); // $ExpectError - get1( [ 1, 2, 3, 4 ], {} ); // $ExpectError - - const get2 = getter( 'float64' ); - get2( new Float64Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get2( new Float64Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get3 = getter( 'float32' ); - get3( new Float32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get3( new Float32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get4 = getter( 'int32' ); - get4( new Int32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get4( new Int32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get5 = getter( 'int16' ); - get5( new Int16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get5( new Int16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get6 = getter( 'int8' ); - get6( new Int8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get6( new Int8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get7( new Uint32Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get8( new Uint16Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get9( new Uint8Array( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), '5' ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), true ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), false ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), null ); // $ExpectError - get10( new Uint8ClampedArray( [ 1, 2, 3, 4 ] ), {} ); // $ExpectError - - const get11 = getter( 'foo' ); - get11( [ 1, 2, 3, 4 ], '5' ); // $ExpectError - get11( [ 1, 2, 3, 4 ], true ); // $ExpectError - get11( [ 1, 2, 3, 4 ], false ); // $ExpectError - get11( [ 1, 2, 3, 4 ], null ); // $ExpectError - get11( [ 1, 2, 3, 4 ], {} ); // $ExpectError -} - -// The compiler throws an error if the returned function is provided an unsupported number of arguments... -{ - const get1 = getter( 'generic' ); - get1(); // $ExpectError - get1( [] ); // $ExpectError - get1( [], 1, 2 ); // $ExpectError - - const get2 = getter( 'float64' ); - get2(); // $ExpectError - get2( new Float64Array( [] ) ); // $ExpectError - get2( new Float64Array( [] ), 1, 2 ); // $ExpectError - - const get3 = getter( 'float32' ); - get3(); // $ExpectError - get3( new Float32Array( [] ) ); // $ExpectError - get3( new Float32Array( [] ), 1, 2 ); // $ExpectError - - const get4 = getter( 'int32' ); - get4(); // $ExpectError - get4( new Int32Array( [] ) ); // $ExpectError - get4( new Int32Array( [] ), 1, 2 ); // $ExpectError - - const get5 = getter( 'int16' ); - get5(); // $ExpectError - get5( new Int16Array( [] ) ); // $ExpectError - get5( new Int16Array( [] ), 1, 2 ); // $ExpectError - - const get6 = getter( 'int8' ); - get6(); // $ExpectError - get6( new Int8Array( [] ) ); // $ExpectError - get6( new Int8Array( [] ), 1, 2 ); // $ExpectError - - const get7 = getter( 'uint32' ); - get7(); // $ExpectError - get7( new Uint32Array( [] ) ); // $ExpectError - get7( new Uint32Array( [] ), 1, 2 ); // $ExpectError - - const get8 = getter( 'uint16' ); - get8(); // $ExpectError - get8( new Uint16Array( [] ) ); // $ExpectError - get8( new Uint16Array( [] ), 1, 2 ); // $ExpectError - - const get9 = getter( 'uint8' ); - get9(); // $ExpectError - get9( new Uint8Array( [] ) ); // $ExpectError - get9( new Uint8Array( [] ), 1, 2 ); // $ExpectError - - const get10 = getter( 'uint8c' ); - get10(); // $ExpectError - get10( new Uint8ClampedArray( [] ) ); // $ExpectError - get10( new Uint8ClampedArray( [] ), 1, 2 ); // $ExpectError - - const get11 = getter( 'foo' ); - get11(); // $ExpectError - get11( [] ); // $ExpectError - get11( [], 1, 2 ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index e6791eb..0000000 --- a/examples/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -var filled = require( '@stdlib/array-filled' ); -var dtype = require( '@stdlib/array-dtype' ); -var getter = require( './../lib' ); - -var arr = filled( 1.0, 10, 'float64' ); -var v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 2.0, 10, 'float32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 3, 10, 'int32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 4, 10, 'int16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 5, 10, 'int8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 6, 10, 'uint32' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 7, 10, 'uint16' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 8, 10, 'uint8' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); - -arr = filled( 9, 10, 'uint8c' ); -v = getter( dtype( arr ) )( arr, 2 ); -console.log( 'v: %d', v ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..430f4e6 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +var n,t;n=this,t=function(){"use strict";var n={float64:function(n,t){return n[t]},float32:function(n,t){return n[t]},int32:function(n,t){return n[t]},int16:function(n,t){return n[t]},int8:function(n,t){return n[t]},uint32:function(n,t){return n[t]},uint16:function(n,t){return n[t]},uint8:function(n,t){return n[t]},uint8c:function(n,t){return n[t]},generic:function(n,t){return n[t]},default:function(n,t){return n[t]}};return function(t){var e=n[t];return"function"==typeof e?e:n.default}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).getter=t(); +//# sourceMappingURL=index.js.map diff --git a/index.js.map b/index.js.map new file mode 100644 index 0000000..5ef22a7 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../lib/main.js"],"sourcesContent":["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n"],"names":["GETTERS","float64","arr","idx","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","default","dtype","f"],"mappings":";yCAsBA,IAAIA,EAAU,CACbC,QAgCD,SAAqBC,EAAKC,GACzB,OAAOD,EAAKC,EACb,EAjCCC,QAmDD,SAAqBF,EAAKC,GACzB,OAAOD,EAAKC,EACb,EApDCE,MAsED,SAAmBH,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAvECG,MAyFD,SAAmBJ,EAAKC,GACvB,OAAOD,EAAKC,EACb,EA1FCI,KA4GD,SAAkBL,EAAKC,GACtB,OAAOD,EAAKC,EACb,EA7GCK,OA+HD,SAAoBN,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAhICM,OAkJD,SAAoBP,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAnJCO,MAqKD,SAAmBR,EAAKC,GACvB,OAAOD,EAAKC,EACb,EAtKCQ,OAwLD,SAAoBT,EAAKC,GACxB,OAAOD,EAAKC,EACb,EAzLCS,QAyMD,SAAqBV,EAAKC,GACzB,OAAOD,EAAKC,EACb,EA1MCU,QA0ND,SAAuBX,EAAKC,GAC3B,OAAOD,EAAKC,EACb,UAoBA,SAAiBW,GAChB,IAAIC,EAAIf,EAASc,GACjB,MAAkB,mBAANC,EACJA,EAEDf,EAAQa,OAChB"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 8ad4dc9..0000000 --- a/lib/index.js +++ /dev/null @@ -1,44 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -/** -* Return an accessor function for retrieving an element from an indexed array-like object. -* -* @module @stdlib/array-base-getter -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* var getter = require( '@stdlib/array-base-getter' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 6b58d24..0000000 --- a/lib/main.js +++ /dev/null @@ -1,285 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// VARIABLES // - -var GETTERS = { - 'float64': getFloat64, - 'float32': getFloat32, - 'int32': getInt32, - 'int16': getInt16, - 'int8': getInt8, - 'uint32': getUint32, - 'uint16': getUint16, - 'uint8': getUint8, - 'uint8c': getUint8c, - 'generic': getGeneric, - 'default': getArrayLike -}; - - -// FUNCTIONS // - -/** -* Returns an element from a `Float64Array`. -* -* @private -* @param {Float64Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* var arr = new Float64Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat64( arr, 2 ); -* // returns 3.0 -*/ -function getFloat64( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from a `Float32Array`. -* -* @private -* @param {Float32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Float32Array = require( '@stdlib/array-float32' ); -* -* var arr = new Float32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getFloat32( arr, 2 ); -* // returns 3.0 -*/ -function getFloat32( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an `Int32Array`. -* -* @private -* @param {Int32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int32Array = require( '@stdlib/array-int32' ); -* -* var arr = new Int32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt32( arr, 2 ); -* // returns 3 -*/ -function getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int16Array`. -* -* @private -* @param {Int16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int16Array = require( '@stdlib/array-int16' ); -* -* var arr = new Int16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt16( arr, 2 ); -* // returns 3 -*/ -function getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from an `Int8Array`. -* -* @private -* @param {Int8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Int8Array = require( '@stdlib/array-int8' ); -* -* var arr = new Int8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getInt8( arr, 2 ); -* // returns 3 -*/ -function getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint32Array`. -* -* @private -* @param {Uint32Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint32Array = require( '@stdlib/array-uint32' ); -* -* var arr = new Uint32Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint32( arr, 2 ); -* // returns 3 -*/ -function getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint16Array`. -* -* @private -* @param {Uint16Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint16Array = require( '@stdlib/array-uint16' ); -* -* var arr = new Uint16Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint16( arr, 2 ); -* // returns 3 -*/ -function getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8Array`. -* -* @private -* @param {Uint8Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8Array = require( '@stdlib/array-uint8' ); -* -* var arr = new Uint8Array( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8( arr, 2 ); -* // returns 3 -*/ -function getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a `Uint8ClampedArray`. -* -* @private -* @param {Uint8ClampedArray} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {number} element value -* -* @example -* var Uint8ClampedArray = require( '@stdlib/array-uint8c' ); -* -* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] ); -* -* var v = getUint8c( arr, 2 ); -* // returns 3 -*/ -function getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point - return arr[ idx ]; -} - -/** -* Returns an element from a generic `Array`. -* -* @private -* @param {Array} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getGeneric( arr, 2 ); -* // returns 3 -*/ -function getGeneric( arr, idx ) { - return arr[ idx ]; -} - -/** -* Returns an element from an indexed array-like object. -* -* @private -* @param {Collection} arr - input array -* @param {NonNegativeInteger} idx - element index -* @returns {*} element value -* -* @example -* var arr = [ 1, 2, 3, 4 ]; -* -* var v = getArrayLike( arr, 2 ); -* // returns 3 -*/ -function getArrayLike( arr, idx ) { - return arr[ idx ]; -} - - -// MAIN // - -/** -* Returns an accessor function for retrieving an element from an indexed array-like object. -* -* @param {string} dtype - array dtype -* @returns {Function} accessor -* -* @example -* var dtype = require( '@stdlib/array-dtype' ); -* -* var arr = [ 1, 2, 3, 4 ]; -* -* var get = getter( dtype( arr ) ); -* var v = get( arr, 2 ); -* // returns 3 -*/ -function getter( dtype ) { - var f = GETTERS[ dtype ]; - if ( typeof f === 'function' ) { - return f; - } - return GETTERS.default; -} - - -// EXPORTS // - -module.exports = getter; diff --git a/package.json b/package.json index e44b82c..251d8c7 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,7 @@ "version": "0.2.2", "description": "Return an accessor function for retrieving an element from an indexed array-like object.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-dtype": "^0.3.0", - "@stdlib/array-dtypes": "^0.3.0", - "@stdlib/array-filled": "^0.2.1", - "@stdlib/array-filled-by": "^0.2.1", - "@stdlib/array-typed-real-dtypes": "^0.2.2", - "@stdlib/assert-is-function": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "array", @@ -83,4 +26,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..7dc13e9 --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..db1c0ed --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 76da60e..0000000 --- a/test/test.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2022 The Stdlib Authors. -* -* Licensed 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. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var filled = require( '@stdlib/array-filled' ); -var dtypes = require( '@stdlib/array-typed-real-dtypes' ); -var getter = require( './../lib' ); - - -// VARIABLES // - -var DTYPES = dtypes(); -DTYPES.push( 'generic' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof getter, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns a function for returning an array element', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, 2 ); - t.strictEqual( v, i+1, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the function returns a function for returning an array element (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, 2 ); - t.strictEqual( v, 2, 'returns expected value' ); - - t.end(); -}); - -tape( 'the returned function does not perform bounds checks', function test( t ) { - var arr; - var get; - var dt; - var v; - var i; - - for ( i = 0; i < DTYPES.length; i++ ) { - dt = DTYPES[ i ]; - get = getter( dt ); - arr = filled( i+1, 10, dt ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value for dtype: '+dt ); - } - t.end(); -}); - -tape( 'the returned function does not perform bounds checks (unrecognized dtype)', function test( t ) { - var arr; - var get; - var v; - - get = getter( 'foo' ); - arr = filled( 2, 10, 'generic' ); - v = get( arr, arr.length+10 ); - t.strictEqual( v, void 0, 'returns expected value' ); - - t.end(); -});