|
1 | 1 | "use strict"
|
2 | 2 |
|
| 3 | +require("./_improve-rejection-crashing.js") |
| 4 | + |
3 | 5 | const {promises: fs} = require("fs")
|
4 | 6 | const path = require("path")
|
5 | 7 | const {promisify} = require("util")
|
@@ -38,7 +40,6 @@ const htmlMinifierConfig = {
|
38 | 40 | useShortDoctype: true,
|
39 | 41 | }
|
40 | 42 |
|
41 |
| -module.exports = generate |
42 | 43 | async function generate() {
|
43 | 44 | return (await makeGenerator()).generate()
|
44 | 45 | }
|
@@ -176,7 +177,7 @@ class Generator {
|
176 | 177 |
|
177 | 178 | // insert parsed HTML
|
178 | 179 | result = result.replace(/\[body\]/, markedHtml)
|
179 |
| - |
| 180 | + |
180 | 181 | // insert meta description
|
181 | 182 | result = result.replace(/\[metaDescription\]/, metaDescription)
|
182 | 183 |
|
@@ -261,45 +262,46 @@ class Generator {
|
261 | 262 | }
|
262 | 263 | }
|
263 | 264 |
|
264 |
| -/* eslint-disable global-require */ |
265 |
| -if (require.main === module) { |
266 |
| - require("./_command")({ |
267 |
| - exec: generate, |
268 |
| - async watch() { |
269 |
| - let timeout, genPromise |
270 |
| - function updateGenerator() { |
271 |
| - if (timeout == null) return |
272 |
| - clearTimeout(timeout) |
273 |
| - genPromise = new Promise((resolve) => { |
274 |
| - timeout = setTimeout(function() { |
275 |
| - timeout = null |
276 |
| - resolve(makeGenerator().then((g) => g.generate())) |
277 |
| - }, 100) |
278 |
| - }) |
279 |
| - } |
| 265 | +function watch() { |
| 266 | + let timeout, genPromise |
| 267 | + function updateGenerator() { |
| 268 | + if (timeout == null) return |
| 269 | + clearTimeout(timeout) |
| 270 | + genPromise = new Promise((resolve) => { |
| 271 | + timeout = setTimeout(function() { |
| 272 | + timeout = null |
| 273 | + resolve(makeGenerator().then((g) => g.generate())) |
| 274 | + }, 100) |
| 275 | + }) |
| 276 | + } |
280 | 277 |
|
281 |
| - async function updateFile(file) { |
282 |
| - if ((/^layout\.html$|^archive$|^nav-/).test(file)) { |
283 |
| - updateGenerator() |
284 |
| - } |
285 |
| - (await genPromise).generateSingle(file) |
286 |
| - } |
| 278 | + async function updateFile(file) { |
| 279 | + if ((/^layout\.html$|^archive$|^nav-/).test(file)) { |
| 280 | + updateGenerator() |
| 281 | + } |
| 282 | + (await genPromise).generateSingle(file) |
| 283 | + } |
287 | 284 |
|
288 |
| - async function removeFile(file) { |
289 |
| - (await genPromise).eachTarget(file, (dest) => fs.unlink(dest)) |
290 |
| - } |
| 285 | + async function removeFile(file) { |
| 286 | + (await genPromise).eachTarget(file, (dest) => fs.unlink(dest)) |
| 287 | + } |
291 | 288 |
|
292 |
| - require("chokidar").watch(r("docs"), { |
293 |
| - ignored: ["archive/**", /(^|\\|\/)\../], |
294 |
| - // This depends on `layout`/etc. existing first. |
295 |
| - ignoreInitial: true, |
296 |
| - awaitWriteFinish: true, |
297 |
| - }) |
298 |
| - .on("ready", updateGenerator) |
299 |
| - .on("add", updateFile) |
300 |
| - .on("change", updateFile) |
301 |
| - .on("unlink", removeFile) |
302 |
| - .on("unlinkDir", removeFile) |
303 |
| - }, |
| 289 | + // eslint-disable-next-line global-require |
| 290 | + require("chokidar").watch(r("docs"), { |
| 291 | + ignored: ["archive/**", /(^|\\|\/)\../], |
| 292 | + // This depends on `layout`/etc. existing first. |
| 293 | + ignoreInitial: true, |
| 294 | + awaitWriteFinish: true, |
304 | 295 | })
|
| 296 | + .on("ready", updateGenerator) |
| 297 | + .on("add", updateFile) |
| 298 | + .on("change", updateFile) |
| 299 | + .on("unlink", removeFile) |
| 300 | + .on("unlinkDir", removeFile) |
| 301 | +} |
| 302 | + |
| 303 | +if (process.argv.includes("--watch", 2)) { |
| 304 | + watch() |
| 305 | +} else { |
| 306 | + generate() |
305 | 307 | }
|
0 commit comments