Browse Source

Set package.json on the fly

master
Leo Lamprecht 8 years ago
parent
commit
6159263d8f
No known key found for this signature in database GPG Key ID: EF804E3FF4BBA8AB
  1. 27
      lib/hash.js
  2. 2
      lib/index.js

27
lib/hash.js

@ -1,20 +1,41 @@
// Native
import {createHash} from 'crypto'
import path from 'path'
// Packages
import {readFile} from 'fs-promise'
/**
const listPackage = {
name: 'static',
version: '0.0.0',
scripts: {
start: 'list ./content'
},
dependencies: {
list: 'latest'
}
}
/**
* Computes hashes for the contents of each file given.
*
* @param {Array} of {String} full paths
* @return {Map}
*/
export default async function hashes(files) {
export default async function hashes(files, isStatic) {
const map = new Map()
await Promise.all(files.map(async name => {
const data = await readFile(name)
const filename = path.basename(name)
let data
if (isStatic && filename === 'package.json') {
const packageString = JSON.stringify(listPackage, null, 2)
data = Buffer.from(packageString)
} else {
data = await readFile(name)
}
const h = hash(data)
const entry = map.get(h)
if (entry) {

2
lib/index.js

@ -102,7 +102,7 @@ export default class Now extends EventEmitter {
console.time('> [debug] Computing hashes')
}
const hashes = await hash(files)
const hashes = await hash(files, isStatic)
if (this._debug) {
console.timeEnd('> [debug] Computing hashes')

Loading…
Cancel
Save