diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..fae45eb --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +examples/*/node_modules \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js index 1dafac3..59ece0f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,9 +1,12 @@ module.exports = { - extends: 'standard', - globals: { - test: true, - expect: true, - describe: true, - jest: true - } -}; \ No newline at end of file + extends: 'standard', + globals: { + test: true, + expect: true, + describe: true, + jest: true, + }, + rules: { + 'no-template-curly-in-string': 'off' + } +}; diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index a96bfc5..45bf5c3 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,7 +1,7 @@ -Please ensure all pull requests are made against the `develop` branch. +Please ensure all pull requests are made against the `master` branch. *Issue #, if available:* *Description of changes:* -By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. +By submitting this pull request, I confirm that my contribution is made under the terms of the MIT. diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..5c0e15d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,57 @@ +name: Release + +on: + push: + branches: [master] + +jobs: + release: + name: Release + runs-on: ubuntu-latest + env: + GH_TOKEN: ${{ secrets.GH_TOKEN }} + steps: + - name: Checkout repository + uses: actions/checkout@v2 + with: + persist-credentials: false + + - name: Install Node.js and npm + uses: actions/setup-node@v1 + with: + node-version: 8.x + registry-url: https://registry.npmjs.org + + - name: Retrieve dependencies from cache + id: cacheNpm + uses: actions/cache@v2 + with: + path: | + ~/.npm + node_modules + key: npm-v8-${{ runner.os }}-refs/heads/master-${{ hashFiles('package.json') }} + restore-keys: npm-v8-${{ runner.os }}-refs/heads/master- + + - name: Install dependencies + if: steps.cacheNpm.outputs.cache-hit != 'true' + run: | + npm update --no-save + npm update --save-dev --no-save + npm run install-example-dependencies + + - name: Lint + run: npm run lint + + - name: Test + run: npm run test + + - name: Releasing + run: | + npm run release + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} + GIT_AUTHOR_NAME: slsplus + GIT_AUTHOR_EMAIL: slsplus.sz@gmail.com + GIT_COMMITTER_NAME: slsplus + GIT_COMMITTER_EMAIL: slsplus.sz@gmail.com diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c77c816..0000000 --- a/.travis.yml +++ /dev/null @@ -1,45 +0,0 @@ -language: node_js - -node_js: - - 8 - # - node # runs tests against latest version of Node.js for future-proofing - -before_install: - - echo 'Installing example dependencies...' - - npm run install-example-dependencies - - echo 'Example dependencies installed!' - -# NOTE: forcing Travis to use `npm install` instead of `npm ci` -# which was removing our examples' node_modules -install: - - npm install - -jobs: - include: - - stage: test - script: - - pwd - - npm test - - stage: lint - script: - - npm run lint - - stage: deploy - script: skip - node_js: 8 # semantic-release requires Node >= 8.3 - # NOTE: Pull Request builds do not run deploy - deploy: - provider: script - on: - branch: master - skip_cleanup: true - script: - - npm run release - -cache: - directories: - - node_modules - - examples/basic-starter/node_modules - -notifications: - email: - on_failure: change diff --git a/CHANGELOG.md b/CHANGELOG.md index b9bf324..786fe87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [1.3.2](https://github.com/serverless-plus/tencent-serverless-http/compare/v1.3.1...v1.3.2) (2021-05-20) + + +### Bug Fixes + +* set isBase64Encoded when content-encoding ([d3d23a4](https://github.com/serverless-plus/tencent-serverless-http/commit/d3d23a4)) + ## [1.3.1](https://github.com/serverless-plus/tencent-serverless-http/compare/v1.3.0...v1.3.1) (2020-09-17) diff --git a/NOTICE.txt b/NOTICE.txt deleted file mode 100644 index abc979d..0000000 --- a/NOTICE.txt +++ /dev/null @@ -1,2 +0,0 @@ -AWS Serverless Express -Copyright 2016-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/__tests__/integration.js b/__tests__/integration.test.js similarity index 100% rename from __tests__/integration.js rename to __tests__/integration.test.js diff --git a/__tests__/unit.js b/__tests__/unit.test.js similarity index 100% rename from __tests__/unit.js rename to __tests__/unit.test.js diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 0000000..a389d09 --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,5 @@ +module.exports = { + 'extends': [ + '@commitlint/config-conventional' + ] +} diff --git a/examples/basic-starter/package-lock.json b/examples/basic-starter/package-lock.json index db7673e..96de95f 100644 --- a/examples/basic-starter/package-lock.json +++ b/examples/basic-starter/package-lock.json @@ -794,9 +794,9 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "tencent-serverless-http": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tencent-serverless-http/-/tencent-serverless-http-1.2.0.tgz", - "integrity": "sha512-aMkdQFeuQqAwygmNH7jCrz60siRlya53Qck3NtJ3JTRfcaH/zVJlNJ/Lm81o7i3VuXlq2ubT44/2ZkX/HioNLQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/tencent-serverless-http/-/tencent-serverless-http-1.3.2.tgz", + "integrity": "sha512-HgIu9HuBdY0lx3jLKuicOSOrjmieklPh55x8ZmtuTnrZ5v1buAPUfLKBhTeBSz6e90ggyW+dPr5PWdz179kUkw==", "requires": { "type-is": "^1.6.16" } diff --git a/examples/basic-starter/package.json b/examples/basic-starter/package.json index e847a95..99b33ca 100644 --- a/examples/basic-starter/package.json +++ b/examples/basic-starter/package.json @@ -8,7 +8,7 @@ }, "license": "Apache-2.0", "dependencies": { - "tencent-serverless-http": "^1.2.0", + "tencent-serverless-http": "^1.3.2", "body-parser": "^1.17.1", "compression": "^1.6.2", "cors": "^2.8.3", diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..78eb326 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,11 @@ +module.exports = { + collectCoverageFrom: ['src/*'], + verbose: true, + testTimeout: 600000, + testRegex: '/__tests__/.*\\.(test|spec)\\.(js|ts)$', + testPathIgnorePatterns: [ + '/node_modules/', + '/examples/' + ], + moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'] +} diff --git a/package-lock.json b/package-lock.json index 40013d8..e2f28ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "tencent-serverless-http", - "version": "1.3.1", + "version": "1.3.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 2408279..cab0a99 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,19 @@ { "name": "tencent-serverless-http", - "version": "1.3.1", + "version": "1.3.2", "publishConfig": { "access": "public" }, + "scripts": { + "test": "jest", + "test:watch": "jest --watch", + "coverage": "jest --coverage", + "release": "semantic-release", + "release-local": "node -r dotenv/config node_modules/semantic-release/bin/semantic-release --no-ci", + "check-dependencies": "npx npm-check --skip-unused --update", + "lint": "eslint src examples", + "install-example-dependencies": "cd examples && npm install --prefix basic-starter basic-starter && cd .." + }, "description": "This library enables you to utilize Tencent Cloud API Gateway to respond to web and API requests using your existing Node.js application framework.", "keywords": [ "tencent-cloud", @@ -30,36 +40,6 @@ "engines": { "node": ">=8" }, - "release": { - "verifyConditions": [ - "@semantic-release/changelog", - "@semantic-release/npm", - "@semantic-release/git", - "@semantic-release/github" - ], - "publish": [ - "@semantic-release/changelog", - { - "path": "@semantic-release/npm", - "npmPublish": true, - "tarballDir": "dist" - }, - { - "path": "@semantic-release/git", - "assets": [ - "package.json", - "package-lock.json", - "CHANGELOG.md", - "dist/**/*.{js|css}" - ], - "message": "chore(release): version ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" - }, - { - "path": "@semantic-release/github", - "assets": "dist/*.tgz" - } - ] - }, "husky": { "hooks": { "pre-commit": "lint-staged && npm run install-example-dependencies", @@ -72,19 +52,6 @@ "git add ." ] }, - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "eslintIgnore": [ - "examples/*/node_modules" - ], - "jest": { - "collectCoverageFrom": [ - "src/*" - ] - }, "devDependencies": { "@commitlint/config-conventional": "^6.1.0", "@commitlint/travis-cli": "^6.1.3", @@ -106,16 +73,6 @@ "lint-staged": "^7.2.0", "semantic-release": "^15.13.8" }, - "scripts": { - "test": "jest", - "test:watch": "jest --watch", - "coverage": "jest --coverage", - "release": "semantic-release", - "release-local": "node -r dotenv/config node_modules/semantic-release/bin/semantic-release --no-ci", - "check-dependencies": "npx npm-check --skip-unused --update", - "lint": "eslint src examples", - "install-example-dependencies": "cd examples && npm install --prefix basic-starter basic-starter && cd .." - }, "dependencies": { "type-is": "^1.6.16" }, diff --git a/release.config.js b/release.config.js new file mode 100644 index 0000000..477efcf --- /dev/null +++ b/release.config.js @@ -0,0 +1,31 @@ +module.exports = { + verifyConditions: [ + '@semantic-release/changelog', + '@semantic-release/npm', + '@semantic-release/git', + '@semantic-release/github' + ], + publish: [ + '@semantic-release/changelog', + { + path: '@semantic-release/npm', + npmPublish: true, + tarballDir: 'dist' + }, + { + path: '@semantic-release/git', + assets: [ + 'package.json', + 'package-lock.json', + 'CHANGELOG.md', + 'dist/**/*.{js|css}' + ], + message: + 'chore(release): version ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}' + }, + { + path: '@semantic-release/github', + assets: 'dist/*.tgz' + } + ] +}