@posthog/wizard
Version:
The PostHog wizard helps you to configure your project
86 lines • 3.69 kB
JavaScript
"use strict";
/* eslint-disable max-lines */
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.runAstroWizard = runAstroWizard;
const clack_utils_1 = require("../utils/clack-utils");
const package_json_1 = require("../utils/package-json");
const clack_1 = __importDefault(require("../utils/clack"));
const constants_1 = require("../lib/constants");
const docs_1 = require("./docs");
const analytics_1 = require("../utils/analytics");
const file_utils_1 = require("../utils/file-utils");
const clack_utils_2 = require("../utils/clack-utils");
const messages_1 = require("../lib/messages");
const steps_1 = require("../steps");
async function runAstroWizard(options) {
(0, clack_utils_1.printWelcome)({
wizardName: 'PostHog Astro wizard',
});
const aiConsent = await (0, clack_utils_1.askForAIConsent)(options);
if (!aiConsent) {
await (0, clack_utils_1.abort)('The Astro wizard requires AI to get setup right now. Please view the docs to setup Astro manually instead: https://posthog.com/docs/libraries/js', 0);
}
const cloudRegion = options.cloudRegion ?? (await (0, clack_utils_2.askForCloudRegion)());
await (0, clack_utils_1.confirmContinueIfNoOrDirtyGitRepo)(options);
const packageJson = await (0, clack_utils_1.getPackageDotJson)(options);
await (0, clack_utils_1.ensurePackageIsInstalled)(packageJson, 'astro', 'Astro');
const astroVersion = (0, package_json_1.getPackageVersion)('astro', packageJson);
if (astroVersion) {
analytics_1.analytics.setTag('astro-version', astroVersion);
}
const { projectApiKey, wizardHash, host } = await (0, clack_utils_1.getOrAskForProjectData)({
...options,
cloudRegion,
});
clack_1.default.log.info('Heading to include the PostHogSnippet in your Astro project');
const relevantFiles = await (0, file_utils_1.getRelevantFilesForIntegration)({
installDir: options.installDir,
integration: constants_1.Integration.astro,
});
const installationDocumentation = (0, docs_1.getAstroDocumentation)({
projectApiKey,
host,
});
clack_1.default.log.info('Reviewing PostHog documentation for Astro');
const filesToChange = await (0, file_utils_1.getFilesToChange)({
integration: constants_1.Integration.astro,
relevantFiles,
documentation: installationDocumentation,
wizardHash,
cloudRegion,
});
await (0, file_utils_1.generateFileChangesForIntegration)({
integration: constants_1.Integration.astro,
filesToChange,
wizardHash,
installDir: options.installDir,
documentation: installationDocumentation,
cloudRegion,
});
await (0, steps_1.runPrettierStep)({
installDir: options.installDir,
integration: constants_1.Integration.astro,
});
const addedEditorRules = await (0, steps_1.addEditorRulesStep)({
installDir: options.installDir,
rulesName: 'astro-rules.md',
integration: constants_1.Integration.astro,
});
await (0, steps_1.addMCPServerToClientsStep)({
cloudRegion,
integration: constants_1.Integration.astro,
});
const outroMessage = (0, messages_1.getOutroMessage)({
options,
integration: constants_1.Integration.astro,
cloudRegion,
addedEditorRules,
uploadedEnvVars: [],
});
clack_1.default.outro(outroMessage);
await analytics_1.analytics.shutdown('success');
}
//# sourceMappingURL=astro-wizard.js.map