Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
2d47897
Remove deprecated maxage method
dougwilson Dec 13, 2021
707070d
Remove deprecated index method
dougwilson Dec 13, 2021
0abe1e0
Remove deprecated from alias for root
dougwilson Dec 13, 2021
07eaa19
Remove deprecated etag method
dougwilson Dec 13, 2021
a7eb68c
Remove deprecated root method
dougwilson Dec 13, 2021
e9ff7d9
Drop support for Node.js 0.8
dougwilson Dec 13, 2021
889d310
Use mime-types for file to content type mapping
LinusU Mar 5, 2020
85dfcd7
Remove deprecated hidden option
dougwilson Feb 3, 2022
999788b
deps: debug@3.1.0
dougwilson Feb 5, 2022
771c1f1
build: add version script for npm version releases
dougwilson Feb 5, 2022
00d54b6
1.0.0-beta.1
dougwilson Feb 5, 2022
b5e395c
Merge tag '0.18.0' into 1.0
wesleytodd Mar 21, 2024
384820d
build: fixed ci in node 8/9 with nyc pin back
wesleytodd Mar 21, 2024
e1c26fe
1.0.0-beta.2
wesleytodd Mar 21, 2024
4baced0
fix!: drop node <18
wesleytodd Jul 23, 2024
801401c
fix(dev-deps): mocha@^10.7.0
wesleytodd Jul 23, 2024
902acc3
fix(dev-deps): after@^0.8.2
wesleytodd Jul 23, 2024
b00f374
fix(dev-deps): nyc@^17.0.0
wesleytodd Jul 23, 2024
5e1281b
fix(deps): debug@^4.3.5
wesleytodd Jul 23, 2024
fac1ff5
fix(deps): destroy@^1.2.0
wesleytodd Jul 23, 2024
8f91d6e
fix(deps): encodeurl@^2.0.0
wesleytodd Jul 23, 2024
a8fd1c5
fix(deps): escape-html@^1.0.3
wesleytodd Jul 23, 2024
c4f4f82
fix(deps): etag@^1.8.1
wesleytodd Jul 23, 2024
e9cb458
fix(deps): fresh@^0.5.2
wesleytodd Jul 23, 2024
ac8590f
fix(deps): http-errors@^2.0.0
wesleytodd Jul 23, 2024
d302c04
fix(deps): mime-types@^2.1.35
wesleytodd Jul 23, 2024
15d911c
fix(deps): ms@^2.1.3
wesleytodd Jul 23, 2024
2d5841a
fix(deps): on-finished@^2.4.1
wesleytodd Jul 23, 2024
b0e3e2d
fix(deps): range-parser@^1.2.1
wesleytodd Jul 23, 2024
0c0d374
fix(deps): statuses@^2.0.1
wesleytodd Jul 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
141 changes: 20 additions & 121 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
@@ -1,149 +1,48 @@
name: ci

on:
- pull_request
- push
push:
branches:
- master
- '1.0'
paths-ignore:
- '*.md'
pull_request:
paths-ignore:
- '*.md'

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
name:
- Node.js 0.8
- Node.js 0.10
- Node.js 0.12
- io.js 1.x
- io.js 2.x
- io.js 3.x
- Node.js 4.x
- Node.js 5.x
- Node.js 6.x
- Node.js 7.x
- Node.js 8.x
- Node.js 9.x
- Node.js 10.x
- Node.js 11.x
- Node.js 12.x
- Node.js 13.x
- Node.js 14.x
- Node.js 15.x
- Node.js 16.x
- Node.js 17.x
- Node.js 18.x
- Node.js 20.x
- Node.js 22.x

include:
- name: Node.js 0.8
node-version: "0.8"
npm-i: mocha@2.5.3 supertest@1.1.0
npm-rm: nyc
- name: Node.js 18.x
node-version: "18"

- name: Node.js 0.10
node-version: "0.10"
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0
- name: Node.js 20.x
node-version: "20"

- name: Node.js 0.12
node-version: "0.12"
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0

- name: io.js 1.x
node-version: "1.8"
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0

- name: io.js 2.x
node-version: "2.5"
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0

- name: io.js 3.x
node-version: "3.3"
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0

- name: Node.js 4.x
node-version: "4.9"
npm-i: mocha@5.2.0 nyc@11.9.0 supertest@3.4.2

- name: Node.js 5.x
node-version: "5.12"
npm-i: mocha@5.2.0 nyc@11.9.0 supertest@3.4.2

- name: Node.js 6.x
node-version: "6.17"
npm-i: mocha@6.2.3 nyc@14.1.1 supertest@6.1.6

- name: Node.js 7.x
node-version: "7.10"
npm-i: mocha@6.2.3 nyc@14.1.1 supertest@6.1.6

