Skip to content

Commit 01bb749

Browse files
authored
Leap year maintenance
* Require Node.js 10 * Test Node.js 10, 12 and 13 using GitHub Actions * Update dependencies * Configure nyc * Disable lock files * Modernize implementation Match documentation and only fall through to underlying implementation when null is returned.
1 parent 1a760de commit 01bb749

File tree

7 files changed

+51
-33
lines changed

7 files changed

+51
-33
lines changed

.github/workflows/ci.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Install and test
2+
on:
3+
push:
4+
branches:
5+
- master
6+
pull_request:
7+
paths-ignore:
8+
- '*.md'
9+
jobs:
10+
nodejs:
11+
name: Node.js
12+
runs-on: ubuntu-latest
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
node-version: [^10, ^12, ^13]
17+
steps:
18+
- uses: actions/checkout@v1
19+
with:
20+
fetch-depth: 1
21+
- uses: actions/setup-node@v1
22+
with:
23+
node-version: ${{ matrix.node-version }}
24+
- run: npm install --no-audit
25+
- run: npm test

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package-lock=false

.travis.yml

Lines changed: 0 additions & 9 deletions
This file was deleted.

index.js

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
11
'use strict';
22
module.exports = install;
33

4-
function install(precompile, ext, extensions) {
5-
ext = ext || '.js';
6-
extensions = extensions || require.extensions;
7-
8-
var oldExtension = extensions[ext];
4+
function install(precompile, ext = '.js', extensions = require.extensions) { // eslint-disable-line node/no-deprecated-api
5+
const {[ext]: oldExtension} = extensions;
96

107
extensions[ext] = function (module, filename) {
11-
var source = precompile(filename);
12-
13-
if (source) {
8+
const source = precompile(filename);
9+
if (source === null) {
10+
Reflect.apply(oldExtension, extensions, [module, filename]);
11+
} else {
1412
module._compile(source, filename);
15-
return;
1613
}
17-
18-
oldExtension(module, filename);
1914
};
2015
}

package.json

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
"url": "github.com/jamestalmage"
1111
},
1212
"engines": {
13-
"node": ">=0.10.0"
13+
"node": ">=10"
1414
},
1515
"scripts": {
16-
"test": "xo && nyc --reporter=lcov --reporter=text ava"
16+
"test": "xo && nyc ava"
1717
},
1818
"files": [
1919
"index.js"
@@ -25,10 +25,16 @@
2525
"precompile"
2626
],
2727
"devDependencies": {
28-
"ava": "^0.14.0",
29-
"coveralls": "^2.11.6",
28+
"ava": "^3.2.0",
3029
"fake-module-system": "^0.3.0",
31-
"nyc": "^6.2.1",
32-
"xo": "^0.15.1"
30+
"nyc": "^15.0.0",
31+
"xo": "^0.25.3"
32+
},
33+
"nyc": {
34+
"reporter": [
35+
"html",
36+
"lcov",
37+
"text"
38+
]
3339
}
3440
}

readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# require-precompiled [![Build Status](https://travis-ci.org/avajs/require-precompiled.svg?branch=master)](https://travis-ci.org/avajs/require-precompiled) [![Coverage Status](https://coveralls.io/repos/github/avajs/require-precompiled/badge.svg?branch=master)](https://coveralls.io/github/avajs/require-precompiled?branch=master)
1+
# require-precompiled
22

33
> Require extension that allows for caching/precompiling
44

test.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import path from 'path';
2-
import test from 'ava';
3-
import System from 'fake-module-system';
4-
import install from './';
1+
const path = require('path');
2+
const test = require('ava');
3+
const System = require('fake-module-system');
4+
const install = require('.');
55

66
test('module is compiled with source returned from precompiler', t => {
77
const system = new System({
@@ -19,14 +19,14 @@ test('module is compiled with source returned from precompiler', t => {
1919
t.is(module.file, '/foo.js');
2020
});
2121

22-
test('passes through to underlying extension precompiler returns undefined', t => {
22+
test('passes through to underlying extension precompiler returns null', t => {
2323
const system = new System({
2424
'/foo.js': 'normal foo'
2525
});
2626

2727
install(filename => {
2828
t.is(filename, '/foo.js');
29-
return;
29+
return null;
3030
}, '.js', system.extensions);
3131

3232
const module = system.load('/foo.js');

0 commit comments

Comments
 (0)