diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..404abb2 --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml new file mode 100644 index 0000000..3b07263 --- /dev/null +++ b/.github/workflows/dev.yml @@ -0,0 +1,75 @@ +name: dev +on: + pull_request: + push: + branches: + - master + - main +env: + CI: true + +jobs: + prettier: + name: Format code + runs-on: ubuntu-latest + if: ${{ github.event_name == 'push' }} + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Prettier + uses: gulpjs/prettier_action@v3.0 + with: + commit_message: 'chore: Run prettier' + prettier_options: '--write .' + + test: + name: Tests for Node ${{ matrix.node }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + node: [10, 12, 14, 16] + os: [ubuntu-latest, windows-latest, macos-latest] + + steps: + - name: Clone repository + uses: actions/checkout@v2 + + - name: Set Node.js version + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node }} + + - run: node --version + - run: npm --version + + - name: Install npm dependencies + run: npm install + + - name: Run lint + run: npm run lint + + - name: Run tests + run: npm test + + - name: Coveralls + uses: coverallsapp/github-action@v1.1.2 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + flag-name: ${{matrix.os}}-node-${{ matrix.node }} + parallel: true + + coveralls: + needs: test + name: Finish up + + runs-on: ubuntu-latest + steps: + - name: Coveralls Finished + uses: coverallsapp/github-action@v1.1.2 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + parallel-finished: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..8a10ce3 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,17 @@ +name: release +on: + push: + branches: + - master + - main + +jobs: + release-please: + runs-on: ubuntu-latest + steps: + - uses: GoogleCloudPlatform/release-please-action@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + release-type: node + package-name: release-please-action + bump-minor-pre-major: true diff --git a/.gitignore b/.gitignore index da8ada8..aa0c563 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,15 @@ # Logs logs *.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* # Runtime data pids *.pid *.seed +*.pid.lock # Directory for instrumented libs generated by jscoverage/JSCover lib-cov @@ -13,23 +17,51 @@ lib-cov # Coverage directory used by tools like istanbul coverage -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) .grunt -# Compiled binary addons (http://nodejs.org/api/addons.html) +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) build/Release -# Dependency directory -# Commenting this out is preferred by some people, see -# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git- -node_modules +# Dependency directories +node_modules/ +jspm_packages/ -# Users Environment Variables -.lock-wscript +# TypeScript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# next.js build output +.next # Garbage files .DS_Store -# Generated by integration tests -test/fixtures/tmp -test/fixtures/out +# Test results +test.xunit diff --git a/.jscsrc b/.jscsrc deleted file mode 100644 index 703b33f..0000000 --- a/.jscsrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "preset": "gulp" -} diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..43c97e7 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +package-lock=false diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..c96ebe0 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +coverage/ +.nyc_output/ +CHANGELOG.md diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 0d50ecf..0000000 --- a/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -sudo: false -language: node_js -node_js: - - '6' - - '5' - - '4' - - '0.12' - - '0.10' -after_script: - - npm run coveralls diff --git a/LICENSE b/LICENSE index b8fc743..82659bc 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2017 Blaine Bublitz , Eric Schoffstall and other contributors +Copyright (c) 2017, 2022 Blaine Bublitz and Eric Schoffstall Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 60efcb3..42a9d39 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@

- +

