mirror of
https://github.com/LukeHagar/vercel.git
synced 2025-12-07 12:57:47 +00:00
* Move now-cli to /packages/now-cli * Fix .gitignore paths * Add now-client * Add lerna to top level * Add scripts * Update codeowners * Fix `/now-cli/build.ts` script * Fix circleci path to artifacts * Use relative paths * Fix path to scripts * Add test-lint script * Add missing return type * Fix typo in test-lint * Fix string match in shell scripts * Fix path to hugo * Add package node_modules * Delete lock files in packages, use root yarn.lock * Add missing b.js file * Add test-integration-now-dev script * Add missing test files * Add missing integration test script * Add missing test files * Delete travis.yml * Fix ts-jest in now-client * Add support for Node 8 (ES2015 target) * Add support for Node 8 * Add polyfill for Node 8 * Fix polyfill for Node 8 * Only run coverage for now-cli * Add packages from now-builders * Run integration tests for builders * Add node_modules to cache * Add root readme.md * Move readme to top level * Add yarn bootstrap * Add bootstrap step * Add dist to `persist_to_workspace` * Fix 08-yarn-npm integration test * Remove duplicate path * Change stdio to inherit * Add back store_artifacts * testing - remove bootstrap step * Add back now-build-utils * Remove bootstrap step * Fix test again * Add console.log() * Fix lint * Use local ncc version * Install go * Revert changes to stdio and console.log() * Add missing now-go test * Add missing integration tests * Add --runInBand flag * Fix now-node-bridge persistence * Add missing symlinks * Add codeowners * Consolidate into single run.sh function * Run uniq * Fix typo * Change now-routing-utils to test-unit * Special case test for node 8 * Add docs from builders * Only run script for modified packages * Add test-integration-once which only runs once * Fix set intersection
47 lines
1.6 KiB
JavaScript
47 lines
1.6 KiB
JavaScript
const path = require('path');
|
|
const { mkdirp, copyFile } = require('fs-extra');
|
|
|
|
const glob = require('@now/build-utils/fs/glob'); // eslint-disable-line import/no-extraneous-dependencies
|
|
const download = require('@now/build-utils/fs/download'); // eslint-disable-line import/no-extraneous-dependencies
|
|
const { createLambda } = require('@now/build-utils/lambda'); // eslint-disable-line import/no-extraneous-dependencies
|
|
const getWritableDirectory = require('@now/build-utils/fs/get-writable-directory'); // eslint-disable-line import/no-extraneous-dependencies
|
|
const { shouldServe } = require('@now/build-utils'); // eslint-disable-line import/no-extraneous-dependencies
|
|
|
|
exports.analyze = ({ files, entrypoint }) => files[entrypoint].digest;
|
|
|
|
exports.build = async ({
|
|
workPath, files, entrypoint, meta,
|
|
}) => {
|
|
console.log('downloading files...');
|
|
const outDir = await getWritableDirectory();
|
|
|
|
await download(files, workPath, meta);
|
|
|
|
const handlerPath = path.join(__dirname, 'handler');
|
|
await copyFile(handlerPath, path.join(outDir, 'handler'));
|
|
|
|
const entrypointOutDir = path.join(outDir, path.dirname(entrypoint));
|
|
await mkdirp(entrypointOutDir);
|
|
|
|
// For now only the entrypoint file is copied into the lambda
|
|
await copyFile(
|
|
path.join(workPath, entrypoint),
|
|
path.join(outDir, entrypoint),
|
|
);
|
|
|
|
const lambda = await createLambda({
|
|
files: await glob('**', outDir),
|
|
handler: 'handler',
|
|
runtime: 'go1.x',
|
|
environment: {
|
|
SCRIPT_FILENAME: entrypoint,
|
|
},
|
|
});
|
|
|
|
return {
|
|
[entrypoint]: lambda,
|
|
};
|
|
};
|
|
|
|
exports.shouldServe = shouldServe;
|