|
|
|
import fs from 'fs-promise';
|
|
|
|
import getFiles from './get-files';
|
|
|
|
import hash from './hash';
|
|
|
|
import Agent from './Agent';
|
|
|
|
import { resolve } from 'path';
|
|
|
|
|
|
|
|
export default async function now (path, token, { debug }) {
|
|
|
|
try {
|
|
|
|
await fs.stat(path);
|
|
|
|
} catch (err) {
|
|
|
|
throw new Error(`Could not read directory ${path}.`);
|
|
|
|
}
|
|
|
|
|
|
|
|
let pkg;
|
|
|
|
try {
|
|
|
|
pkg = await fs.readFile(resolve(path, 'package.json'));
|
|
|
|
pkg = JSON.parse(pkg);
|
|
|
|
} catch (err) {
|
|
|
|
throw new Error(`Failed to read JSON in "${path}/package.json"`);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (debug) console.time('> [debug] Getting files');
|
|
|
|
const files = await getFiles(path, pkg);
|
|
|
|
if (debug) console.timeEnd('> [debug] Getting files');
|
|
|
|
|
|
|
|
if (debug) console.time('> [debug] Computing hashes');
|
|
|
|
const hashes = await hash(files);
|
|
|
|
if (debug) console.timeEnd('> [debug] Computing hashes');
|
|
|
|
|
|
|
|
if (debug) {
|
|
|
|
hashes.forEach((val, key) => {
|
|
|
|
console.log(`> [debug] Found "${key}" [${val}]`);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
const agent = new Agent('www.google.com');
|
|
|
|
if (debug) console.time('> [debug] http');
|
|
|
|
const res = await agent.fetch('/now/create');
|
|
|
|
if (debug) console.timeEnd('> [debug] http');
|
|
|
|
console.log(res.status);
|
|
|
|
agent.close();
|
|
|
|
|
|
|
|
return 'https://test.now.run';
|
|
|
|
}
|