- name: Node.js 8.x
node-version: "8.16"
npm-i: mocha@7.2.0

- name: Node.js 9.x
node-version: "9.11"
npm-i: mocha@7.2.0

- name: Node.js 10.x
node-version: "10.24"
npm-i: mocha@8.4.0

- name: Node.js 11.x
node-version: "11.15"
npm-i: mocha@8.4.0

- name: Node.js 12.x
node-version: "12.22"

- name: Node.js 13.x
node-version: "13.14"

- name: Node.js 14.x
node-version: "14.19"

- name: Node.js 15.x
node-version: "15.14"

- name: Node.js 16.x
node-version: "16.14"

- name: Node.js 17.x
node-version: "17.7"
- name: Node.js 22.x
node-version: "22"

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Install Node.js ${{ matrix.node-version }}
shell: bash -eo pipefail -l {0}
run: |
nvm install --default ${{ matrix.node-version }}
if [[ "${{ matrix.node-version }}" == 0.* && "$(cut -d. -f2 <<< "${{ matrix.node-version }}")" -lt 10 ]]; then
nvm install --alias=npm 0.10
nvm use ${{ matrix.node-version }}
sed -i '1s;^.*$;'"$(printf '#!%q' "$(nvm which npm)")"';' "$(readlink -f "$(which npm)")"
npm config set strict-ssl false
fi
dirname "$(nvm which ${{ matrix.node-version }})" >> "$GITHUB_PATH"

- name: Configure npm
run: npm config set shrinkwrap false

- name: Remove npm module(s) ${{ matrix.npm-rm }}
run: npm rm --silent --save-dev ${{ matrix.npm-rm }}
if: matrix.npm-rm != ''

- name: Install npm module(s) ${{ matrix.npm-i }}
run: npm install --save-dev ${{ matrix.npm-i }}
if: matrix.npm-i != ''

- name: Setup Node.js version-specific dependencies
shell: bash
run: |
# eslint for linting
# - remove on Node.js < 8
if [[ "$(cut -d. -f1 <<< "${{ matrix.node-version }}")" -lt 10 ]]; then
node -pe 'Object.keys(require("./package").devDependencies).join("\n")' | \
grep -E '^eslint(-|$)' | \
sort -r | \
xargs -n1 npm rm --silent --save-dev
fi
npm config set package-lock false

- name: Install Node.js dependencies
run: npm install
Expand Down
23 changes: 23 additions & 0 deletions HISTORY.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1.0.0-beta.2 / 2024-03-04
=========================

* Changes from 0.18.0

1.0.0-beta.1 / 2022-02-04
=========================

* Drop support for Node.js 0.8
* Remove `hidden` option -- use `dotfiles` option
* Remove `from` alias to `root` -- use `root` directly
* Remove `send.etag()` -- use `etag` in `options`
* Remove `send.index()` -- use `index` in `options`
* Remove `send.maxage()` -- use `maxAge` in `options`
* Remove `send.root()` -- use `root` in `options`
* Use `mime-types` for file to content type mapping -- removed `send.mime`
* deps: debug@3.1.0
- Add `DEBUG_HIDE_DATE` environment variable
- Change timer to per-namespace instead of global
- Change non-TTY date format
- Remove `DEBUG_FD` environment variable support
- Support 256 namespace colors

0.18.0 / 2022-03-23
===================

Expand Down
27 changes: 10 additions & 17 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -133,15 +133,6 @@ The `SendStream` is an event emitter and will emit the following events:
The `pipe` method is used to pipe the response into the Node.js HTTP response
object, typically `send(req, path, options).pipe(res)`.

### .mime

The `mime` export is the global instance of of the
[`mime` npm module](https://www.npmjs.com/package/mime).

This is used to configure the MIME types that are associated with file extensions
as well as other options for how to resolve the MIME type of a file (like the
default type to use for an unknown file extension).

## Error-handling

By default when no `error` listeners are present an automatic response will be
Expand DownExpand Up@@ -210,20 +201,22 @@ server.listen(3000)
### Custom file types

```js
var extname = require('path').extname
var http = require('http')
var parseUrl = require('parseurl')
var send = require('send')

// Default unknown types to text/plain
send.mime.default_type = 'text/plain'

// Add a custom type
send.mime.define({
'application/x-my-type': ['x-mt', 'x-mtt']
})

var server = http.createServer(function onRequest (req, res) {
send(req, parseUrl(req).pathname, { root: '/www/public' })
.on('headers', function (res, path) {
switch (extname(path)) {
case '.x-mt':
case '.x-mtt':
// custom type for these extensions
res.setHeader('Content-Type', 'application/x-my-type')
break
}
})
.pipe(res)
})

Expand Down
Loading