UNPKG

@posthog/wizard

Version:

The PostHog wizard helps you to configure your project

85 lines 3.11 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getNextJsRouterName = exports.IGNORE_PATTERNS = exports.NextJsRouter = void 0; exports.getNextJsVersionBucket = getNextJsVersionBucket; exports.getNextJsRouter = getNextJsRouter; const semver_1 = require("semver"); const fast_glob_1 = __importDefault(require("fast-glob")); const clack_utils_1 = require("../utils/clack-utils"); const clack_1 = __importDefault(require("../utils/clack")); const constants_1 = require("../lib/constants"); function getNextJsVersionBucket(version) { if (!version) { return 'none'; } try { const minVer = (0, semver_1.minVersion)(version); if (!minVer) { return 'invalid'; } const majorVersion = (0, semver_1.major)(minVer); if (majorVersion >= 11) { return `${majorVersion}.x`; } return '<11.0.0'; } catch { return 'unknown'; } } var NextJsRouter; (function (NextJsRouter) { NextJsRouter["APP_ROUTER"] = "app-router"; NextJsRouter["PAGES_ROUTER"] = "pages-router"; })(NextJsRouter || (exports.NextJsRouter = NextJsRouter = {})); exports.IGNORE_PATTERNS = [ '**/node_modules/**', '**/dist/**', '**/build/**', '**/public/**', '**/.next/**', ]; async function getNextJsRouter({ installDir, }) { const pagesMatches = await (0, fast_glob_1.default)('**/pages/_app.@(ts|tsx|js|jsx)', { dot: true, cwd: installDir, ignore: exports.IGNORE_PATTERNS, }); const hasPagesDir = pagesMatches.length > 0; const appMatches = await (0, fast_glob_1.default)('**/app/**/layout.@(ts|tsx|js|jsx)', { dot: true, cwd: installDir, ignore: exports.IGNORE_PATTERNS, }); const hasAppDir = appMatches.length > 0; if (hasPagesDir && !hasAppDir) { clack_1.default.log.info(`Detected ${(0, exports.getNextJsRouterName)(NextJsRouter.PAGES_ROUTER)} 📃`); return NextJsRouter.PAGES_ROUTER; } if (hasAppDir && !hasPagesDir) { clack_1.default.log.info(`Detected ${(0, exports.getNextJsRouterName)(NextJsRouter.APP_ROUTER)} 📱`); return NextJsRouter.APP_ROUTER; } const result = await (0, clack_utils_1.abortIfCancelled)(clack_1.default.select({ message: 'What router are you using?', options: [ { label: (0, exports.getNextJsRouterName)(NextJsRouter.APP_ROUTER), value: NextJsRouter.APP_ROUTER, }, { label: (0, exports.getNextJsRouterName)(NextJsRouter.PAGES_ROUTER), value: NextJsRouter.PAGES_ROUTER, }, ], }), constants_1.Integration.nextjs); return result; } const getNextJsRouterName = (router) => { return router === NextJsRouter.APP_ROUTER ? 'app router' : 'pages router'; }; exports.getNextJsRouterName = getNextJsRouterName; //# sourceMappingURL=utils.js.map