Skip to content

Commit

Permalink
feat: support module.hot.accept
Browse files Browse the repository at this point in the history
adds support for part of webpack's module.hot.accept API.  The signature is
`(dependencies: string | string[], callback: () => void) => void`.
  • Loading branch information
jedwards1211 committed May 12, 2024
1 parent d540e16 commit d9b8008
Show file tree
Hide file tree
Showing 18 changed files with 1,071 additions and 55 deletions.
17 changes: 17 additions & 0 deletions fixture/a.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const { inspect } = require('util')
let c = require('./c')
let e = require('./e')
const f = require('./f')

function logStatus() {
console.log('in a', inspect({ c, e, f }, { depth: 100 }))
}

setInterval(logStatus, 1000)

if (module.hot) {
module.hot.accept(['./c', './e'], () => {
c = require('./c')
e = require('./e')
})
}
2 changes: 2 additions & 0 deletions fixture/c.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
const d = require('./d')
module.exports = { d }
2 changes: 2 additions & 0 deletions fixture/d.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
const k = require('./k')
module.exports = { k, d: 'dvalue' }
8 changes: 8 additions & 0 deletions fixture/e.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
let i = require('./i')
let j = require('./j')

module.exports = { i, j }

if (module.hot) {
module.hot.accept('./i', () => (i = module.exports.i = require('./i')))
}
2 changes: 2 additions & 0 deletions fixture/f.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
const g = require('./g')
module.exports = { g }
1 change: 1 addition & 0 deletions fixture/g.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = 'gvalue'
2 changes: 2 additions & 0 deletions fixture/h.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
const g = require('./g')
module.exports = { g }
2 changes: 2 additions & 0 deletions fixture/i.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
let h = require('./h')
module.exports = { h }
3 changes: 3 additions & 0 deletions fixture/j.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
const h = require('./h')
const k = require('./k')
module.exports = { h, k }
1 change: 1 addition & 0 deletions fixture/k.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = 'kvalue'
7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
},
"homepage": "https://github.com/jedwards1211/smart-restart#readme",
"devDependencies": {
"@babel/node": "^7.23.9",
"@babel/plugin-syntax-flow": "^7.14.5",
"@babel/plugin-transform-react-jsx": "^7.14.9",
"@jcoreio/eslint-plugin-implicit-dependencies": "^1.1.1",
Expand All @@ -38,18 +39,20 @@
"@jcoreio/toolchain-mocha": "^4.2.0",
"@jcoreio/toolchain-semantic-release": "^4.2.0",
"@jcoreio/toolchain-typescript": "^4.2.0",
"@types/chai": "^4.0.0",
"@types/debug": "^4.1.1",
"@types/lodash": "^4.17.1",
"@types/mocha": "^10.0.6",
"@typescript-eslint/eslint-plugin": "^7.6.0",
"@typescript-eslint/parser": "^7.6.0",
"chai": "^4.3.7",
"chai": "^4.4.1",
"cross-env": "^5.2.0",
"eslint": "^8.56.0",
"eslint-config-prettier": "^3.3.0",
"eslint-plugin-flowtype": "^8.0.3",
"eslint-plugin-no-only-tests": "^3.1.0",
"flow-bin": "^0.129.0",
"mocha": "^10.2.0",
"mocha": "^10.4.0",
"typescript": "^5.1.0"
},
"dependencies": {
Expand Down
Loading

0 comments on commit d9b8008

Please sign in to comment.