UNPKG

@posthog/wizard

Version:

The PostHog wizard helps you to configure your project

121 lines 5.55 kB
"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.runSvelteWizard = runSvelteWizard; 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 add_editor_rules_1 = require("../steps/add-editor-rules"); const messages_1 = require("../lib/messages"); const steps_1 = require("../steps"); async function runSvelteWizard(options) { (0, clack_utils_1.printWelcome)({ wizardName: 'PostHog Svelte wizard', }); const aiConsent = await (0, clack_utils_1.askForAIConsent)(options); if (!aiConsent) { await (0, clack_utils_1.abort)('The Svelte wizard requires AI to get setup right now. Please view the docs to setup Svelte manually instead: https://posthog.com/docs/libraries/svelte', 0); } const cloudRegion = options.cloudRegion ?? (await (0, clack_utils_2.askForCloudRegion)()); const typeScriptDetected = (0, clack_utils_1.isUsingTypeScript)(options); await (0, clack_utils_1.confirmContinueIfNoOrDirtyGitRepo)(options); const packageJson = await (0, clack_utils_1.getPackageDotJson)(options); await (0, clack_utils_1.ensurePackageIsInstalled)(packageJson, '@sveltejs/kit', '@sveltejs/kit'); const svelteVersion = (0, package_json_1.getPackageVersion)('@sveltejs/kit', packageJson); if (svelteVersion) { analytics_1.analytics.setTag('svelte-version', svelteVersion); } const { projectApiKey, accessToken, host, projectId } = await (0, clack_utils_1.getOrAskForProjectData)({ ...options, cloudRegion, }); const sdkAlreadyInstalled = (0, package_json_1.hasPackageInstalled)('posthog-js', packageJson); analytics_1.analytics.setTag('sdk-already-installed', sdkAlreadyInstalled); const { packageManager: packageManagerFromInstallStep } = await (0, clack_utils_1.installPackage)({ packageName: 'posthog-js', packageNameDisplayLabel: 'posthog-js', alreadyInstalled: !!packageJson?.dependencies?.['posthog-js'], forceInstall: options.forceInstall, askBeforeUpdating: false, installDir: options.installDir, integration: constants_1.Integration.svelte, }); await (0, clack_utils_1.installPackage)({ packageName: 'posthog-node', packageNameDisplayLabel: 'posthog-node', packageManager: packageManagerFromInstallStep, alreadyInstalled: !!packageJson?.dependencies?.['posthog-node'], forceInstall: options.forceInstall, askBeforeUpdating: false, installDir: options.installDir, integration: constants_1.Integration.svelte, }); const relevantFiles = await (0, file_utils_1.getRelevantFilesForIntegration)({ installDir: options.installDir, integration: constants_1.Integration.svelte, }); const installationDocumentation = (0, docs_1.getSvelteDocumentation)({ language: typeScriptDetected ? 'typescript' : 'javascript', }); clack_1.default.log.info(`Reviewing PostHog documentation for Svelte`); const filesToChange = await (0, file_utils_1.getFilesToChange)({ integration: constants_1.Integration.svelte, relevantFiles, documentation: installationDocumentation, accessToken, cloudRegion, projectId, }); await (0, file_utils_1.generateFileChangesForIntegration)({ integration: constants_1.Integration.svelte, filesToChange, accessToken, installDir: options.installDir, documentation: installationDocumentation, cloudRegion, projectId, }); const { relativeEnvFilePath, addedEnvVariables } = await (0, steps_1.addOrUpdateEnvironmentVariablesStep)({ variables: { ['PUBLIC_POSTHOG_KEY']: projectApiKey, ['PUBLIC_POSTHOG_HOST']: host, }, installDir: options.installDir, integration: constants_1.Integration.svelte, }); const packageManagerForOutro = packageManagerFromInstallStep ?? (await (0, clack_utils_1.getPackageManager)(options)); await (0, steps_1.runPrettierStep)({ installDir: options.installDir, integration: constants_1.Integration.svelte, }); const addedEditorRules = await (0, add_editor_rules_1.addEditorRulesStep)({ installDir: options.installDir, rulesName: 'svelte-rules.md', integration: constants_1.Integration.svelte, }); await (0, steps_1.addMCPServerToClientsStep)({ cloudRegion, integration: constants_1.Integration.svelte, ci: options.ci, }); const outroMessage = (0, messages_1.getOutroMessage)({ options, integration: constants_1.Integration.svelte, cloudRegion, addedEditorRules, packageManager: packageManagerForOutro, envFileChanged: addedEnvVariables ? relativeEnvFilePath : undefined, uploadedEnvVars: [], }); clack_1.default.outro(outroMessage); await analytics_1.analytics.shutdown('success'); } //# sourceMappingURL=svelte-wizard.js.map