# resolve-options -[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url] +[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][ci-image]][ci-url] [![Coveralls Status][coveralls-image]][coveralls-url] Resolve an options object based on configuration. @@ -85,20 +85,18 @@ Takes an `optionKey` string and any number of `arguments` to apply if an option MIT -[value-or-function]: https://github.com/gulpjs/value-or-function - -[downloads-image]: http://img.shields.io/npm/dm/resolve-options.svg + +[downloads-image]: https://img.shields.io/npm/dm/resolve-options.svg?style=flat-square [npm-url]: https://npmjs.com/package/resolve-options -[npm-image]: http://img.shields.io/npm/v/resolve-options.svg +[npm-image]: https://img.shields.io/npm/v/resolve-options.svg?style=flat-square -[travis-url]: https://travis-ci.org/gulpjs/resolve-options -[travis-image]: http://img.shields.io/travis/gulpjs/resolve-options.svg?label=travis-ci - -[appveyor-url]: https://ci.appveyor.com/project/gulpjs/resolve-options -[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/resolve-options.svg?label=appveyor +[ci-url]: https://github.com/gulpjs/resolve-options/actions?query=workflow:dev +[ci-image]: https://img.shields.io/github/workflow/status/gulpjs/resolve-options/dev?style=flat-square [coveralls-url]: https://coveralls.io/r/gulpjs/resolve-options -[coveralls-image]: http://img.shields.io/coveralls/gulpjs/resolve-options/master.svg +[coveralls-image]: https://img.shields.io/coveralls/gulpjs/resolve-options/master.svg?style=flat-square + -[gitter-url]: https://gitter.im/gulpjs/gulp -[gitter-image]: https://badges.gitter.im/gulpjs/gulp.png + +[value-or-function]: https://github.com/gulpjs/value-or-function + diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 625fc10..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,25 +0,0 @@ -# http://www.appveyor.com/docs/appveyor-yml -# http://www.appveyor.com/docs/lang/nodejs-iojs - -environment: - matrix: - # node.js - - nodejs_version: "0.10" - - nodejs_version: "0.12" - - nodejs_version: "4" - - nodejs_version: "5" - - nodejs_version: "6" - -install: - - ps: Install-Product node $env:nodejs_version - - npm install - -test_script: - - node --version - - npm --version - - cmd: npm test - -build: off - -# build version format -version: "{build}" diff --git a/index.js b/index.js index 21ef429..4e96f61 100644 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ function createResolver(config, options) { var constants = {}; function resolveConstant(key) { - if (constants.hasOwnProperty(key)) { + if (Object.prototype.hasOwnProperty.call(constants, key)) { return constants[key]; } diff --git a/package.json b/package.json index b1c89f6..a9329dd 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "repository": "gulpjs/resolve-options", "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" }, "main": "index.js", "files": [ @@ -17,24 +17,29 @@ "index.js" ], "scripts": { - "lint": "eslint index.js test/ && jscs index.js test/", + "lint": "eslint .", "pretest": "npm run lint", - "test": "mocha --async-only", - "cover": "istanbul cover _mocha --report lcovonly", - "coveralls": "npm run cover && istanbul-coveralls" + "test": "nyc mocha --async-only" }, "dependencies": { - "value-or-function": "^3.0.0" + "value-or-function": "^4.0.0" }, "devDependencies": { - "eslint": "^1.10.3", - "eslint-config-gulp": "^2.0.0", - "expect": "^1.20.2", - "istanbul": "^0.4.3", - "istanbul-coveralls": "^1.0.3", - "jscs": "^2.4.0", - "jscs-preset-gulp": "^1.0.0", - "mocha": "^3.2.0" + "eslint": "^7.32.0", + "eslint-config-gulp": "^5.0.1", + "eslint-plugin-node": "^11.1.0", + "expect": "^27.5.1", + "mocha": "^8.4.0", + "nyc": "^15.1.0" + }, + "nyc": { + "reporter": [ + "lcov", + "text-summary" + ] + }, + "prettier": { + "singleQuote": true }, "keywords": [ "options", diff --git a/test/.eslintrc b/test/.eslintrc deleted file mode 100644 index 06b940f..0000000 --- a/test/.eslintrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "gulp/test" -} diff --git a/test/index.js b/test/index.js index 1233a1a..f79ece1 100644 --- a/test/index.js +++ b/test/index.js @@ -9,7 +9,7 @@ describe('createResolver', function() { it('does not need a config or options object', function(done) { var resolver = createResolver(); - expect(resolver).toExist(); + expect(resolver).toBeTruthy(); done(); }); @@ -17,7 +17,7 @@ describe('createResolver', function() { it('returns a resolver that contains a `resolve` method', function(done) { var resolver = createResolver(); - expect(resolver.resolve).toBeA('function'); + expect(typeof resolver.resolve).toEqual('function'); done(); }); @@ -32,7 +32,7 @@ describe('createResolver', function() { var resolver = createResolver(config); - expect(resolver).toExist(); + expect(resolver).toBeTruthy(); done(); }); @@ -49,7 +49,7 @@ describe('createResolver', function() { var resolver = createResolver(config, options); - expect(resolver).toExist(); + expect(resolver).toBeTruthy(); done(); }); @@ -72,7 +72,7 @@ describe('createResolver', function() { var resolver = createResolver(config, options); - expect(resolver).toExist(); + expect(resolver).toBeTruthy(); expect(coerced).toBe(0); var myOpt1 = resolver.resolve('myOpt');