UNPKG

ness

Version:

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

55 lines 6.33 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBranch = exports.getProjectName = exports.getStackId = exports.NessContext = void 0; const path_1 = __importDefault(require("path")); const git_branch_1 = __importDefault(require("git-branch")); const react_1 = __importDefault(require("react")); const file_1 = require("./utils/file"); exports.NessContext = react_1.default.createContext({}); /** * Get a valid, stable stack ID for this stack in this project on the current branch. * * @param stack Stack name (ie, 'web', 'domain', or 'alias'). * @param entry Path to the project root. Defaults to process.cwd(). */ function getStackId(stack, entry = process.cwd()) { if (stack === 'support') return 'ness-toolkit'; return `ness-${stack}-${getProjectName(entry)}-${getBranch(entry)}`; } exports.getStackId = getStackId; /** * Get the project name. This is pulled from package.name, if package.json is * present; otherwise, the name of the current working directory is used. * * @param entry Path to the project root. Defaults to process.cwd(). */ function getProjectName(entry = process.cwd()) { var _a; const packageJson = (0, file_1.getPackageJson)(entry); const workingDir = path_1.default.basename(path_1.default.resolve(entry)); return clean((_a = packageJson === null || packageJson === void 0 ? void 0 : packageJson.name) !== null && _a !== void 0 ? _a : workingDir); } exports.getProjectName = getProjectName; /** * Get the current git branch. Defaults to 'main' if there is no git repository. * * @param entry Path to the project root. Defaults to process.cwd(). */ function getBranch(path = process.cwd()) { try { const branchName = git_branch_1.default.sync(path) || 'main'; return clean(branchName); } catch (_a) { return 'main'; } } exports.getBranch = getBranch; function clean(input) { return input === null || input === void 0 ? void 0 : input.replace(/[\W_]/g, '-'); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdEQUF1QjtBQUN2Qiw0REFBK0I7QUFFL0Isa0RBQXlCO0FBQ3pCLHVDQUEyQztBQWE5QixRQUFBLFdBQVcsR0FBRyxlQUFLLENBQUMsYUFBYSxDQUFtQixFQUFFLENBQUMsQ0FBQTtBQUVwRTs7Ozs7R0FLRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxLQUFhLEVBQUUsUUFBZ0IsT0FBTyxDQUFDLEdBQUcsRUFBRTtJQUNyRSxJQUFJLEtBQUssS0FBSyxTQUFTO1FBQUUsT0FBTyxjQUFjLENBQUE7SUFDOUMsT0FBTyxRQUFRLEtBQUssSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUE7QUFDckUsQ0FBQztBQUhELGdDQUdDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixjQUFjLENBQUMsUUFBZ0IsT0FBTyxDQUFDLEdBQUcsRUFBRTs7SUFDMUQsTUFBTSxXQUFXLEdBQUcsSUFBQSxxQkFBYyxFQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ3JELE9BQU8sS0FBSyxDQUFDLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLElBQUksbUNBQUksVUFBVSxDQUFDLENBQUE7QUFDL0MsQ0FBQztBQUpELHdDQUlDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxPQUFlLE9BQU8sQ0FBQyxHQUFHLEVBQUU7SUFDcEQsSUFBSTtRQUNGLE1BQU0sVUFBVSxHQUFHLG9CQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQTtRQUM5QyxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtLQUN6QjtJQUFDLFdBQU07UUFDTixPQUFPLE1BQU0sQ0FBQTtLQUNkO0FBQ0gsQ0FBQztBQVBELDhCQU9DO0FBRUQsU0FBUyxLQUFLLENBQUMsS0FBYztJQUMzQixPQUFPLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IGJyYW5jaCBmcm9tICdnaXQtYnJhbmNoJ1xuaW1wb3J0IHtDb21tYW5kfSBmcm9tICdjb21tYW5kZXInXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQge2dldFBhY2thZ2VKc29ufSBmcm9tICcuL3V0aWxzL2ZpbGUnXG5pbXBvcnQge05lc3NTZXR0aW5nc30gZnJvbSAnLi91dGlscy9zZXR0aW5ncydcbmltcG9ydCB7RnJhbWV3b3JrfSBmcm9tICcuL3V0aWxzJ1xuXG5leHBvcnQgdHlwZSBOZXNzQ29udGV4dFByb3BzID0ge1xuICByZWFkb25seSBjb21tYW5kPzogQ29tbWFuZFxuICByZWFkb25seSBhY2NvdW50Pzogc3RyaW5nXG4gIHJlYWRvbmx5IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgcmVhZG9ubHkgZnJhbWV3b3JrPzogRnJhbWV3b3JrXG4gIHJlYWRvbmx5IHNldHRpbmdzPzogTmVzc1NldHRpbmdzXG4gIHJlYWRvbmx5IHNldENvbnRleHQ/OiAoY29udGV4dDogTmVzc0NvbnRleHRQcm9wcykgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgTmVzc0NvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PE5lc3NDb250ZXh0UHJvcHM+KHt9KVxuXG4vKipcbiAqIEdldCBhIHZhbGlkLCBzdGFibGUgc3RhY2sgSUQgZm9yIHRoaXMgc3RhY2sgaW4gdGhpcyBwcm9qZWN0IG9uIHRoZSBjdXJyZW50IGJyYW5jaC5cbiAqXG4gKiBAcGFyYW0gc3RhY2sgU3RhY2sgbmFtZSAoaWUsICd3ZWInLCAnZG9tYWluJywgb3IgJ2FsaWFzJykuXG4gKiBAcGFyYW0gZW50cnkgUGF0aCB0byB0aGUgcHJvamVjdCByb290LiBEZWZhdWx0cyB0byBwcm9jZXNzLmN3ZCgpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhY2tJZChzdGFjazogc3RyaW5nLCBlbnRyeTogc3RyaW5nID0gcHJvY2Vzcy5jd2QoKSk6IHN0cmluZyB7XG4gIGlmIChzdGFjayA9PT0gJ3N1cHBvcnQnKSByZXR1cm4gJ25lc3MtdG9vbGtpdCdcbiAgcmV0dXJuIGBuZXNzLSR7c3RhY2t9LSR7Z2V0UHJvamVjdE5hbWUoZW50cnkpfS0ke2dldEJyYW5jaChlbnRyeSl9YFxufVxuXG4vKipcbiAqIEdldCB0aGUgcHJvamVjdCBuYW1lLiBUaGlzIGlzIHB1bGxlZCBmcm9tIHBhY2thZ2UubmFtZSwgaWYgcGFja2FnZS5qc29uIGlzXG4gKiBwcmVzZW50OyBvdGhlcndpc2UsIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGlzIHVzZWQuXG4gKlxuICogQHBhcmFtIGVudHJ5IFBhdGggdG8gdGhlIHByb2plY3Qgcm9vdC4gRGVmYXVsdHMgdG8gcHJvY2Vzcy5jd2QoKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2plY3ROYW1lKGVudHJ5OiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcGFja2FnZUpzb24gPSBnZXRQYWNrYWdlSnNvbihlbnRyeSlcbiAgY29uc3Qgd29ya2luZ0RpciA9IHBhdGguYmFzZW5hbWUocGF0aC5yZXNvbHZlKGVudHJ5KSlcbiAgcmV0dXJuIGNsZWFuKHBhY2thZ2VKc29uPy5uYW1lID8/IHdvcmtpbmdEaXIpXG59XG5cbi8qKlxuICogR2V0IHRoZSBjdXJyZW50IGdpdCBicmFuY2guIERlZmF1bHRzIHRvICdtYWluJyBpZiB0aGVyZSBpcyBubyBnaXQgcmVwb3NpdG9yeS5cbiAqXG4gKiBAcGFyYW0gZW50cnkgUGF0aCB0byB0aGUgcHJvamVjdCByb290LiBEZWZhdWx0cyB0byBwcm9jZXNzLmN3ZCgpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QnJhbmNoKHBhdGg6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGNvbnN0IGJyYW5jaE5hbWUgPSBicmFuY2guc3luYyhwYXRoKSB8fCAnbWFpbidcbiAgICByZXR1cm4gY2xlYW4oYnJhbmNoTmFtZSlcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuICdtYWluJ1xuICB9XG59XG5cbmZ1bmN0aW9uIGNsZWFuKGlucHV0Pzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGlucHV0Py5yZXBsYWNlKC9bXFxXX10vZywgJy0nKVxufVxuIl19