UNPKG

ness

Version:

✪ No-effort static sites deployed to your AWS account.

111 lines 12.8 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.detectFramework = exports.match = void 0; const file = __importStar(require("./file")); const fs = __importStar(require("fs-extra")); const path = __importStar(require("path")); const detectors = [ { framework: { name: 'gatsby', dist: 'public', build: 'gatsby build' }, requiredFiles: ['package.json', 'gatsby-config.js'], requiredDependencies: ['gatsby'], }, { framework: { name: 'hugo', dist: 'public', build: 'hugo' }, requiredFiles: ['config.toml', 'config.yaml'], }, { framework: { name: 'next', dist: '.next', build: 'next build' }, requiredFiles: ['package.json'], requiredDependencies: ['next'], }, { framework: { name: 'nuxt', dist: 'dist', build: 'nuxt' }, requiredFiles: ['package.json'], requiredDependencies: ['nuxt'], }, ]; async function match(detector, entry = process.cwd()) { var _a, _b; const { dependencies, devDependencies } = getPackageJson(entry); for (const dependency of (_a = detector.requiredDependencies) !== null && _a !== void 0 ? _a : []) { const inDependencies = dependencies && dependencies[dependency]; const inDevDependencies = devDependencies && devDependencies[dependency]; if (!inDependencies && !inDevDependencies) return false; } for (const filename of (_b = detector.requiredFiles) !== null && _b !== void 0 ? _b : []) { const fileExists = fs.pathExistsSync(path.resolve(entry, filename)); if (!fileExists) return false; } return true; } exports.match = match; async function getBuildScript(targetValue, entry = process.cwd()) { const { scripts } = getPackageJson(entry); if (!scripts) return undefined; for (const [key, value] of Object.entries(scripts)) { if (value.includes(targetValue)) { const command = await getPackageManager(entry); return `${command} ${key}`; } } return undefined; } let packageManager = {}; let pkg = {}; async function getPackageManager(entry = process.cwd()) { const existing = packageManager[entry]; if (existing) return existing; const yarnLock = await fs.pathExists(path.resolve(entry, 'yarn.lock')); packageManager[entry] = yarnLock ? 'yarn' : 'npm run'; return packageManager[entry]; } function getPackageJson(entry = process.cwd()) { const existing = pkg[entry]; if (existing) return existing; pkg[entry] = file.getPackageJson(entry); return pkg[entry]; } /** * Detect the framework this project is based on. */ async function detectFramework(entry = process.cwd()) { for (const detector of detectors) { if (await match(detector, entry)) { const { framework } = detector; // We want the npm/yarn build script const build = framework.build ? await getBuildScript(framework.build, entry) : undefined; return { ...framework, build, }; } } return undefined; } exports.detectFramework = detectFramework; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3Jrcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9mcmFtZXdvcmtzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBOEI7QUFDOUIsNkNBQThCO0FBQzlCLDJDQUE0QjtBQVE1QixNQUFNLFNBQVMsR0FBNkI7SUFDMUM7UUFDRSxTQUFTLEVBQUUsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBQztRQUNsRSxhQUFhLEVBQUUsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUM7UUFDbkQsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7S0FDakM7SUFDRDtRQUNFLFNBQVMsRUFBRSxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDO1FBQ3hELGFBQWEsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUM7S0FDOUM7SUFDRDtRQUNFLFNBQVMsRUFBRSxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFDO1FBQzdELGFBQWEsRUFBRSxDQUFDLGNBQWMsQ0FBQztRQUMvQixvQkFBb0IsRUFBRSxDQUFDLE1BQU0sQ0FBQztLQUMvQjtJQUNEO1FBQ0UsU0FBUyxFQUFFLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUM7UUFDdEQsYUFBYSxFQUFFLENBQUMsY0FBYyxDQUFDO1FBQy9CLG9CQUFvQixFQUFFLENBQUMsTUFBTSxDQUFDO0tBQy9CO0NBQ0YsQ0FBQTtBQUVNLEtBQUssVUFBVSxLQUFLLENBQ3pCLFFBQTJCLEVBQzNCLFFBQWdCLE9BQU8sQ0FBQyxHQUFHLEVBQUU7O0lBRTdCLE1BQU0sRUFB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QyxHQUFHLFFBQVEsQ0FBQTtZQUM1QixvQ0FBb0M7WUFDcEMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxjQUFjLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO1lBQ3hGLE9BQU87Z0JBQ0wsR0FBRyxTQUFTO2dCQUNaLEtBQUs7YUFDTixDQUFBO1NBQ0Y7S0FDRjtJQUVELE9BQU8sU0FBUyxDQUFBO0FBQ2xCLENBQUM7QUFoQkQsMENBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZmlsZSBmcm9tICcuL2ZpbGUnXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSdcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCdcblxuaW50ZXJmYWNlIEZyYW1ld29ya0RldGVjdG9yIHtcbiAgcmVhZG9ubHkgcmVxdWlyZWREZXBlbmRlbmNpZXM/OiBBcnJheTxzdHJpbmc+XG4gIHJlYWRvbmx5IHJlcXVpcmVkRmlsZXM/OiBBcnJheTxzdHJpbmc+XG4gIHJlYWRvbmx5IGZyYW1ld29yazogRnJhbWV3b3JrXG59XG5cbmNvbnN0IGRldGVjdG9yczogQXJyYXk8RnJhbWV3b3JrRGV0ZWN0b3I+ID0gW1xuICB7XG4gICAgZnJhbWV3b3JrOiB7bmFtZTogJ2dhdHNieScsIGRpc3Q6ICdwdWJsaWMnLCBidWlsZDogJ2dhdHNieSBidWlsZCd9LFxuICAgIHJlcXVpcmVkRmlsZXM6IFsncGFja2FnZS5qc29uJywgJ2dhdHNieS1jb25maWcuanMnXSxcbiAgICByZXF1aXJlZERlcGVuZGVuY2llczogWydnYXRzYnknXSxcbiAgfSxcbiAge1xuICAgIGZyYW1ld29yazoge25hbWU6ICdodWdvJywgZGlzdDogJ3B1YmxpYycsIGJ1aWxkOiAnaHVnbyd9LFxuICAgIHJlcXVpcmVkRmlsZXM6IFsnY29uZmlnLnRvbWwnLCAnY29uZmlnLnlhbWwnXSxcbiAgfSxcbiAge1xuICAgIGZyYW1ld29yazoge25hbWU6ICduZXh0JywgZGlzdDogJy5uZXh0JywgYnVpbGQ6ICduZXh0IGJ1aWxkJ30sXG4gICAgcmVxdWlyZWRGaWxlczogWydwYWNrYWdlLmpzb24nXSxcbiAgICByZXF1aXJlZERlcGVuZGVuY2llczogWyduZXh0J10sXG4gIH0sXG4gIHtcbiAgICBmcmFtZXdvcms6IHtuYW1lOiAnbnV4dCcsIGRpc3Q6ICdkaXN0JywgYnVpbGQ6ICdudXh0J30sXG4gICAgcmVxdWlyZWRGaWxlczogWydwYWNrYWdlLmpzb24nXSxcbiAgICByZXF1aXJlZERlcGVuZGVuY2llczogWydudXh0J10sXG4gIH0sXG5dXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYXRjaChcbiAgZGV0ZWN0b3I6IEZyYW1ld29ya0RldGVjdG9yLFxuICBlbnRyeTogc3RyaW5nID0gcHJvY2Vzcy5jd2QoKSxcbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCB7ZGVwZW5kZW5jaWVzLCBkZXZEZXBlbmRlbmNpZXN9ID0gZ2V0UGFja2FnZUpzb24oZW50cnkpXG4gIGZvciAoY29uc3QgZGVwZW5kZW5jeSBvZiBkZXRlY3Rvci5yZXF1aXJlZERlcGVuZGVuY2llcyA/PyBbXSkge1xuICAgIGNvbnN0IGluRGVwZW5kZW5jaWVzID0gZGVwZW5kZW5jaWVzICYmIGRlcGVuZGVuY2llc1tkZXBlbmRlbmN5XVxuICAgIGNvbnN0IGluRGV2RGVwZW5kZW5jaWVzID0gZGV2RGVwZW5kZW5jaWVzICYmIGRldkRlcGVuZGVuY2llc1tkZXBlbmRlbmN5XVxuICAgIGlmICghaW5EZXBlbmRlbmNpZXMgJiYgIWluRGV2RGVwZW5kZW5jaWVzKSByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgZGV0ZWN0b3IucmVxdWlyZWRGaWxlcyA/PyBbXSkge1xuICAgIGNvbnN0IGZpbGVFeGlzdHMgPSBmcy5wYXRoRXhpc3RzU3luYyhwYXRoLnJlc29sdmUoZW50cnksIGZpbGVuYW1lKSlcbiAgICBpZiAoIWZpbGVFeGlzdHMpIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QnVpbGRTY3JpcHQoXG4gIHRhcmdldFZhbHVlOiBzdHJpbmcsXG4gIGVudHJ5OiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3Qge3NjcmlwdHN9OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gZ2V0UGFja2FnZUpzb24oZW50cnkpXG4gIGlmICghc2NyaXB0cykgcmV0dXJuIHVuZGVmaW5lZFxuXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHNjcmlwdHMpKSB7XG4gICAgaWYgKHZhbHVlLmluY2x1ZGVzKHRhcmdldFZhbHVlKSkge1xuICAgICAgY29uc3QgY29tbWFuZCA9IGF3YWl0IGdldFBhY2thZ2VNYW5hZ2VyKGVudHJ5KVxuICAgICAgcmV0dXJuIGAke2NvbW1hbmR9ICR7a2V5fWBcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbmxldCBwYWNrYWdlTWFuYWdlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9XG5sZXQgcGtnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFBhY2thZ2VNYW5hZ2VyKGVudHJ5OiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgZXhpc3RpbmcgPSBwYWNrYWdlTWFuYWdlcltlbnRyeV1cbiAgaWYgKGV4aXN0aW5nKSByZXR1cm4gZXhpc3RpbmdcblxuICBjb25zdCB5YXJuTG9jayA9IGF3YWl0IGZzLnBhdGhFeGlzdHMocGF0aC5yZXNvbHZlKGVudHJ5LCAneWFybi5sb2NrJykpXG4gIHBhY2thZ2VNYW5hZ2VyW2VudHJ5XSA9IHlhcm5Mb2NrID8gJ3lhcm4nIDogJ25wbSBydW4nXG4gIHJldHVybiBwYWNrYWdlTWFuYWdlcltlbnRyeV1cbn1cblxuZnVuY3Rpb24gZ2V0UGFja2FnZUpzb24oZW50cnk6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCkpOiBhbnkge1xuICBjb25zdCBleGlzdGluZyA9IHBrZ1tlbnRyeV1cbiAgaWYgKGV4aXN0aW5nKSByZXR1cm4gZXhpc3RpbmdcblxuICBwa2dbZW50cnldID0gZmlsZS5nZXRQYWNrYWdlSnNvbihlbnRyeSlcbiAgcmV0dXJuIHBrZ1tlbnRyeV1cbn1cblxuLyoqXG4gKiBBIHN0YXRpYyBzaXRlIGdlbmVyYXRvciBmcmFtZXdvcmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnJhbWV3b3JrIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmcmFtZXdvcmsuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmdcblxuICAvKipcbiAgICogVGhlIHB1Ymxpc2ggZGlyZWN0b3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdDogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRoZSBidWlsZCBjb21tYW5kIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHN0YXRpYyBzaXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGJ1aWxkIGNvbW1hbmQgdW5rbm93blxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGQ/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBEZXRlY3QgdGhlIGZyYW1ld29yayB0aGlzIHByb2plY3QgaXMgYmFzZWQgb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZXRlY3RGcmFtZXdvcmsoXG4gIGVudHJ5OiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpLFxuKTogUHJvbWlzZTxGcmFtZXdvcmsgfCB1bmRlZmluZWQ+IHtcbiAgZm9yIChjb25zdCBkZXRlY3RvciBvZiBkZXRlY3RvcnMpIHtcbiAgICBpZiAoYXdhaXQgbWF0Y2goZGV0ZWN0b3IsIGVudHJ5KSkge1xuICAgICAgY29uc3Qge2ZyYW1ld29ya30gPSBkZXRlY3RvclxuICAgICAgLy8gV2Ugd2FudCB0aGUgbnBtL3lhcm4gYnVpbGQgc2NyaXB0XG4gICAgICBjb25zdCBidWlsZCA9IGZyYW1ld29yay5idWlsZCA/IGF3YWl0IGdldEJ1aWxkU2NyaXB0KGZyYW1ld29yay5idWlsZCwgZW50cnkpIDogdW5kZWZpbmVkXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5mcmFtZXdvcmssXG4gICAgICAgIGJ1aWxkLFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWRcbn1cbiJdfQ==