UNPKG

amplify-python-function-runtime-provider

Version:

Provides functionality related to functions in Python on AWS

32 lines 1.52 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.pythonBuild = void 0; const fs_extra_1 = __importDefault(require("fs-extra")); const glob_1 = require("glob"); const execa_1 = __importDefault(require("execa")); const amplify_cli_core_1 = require("@aws-amplify/amplify-cli-core"); async function pythonBuild(params) { if (!params.lastBuildTimeStamp || isBuildStale(params.srcRoot, params.lastBuildTimeStamp)) { try { await execa_1.default.command('pipenv install', { cwd: params.srcRoot, stdio: 'inherit' }); } catch (err) { throw new amplify_cli_core_1.AmplifyError('PackagingLambdaFunctionError', { message: `Failed to install dependencies in ${params.srcRoot}: ${err}` }, err); } return { rebuilt: true }; } return { rebuilt: false }; } exports.pythonBuild = pythonBuild; function isBuildStale(resourceDir, lastBuildTimeStamp) { const dirTime = new Date(fs_extra_1.default.statSync(resourceDir).mtime); if (dirTime > lastBuildTimeStamp) { return true; } const fileUpdatedAfterLastBuild = (0, glob_1.globSync)(`${resourceDir}/**`, { ignore: ['**/dist/**', '**/__pycache__/**'] }).find((file) => new Date(fs_extra_1.default.statSync(file).mtime) > lastBuildTimeStamp); return !!fileUpdatedAfterLastBuild; } //# sourceMappingURL=buildUtils.js.map