@posthog/wizard 0.6.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/lib/config.d.ts +3 -3
- package/dist/src/lib/config.js +3 -3
- package/dist/src/lib/config.js.map +1 -1
- package/dist/src/lib/constants.d.ts +2 -1
- package/dist/src/lib/constants.js +3 -4
- package/dist/src/lib/constants.js.map +1 -1
- package/dist/src/lib/messages.d.ts +7 -1
- package/dist/src/lib/messages.js +19 -4
- package/dist/src/lib/messages.js.map +1 -1
- package/dist/src/nextjs/nextjs-wizard.js +11 -5
- package/dist/src/nextjs/nextjs-wizard.js.map +1 -1
- package/dist/src/react/react-wizard.js +5 -4
- package/dist/src/react/react-wizard.js.map +1 -1
- package/dist/src/react-native/react-native-wizard.js +3 -3
- package/dist/src/react-native/react-native-wizard.js.map +1 -1
- package/dist/src/run.js +2 -0
- package/dist/src/run.js.map +1 -1
- package/dist/src/steps/__tests__/add-editor-rules.test.d.ts +1 -0
- package/dist/src/steps/__tests__/add-editor-rules.test.js +218 -0
- package/dist/src/steps/__tests__/add-editor-rules.test.js.map +1 -0
- package/dist/src/steps/__tests__/create-pr.test.d.ts +1 -0
- package/dist/src/steps/__tests__/create-pr.test.js +193 -0
- package/dist/src/steps/__tests__/create-pr.test.js.map +1 -0
- package/dist/src/steps/add-editor-rules.d.ts +9 -0
- package/dist/src/{utils/rules → steps}/add-editor-rules.js +10 -10
- package/dist/src/steps/add-editor-rules.js.map +1 -0
- package/dist/src/steps/add-or-update-environment-variables.d.ts +10 -0
- package/dist/src/steps/add-or-update-environment-variables.js +194 -0
- package/dist/src/steps/add-or-update-environment-variables.js.map +1 -0
- package/dist/src/steps/create-pr.d.ts +27 -0
- package/dist/src/steps/create-pr.js +305 -0
- package/dist/src/steps/create-pr.js.map +1 -0
- package/dist/src/steps/index.d.ts +4 -0
- package/dist/src/steps/index.js +21 -0
- package/dist/src/steps/index.js.map +1 -0
- package/dist/src/steps/run-prettier.d.ts +5 -0
- package/dist/src/steps/run-prettier.js +93 -0
- package/dist/src/steps/run-prettier.js.map +1 -0
- package/dist/src/svelte/svelte-wizard.js +6 -5
- package/dist/src/svelte/svelte-wizard.js.map +1 -1
- package/dist/src/utils/__tests__/clack-utils.test.d.ts +1 -0
- package/dist/src/utils/__tests__/clack-utils.test.js +128 -0
- package/dist/src/utils/__tests__/clack-utils.test.js.map +1 -0
- package/dist/src/utils/clack-utils.d.ts +0 -4
- package/dist/src/utils/clack-utils.js +0 -49
- package/dist/src/utils/clack-utils.js.map +1 -1
- package/dist/src/utils/environment.d.ts +0 -6
- package/dist/src/utils/environment.js +0 -100
- package/dist/src/utils/environment.js.map +1 -1
- package/dist/src/utils/file-utils.js +1 -1
- package/dist/src/utils/file-utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/src/utils/rules/add-editor-rules.d.ts +0 -9
- package/dist/src/utils/rules/add-editor-rules.js.map +0 -1
- package/dist/src/utils/rules/add-editor-rules.ts +0 -86
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.runPrettierStep = runPrettierStep;
|
|
40
|
+
const telemetry_1 = require("../telemetry");
|
|
41
|
+
const analytics_1 = require("../utils/analytics");
|
|
42
|
+
const clack_1 = __importDefault(require("../utils/clack"));
|
|
43
|
+
const clack_utils_1 = require("../utils/clack-utils");
|
|
44
|
+
const package_json_1 = require("../utils/package-json");
|
|
45
|
+
const childProcess = __importStar(require("node:child_process"));
|
|
46
|
+
async function runPrettierStep({ installDir, integration, }) {
|
|
47
|
+
return (0, telemetry_1.traceStep)('run-prettier', async () => {
|
|
48
|
+
if (!(0, clack_utils_1.isInGitRepo)()) {
|
|
49
|
+
// We only run formatting on changed files. If we're not in a git repo, we can't find
|
|
50
|
+
// changed files. So let's early-return without showing any formatting-related messages.
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const changedOrUntrackedFiles = (0, clack_utils_1.getUncommittedOrUntrackedFiles)()
|
|
54
|
+
.map((filename) => {
|
|
55
|
+
return filename.startsWith('- ') ? filename.slice(2) : filename;
|
|
56
|
+
})
|
|
57
|
+
.join(' ');
|
|
58
|
+
if (!changedOrUntrackedFiles.length) {
|
|
59
|
+
// Likewise, if we can't find changed or untracked files, there's no point in running Prettier.
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const packageJson = await (0, clack_utils_1.getPackageDotJson)({ installDir });
|
|
63
|
+
const prettierInstalled = (0, package_json_1.hasPackageInstalled)('prettier', packageJson);
|
|
64
|
+
analytics_1.analytics.setTag('prettier-installed', prettierInstalled);
|
|
65
|
+
if (!prettierInstalled) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const prettierSpinner = clack_1.default.spinner();
|
|
69
|
+
prettierSpinner.start('Running Prettier on your files.');
|
|
70
|
+
try {
|
|
71
|
+
await new Promise((resolve, reject) => {
|
|
72
|
+
childProcess.exec(`npx prettier --ignore-unknown --write ${changedOrUntrackedFiles}`, (err) => {
|
|
73
|
+
if (err) {
|
|
74
|
+
reject(err);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
resolve();
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
catch (e) {
|
|
83
|
+
prettierSpinner.stop('Prettier failed to run. You may want to format the changes manually.');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
prettierSpinner.stop('Prettier has formatted your files.');
|
|
87
|
+
analytics_1.analytics.capture('wizard interaction', {
|
|
88
|
+
action: 'ran prettier',
|
|
89
|
+
integration,
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=run-prettier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-prettier.js","sourceRoot":"","sources":["../../../src/steps/run-prettier.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,0CA+DC;AA3ED,4CAAyC;AACzC,kDAA+C;AAC/C,2DAAmC;AACnC,sDAI8B;AAC9B,wDAA4D;AAE5D,iEAAmD;AAE5C,KAAK,UAAU,eAAe,CAAC,EACpC,UAAU,EACV,WAAW,GAGZ;IACC,OAAO,IAAA,qBAAS,EAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,IAAA,yBAAW,GAAE,EAAE,CAAC;YACnB,qFAAqF;YACrF,wFAAwF;YACxF,OAAO;QACT,CAAC;QAED,MAAM,uBAAuB,GAAG,IAAA,4CAA8B,GAAE;aAC7D,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChB,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAClE,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC;YACpC,+FAA+F;YAC/F,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAiB,EAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAC5D,MAAM,iBAAiB,GAAG,IAAA,kCAAmB,EAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEvE,qBAAS,CAAC,MAAM,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;QAE1D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,eAAK,CAAC,OAAO,EAAE,CAAC;QACxC,eAAe,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,YAAY,CAAC,IAAI,CACf,yCAAyC,uBAAuB,EAAE,EAClE,CAAC,GAAG,EAAE,EAAE;oBACN,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,eAAe,CAAC,IAAI,CAClB,sEAAsE,CACvE,CAAC;YACF,OAAO;QACT,CAAC;QAED,eAAe,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAE3D,qBAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE;YACtC,MAAM,EAAE,cAAc;YACtB,WAAW;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { Integration } from '../lib/constants';\nimport { traceStep } from '../telemetry';\nimport { analytics } from '../utils/analytics';\nimport clack from '../utils/clack';\nimport {\n getPackageDotJson,\n getUncommittedOrUntrackedFiles,\n isInGitRepo,\n} from '../utils/clack-utils';\nimport { hasPackageInstalled } from '../utils/package-json';\nimport type { WizardOptions } from '../utils/types';\nimport * as childProcess from 'node:child_process';\n\nexport async function runPrettierStep({\n installDir,\n integration,\n}: Pick<WizardOptions, 'installDir'> & {\n integration: Integration;\n}): Promise<void> {\n return traceStep('run-prettier', async () => {\n if (!isInGitRepo()) {\n // We only run formatting on changed files. If we're not in a git repo, we can't find\n // changed files. So let's early-return without showing any formatting-related messages.\n return;\n }\n\n const changedOrUntrackedFiles = getUncommittedOrUntrackedFiles()\n .map((filename) => {\n return filename.startsWith('- ') ? filename.slice(2) : filename;\n })\n .join(' ');\n\n if (!changedOrUntrackedFiles.length) {\n // Likewise, if we can't find changed or untracked files, there's no point in running Prettier.\n return;\n }\n\n const packageJson = await getPackageDotJson({ installDir });\n const prettierInstalled = hasPackageInstalled('prettier', packageJson);\n\n analytics.setTag('prettier-installed', prettierInstalled);\n\n if (!prettierInstalled) {\n return;\n }\n\n const prettierSpinner = clack.spinner();\n prettierSpinner.start('Running Prettier on your files.');\n\n try {\n await new Promise<void>((resolve, reject) => {\n childProcess.exec(\n `npx prettier --ignore-unknown --write ${changedOrUntrackedFiles}`,\n (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n },\n );\n });\n } catch (e) {\n prettierSpinner.stop(\n 'Prettier failed to run. You may want to format the changes manually.',\n );\n return;\n }\n\n prettierSpinner.stop('Prettier has formatted your files.');\n\n analytics.capture('wizard interaction', {\n action: 'ran prettier',\n integration,\n });\n });\n}\n"]}
|
|
@@ -11,11 +11,11 @@ const clack_1 = __importDefault(require("../utils/clack"));
|
|
|
11
11
|
const constants_1 = require("../lib/constants");
|
|
12
12
|
const docs_1 = require("./docs");
|
|
13
13
|
const analytics_1 = require("../utils/analytics");
|
|
14
|
-
const environment_1 = require("../utils/environment");
|
|
15
14
|
const file_utils_1 = require("../utils/file-utils");
|
|
16
15
|
const clack_utils_2 = require("../utils/clack-utils");
|
|
17
|
-
const add_editor_rules_1 = require("../
|
|
16
|
+
const add_editor_rules_1 = require("../steps/add-editor-rules");
|
|
18
17
|
const messages_1 = require("../lib/messages");
|
|
18
|
+
const steps_1 = require("../steps");
|
|
19
19
|
async function runSvelteWizard(options) {
|
|
20
20
|
(0, clack_utils_1.printWelcome)({
|
|
21
21
|
wizardName: 'PostHog Svelte Wizard',
|
|
@@ -81,7 +81,7 @@ async function runSvelteWizard(options) {
|
|
|
81
81
|
documentation: installationDocumentation,
|
|
82
82
|
cloudRegion,
|
|
83
83
|
});
|
|
84
|
-
await (0,
|
|
84
|
+
const { relativeEnvFilePath, addedEnvVariables } = await (0, steps_1.addOrUpdateEnvironmentVariablesStep)({
|
|
85
85
|
variables: {
|
|
86
86
|
['PUBLIC_POSTHOG_KEY']: projectApiKey,
|
|
87
87
|
['PUBLIC_POSTHOG_HOST']: host,
|
|
@@ -90,11 +90,11 @@ async function runSvelteWizard(options) {
|
|
|
90
90
|
integration: constants_1.Integration.svelte,
|
|
91
91
|
});
|
|
92
92
|
const packageManagerForOutro = packageManagerFromInstallStep ?? (await (0, clack_utils_1.getPackageManager)(options));
|
|
93
|
-
await (0,
|
|
93
|
+
await (0, steps_1.runPrettierStep)({
|
|
94
94
|
installDir: options.installDir,
|
|
95
95
|
integration: constants_1.Integration.svelte,
|
|
96
96
|
});
|
|
97
|
-
const addedEditorRules = await (0, add_editor_rules_1.
|
|
97
|
+
const addedEditorRules = await (0, add_editor_rules_1.addEditorRulesStep)({
|
|
98
98
|
installDir: options.installDir,
|
|
99
99
|
rulesName: 'svelte-rules.md',
|
|
100
100
|
integration: constants_1.Integration.svelte,
|
|
@@ -106,6 +106,7 @@ async function runSvelteWizard(options) {
|
|
|
106
106
|
cloudRegion,
|
|
107
107
|
addedEditorRules,
|
|
108
108
|
packageManager: packageManagerForOutro,
|
|
109
|
+
envFileChanged: addedEnvVariables ? relativeEnvFilePath : undefined,
|
|
109
110
|
});
|
|
110
111
|
clack_1.default.outro(outroMessage);
|
|
111
112
|
await analytics_1.analytics.shutdown('success');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svelte-wizard.js","sourceRoot":"","sources":["../../../src/svelte/svelte-wizard.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;;;
|
|
1
|
+
{"version":3,"file":"svelte-wizard.js","sourceRoot":"","sources":["../../../src/svelte/svelte-wizard.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable max-lines */\n\nimport {\n abort,\n askForAIConsent,\n confirmContinueIfNoOrDirtyGitRepo,\n ensurePackageIsInstalled,\n getOrAskForProjectData,\n getPackageDotJson,\n getPackageManager,\n installPackage,\n isUsingTypeScript,\n printWelcome,\n} from '../utils/clack-utils';\nimport { getPackageVersion, hasPackageInstalled } from '../utils/package-json';\nimport clack from '../utils/clack';\nimport { Integration } from '../lib/constants';\nimport { getSvelteDocumentation } from './docs';\nimport { analytics } from '../utils/analytics';\nimport {\n generateFileChangesForIntegration,\n getFilesToChange,\n getRelevantFilesForIntegration,\n} from '../utils/file-utils';\nimport type { WizardOptions } from '../utils/types';\nimport { askForCloudRegion } from '../utils/clack-utils';\nimport { addEditorRulesStep } from '../steps/add-editor-rules';\nimport { getOutroMessage } from '../lib/messages';\nimport { addOrUpdateEnvironmentVariablesStep, runPrettierStep } from '../steps';\n\nexport async function runSvelteWizard(options: WizardOptions): Promise<void> {\n printWelcome({\n wizardName: 'PostHog Svelte Wizard',\n });\n\n const aiConsent = await askForAIConsent(options);\n\n if (!aiConsent) {\n await abort(\n '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',\n 0,\n );\n }\n\n const cloudRegion = options.cloudRegion ?? (await askForCloudRegion());\n\n const typeScriptDetected = isUsingTypeScript(options);\n\n await confirmContinueIfNoOrDirtyGitRepo(options);\n\n const packageJson = await getPackageDotJson(options);\n\n await ensurePackageIsInstalled(packageJson, '@sveltejs/kit', '@sveltejs/kit');\n\n const svelteVersion = getPackageVersion('@sveltejs/kit', packageJson);\n\n if (svelteVersion) {\n analytics.setTag('svelte-version', svelteVersion);\n }\n\n const { projectApiKey, wizardHash, host } = await getOrAskForProjectData({\n ...options,\n cloudRegion,\n });\n\n const sdkAlreadyInstalled = hasPackageInstalled('posthog-js', packageJson);\n\n analytics.setTag('sdk-already-installed', sdkAlreadyInstalled);\n\n const { packageManager: packageManagerFromInstallStep } =\n await installPackage({\n packageName: 'posthog-js',\n packageNameDisplayLabel: 'posthog-js',\n alreadyInstalled: !!packageJson?.dependencies?.['posthog-js'],\n forceInstall: options.forceInstall,\n askBeforeUpdating: false,\n installDir: options.installDir,\n integration: Integration.svelte,\n });\n\n await installPackage({\n packageName: 'posthog-node',\n packageNameDisplayLabel: 'posthog-node',\n packageManager: packageManagerFromInstallStep,\n alreadyInstalled: !!packageJson?.dependencies?.['posthog-node'],\n forceInstall: options.forceInstall,\n askBeforeUpdating: false,\n installDir: options.installDir,\n integration: Integration.svelte,\n });\n\n const relevantFiles = await getRelevantFilesForIntegration({\n installDir: options.installDir,\n integration: Integration.svelte,\n });\n\n const installationDocumentation = getSvelteDocumentation({\n language: typeScriptDetected ? 'typescript' : 'javascript',\n });\n\n clack.log.info(`Reviewing PostHog documentation for Svelte`);\n\n const filesToChange = await getFilesToChange({\n integration: Integration.svelte,\n relevantFiles,\n documentation: installationDocumentation,\n wizardHash,\n cloudRegion,\n });\n\n await generateFileChangesForIntegration({\n integration: Integration.svelte,\n filesToChange,\n wizardHash,\n installDir: options.installDir,\n documentation: installationDocumentation,\n cloudRegion,\n });\n\n const { relativeEnvFilePath, addedEnvVariables } =\n await addOrUpdateEnvironmentVariablesStep({\n variables: {\n ['PUBLIC_POSTHOG_KEY']: projectApiKey,\n ['PUBLIC_POSTHOG_HOST']: host,\n },\n installDir: options.installDir,\n integration: Integration.svelte,\n });\n\n const packageManagerForOutro =\n packageManagerFromInstallStep ?? (await getPackageManager(options));\n\n await runPrettierStep({\n installDir: options.installDir,\n integration: Integration.svelte,\n });\n\n const addedEditorRules = await addEditorRulesStep({\n installDir: options.installDir,\n rulesName: 'svelte-rules.md',\n integration: Integration.svelte,\n default: options.default,\n });\n\n const outroMessage = getOutroMessage({\n options,\n integration: Integration.svelte,\n cloudRegion,\n addedEditorRules,\n packageManager: packageManagerForOutro,\n envFileChanged: addedEnvVariables ? relativeEnvFilePath : undefined,\n });\n\n clack.outro(outroMessage);\n\n await analytics.shutdown('success');\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const clack_utils_1 = require("../clack-utils");
|
|
37
|
+
const ChildProcess = __importStar(require("node:child_process"));
|
|
38
|
+
jest.mock('node:child_process', () => ({
|
|
39
|
+
__esModule: true,
|
|
40
|
+
...jest.requireActual('node:child_process'),
|
|
41
|
+
}));
|
|
42
|
+
jest.mock('@clack/prompts', () => ({
|
|
43
|
+
log: {
|
|
44
|
+
info: jest.fn(),
|
|
45
|
+
success: jest.fn(),
|
|
46
|
+
warn: jest.fn(),
|
|
47
|
+
error: jest.fn(),
|
|
48
|
+
},
|
|
49
|
+
text: jest.fn(),
|
|
50
|
+
confirm: jest.fn(),
|
|
51
|
+
cancel: jest.fn(),
|
|
52
|
+
outro: jest.fn(),
|
|
53
|
+
// passthrough for abortIfCancelled
|
|
54
|
+
isCancel: jest.fn().mockReturnValue(false),
|
|
55
|
+
spinner: jest
|
|
56
|
+
.fn()
|
|
57
|
+
.mockImplementation(() => ({ start: jest.fn(), stop: jest.fn() })),
|
|
58
|
+
}));
|
|
59
|
+
describe.skip('installPackage', () => {
|
|
60
|
+
afterEach(() => {
|
|
61
|
+
jest.clearAllMocks();
|
|
62
|
+
});
|
|
63
|
+
it('force-installs a package if the forceInstall flag is set', async () => {
|
|
64
|
+
const packageManagerMock = {
|
|
65
|
+
name: 'npm',
|
|
66
|
+
label: 'NPM',
|
|
67
|
+
installCommand: 'npm install',
|
|
68
|
+
buildCommand: 'npm run build',
|
|
69
|
+
runScriptCommand: 'npm run',
|
|
70
|
+
flags: '',
|
|
71
|
+
forceInstallFlag: '--force',
|
|
72
|
+
detect: jest.fn(),
|
|
73
|
+
addOverride: jest.fn(),
|
|
74
|
+
};
|
|
75
|
+
const execSpy = jest
|
|
76
|
+
.spyOn(ChildProcess, 'exec')
|
|
77
|
+
// @ts-expect-error - don't care about the return value
|
|
78
|
+
.mockImplementationOnce((cmd, cb) => {
|
|
79
|
+
if (cb) {
|
|
80
|
+
// @ts-expect-error - don't care about the options value
|
|
81
|
+
cb(null, '', '');
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
await (0, clack_utils_1.installPackage)({
|
|
85
|
+
alreadyInstalled: false,
|
|
86
|
+
packageName: 'posthog-js',
|
|
87
|
+
packageNameDisplayLabel: 'posthog-js',
|
|
88
|
+
forceInstall: true,
|
|
89
|
+
askBeforeUpdating: false,
|
|
90
|
+
packageManager: packageManagerMock,
|
|
91
|
+
installDir: process.cwd(),
|
|
92
|
+
});
|
|
93
|
+
expect(execSpy).toHaveBeenCalledWith('npm install posthog-js --force', expect.any(Function));
|
|
94
|
+
});
|
|
95
|
+
it.each([false, undefined])("doesn't force-install a package if the forceInstall flag is %s", async (flag) => {
|
|
96
|
+
const packageManagerMock = {
|
|
97
|
+
name: 'npm',
|
|
98
|
+
label: 'NPM',
|
|
99
|
+
installCommand: 'npm install',
|
|
100
|
+
buildCommand: 'npm run build',
|
|
101
|
+
runScriptCommand: 'npm run',
|
|
102
|
+
flags: '',
|
|
103
|
+
forceInstallFlag: '--force',
|
|
104
|
+
detect: jest.fn(),
|
|
105
|
+
addOverride: jest.fn(),
|
|
106
|
+
};
|
|
107
|
+
const execSpy = jest
|
|
108
|
+
.spyOn(ChildProcess, 'exec')
|
|
109
|
+
// @ts-expect-error - don't care about the return value
|
|
110
|
+
.mockImplementationOnce((cmd, cb) => {
|
|
111
|
+
if (cb) {
|
|
112
|
+
// @ts-expect-error - don't care about the options value
|
|
113
|
+
cb(null, '', '');
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
await (0, clack_utils_1.installPackage)({
|
|
117
|
+
alreadyInstalled: false,
|
|
118
|
+
packageName: 'posthog-js',
|
|
119
|
+
packageNameDisplayLabel: 'posthog-js',
|
|
120
|
+
forceInstall: flag,
|
|
121
|
+
askBeforeUpdating: false,
|
|
122
|
+
packageManager: packageManagerMock,
|
|
123
|
+
installDir: process.cwd(),
|
|
124
|
+
});
|
|
125
|
+
expect(execSpy).toHaveBeenCalledWith('npm install posthog-js ', expect.any(Function));
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=clack-utils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clack-utils.test.js","sourceRoot":"","sources":["../../../../src/utils/__tests__/clack-utils.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { installPackage } from '../clack-utils';\n\nimport * as ChildProcess from 'node:child_process';\nimport type { PackageManager } from '../package-manager';\n\njest.mock('node:child_process', () => ({\n __esModule: true,\n ...jest.requireActual('node:child_process'),\n}));\n\njest.mock('@clack/prompts', () => ({\n log: {\n info: jest.fn(),\n success: jest.fn(),\n warn: jest.fn(),\n error: jest.fn(),\n },\n text: jest.fn(),\n confirm: jest.fn(),\n cancel: jest.fn(),\n outro: jest.fn(),\n // passthrough for abortIfCancelled\n isCancel: jest.fn().mockReturnValue(false),\n spinner: jest\n .fn()\n .mockImplementation(() => ({ start: jest.fn(), stop: jest.fn() })),\n}));\n\ndescribe.skip('installPackage', () => {\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n it('force-installs a package if the forceInstall flag is set', async () => {\n const packageManagerMock: PackageManager = {\n name: 'npm',\n label: 'NPM',\n installCommand: 'npm install',\n buildCommand: 'npm run build',\n runScriptCommand: 'npm run',\n flags: '',\n forceInstallFlag: '--force',\n detect: jest.fn(),\n addOverride: jest.fn(),\n };\n\n const execSpy = jest\n .spyOn(ChildProcess, 'exec')\n // @ts-expect-error - don't care about the return value\n .mockImplementationOnce((cmd, cb) => {\n if (cb) {\n // @ts-expect-error - don't care about the options value\n cb(null, '', '');\n }\n });\n\n await installPackage({\n alreadyInstalled: false,\n packageName: 'posthog-js',\n packageNameDisplayLabel: 'posthog-js',\n forceInstall: true,\n askBeforeUpdating: false,\n packageManager: packageManagerMock,\n installDir: process.cwd(),\n });\n\n expect(execSpy).toHaveBeenCalledWith(\n 'npm install posthog-js --force',\n expect.any(Function),\n );\n });\n\n it.each([false, undefined])(\n \"doesn't force-install a package if the forceInstall flag is %s\",\n async (flag) => {\n const packageManagerMock: PackageManager = {\n name: 'npm',\n label: 'NPM',\n installCommand: 'npm install',\n buildCommand: 'npm run build',\n runScriptCommand: 'npm run',\n flags: '',\n forceInstallFlag: '--force',\n detect: jest.fn(),\n addOverride: jest.fn(),\n };\n\n const execSpy = jest\n .spyOn(ChildProcess, 'exec')\n // @ts-expect-error - don't care about the return value\n .mockImplementationOnce((cmd, cb) => {\n if (cb) {\n // @ts-expect-error - don't care about the options value\n cb(null, '', '');\n }\n });\n\n await installPackage({\n alreadyInstalled: false,\n packageName: 'posthog-js',\n packageNameDisplayLabel: 'posthog-js',\n forceInstall: flag,\n askBeforeUpdating: false,\n packageManager: packageManagerMock,\n installDir: process.cwd(),\n });\n\n expect(execSpy).toHaveBeenCalledWith(\n 'npm install posthog-js ',\n expect.any(Function),\n );\n },\n );\n});\n"]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type PackageDotJson } from './package-json';
|
|
2
2
|
import { type PackageManager } from './package-manager';
|
|
3
3
|
import type { CloudRegion, Feature, WizardOptions } from './types';
|
|
4
|
-
import { type Integration } from '../lib/constants';
|
|
5
4
|
export interface CliSetupConfig {
|
|
6
5
|
filename: string;
|
|
7
6
|
name: string;
|
|
@@ -62,9 +61,6 @@ export declare function installPackage({ packageName, alreadyInstalled, askBefor
|
|
|
62
61
|
}): Promise<{
|
|
63
62
|
packageManager?: PackageManager;
|
|
64
63
|
}>;
|
|
65
|
-
export declare function runPrettierIfInstalled({ installDir, integration, }: Pick<WizardOptions, 'installDir'> & {
|
|
66
|
-
integration: Integration;
|
|
67
|
-
}): Promise<void>;
|
|
68
64
|
/**
|
|
69
65
|
* Checks if @param packageId is listed as a dependency in @param packageJson.
|
|
70
66
|
* If not, it will ask users if they want to continue without the package.
|
|
@@ -45,7 +45,6 @@ exports.getUncommittedOrUntrackedFiles = getUncommittedOrUntrackedFiles;
|
|
|
45
45
|
exports.askForItemSelection = askForItemSelection;
|
|
46
46
|
exports.confirmContinueIfPackageVersionNotSupported = confirmContinueIfPackageVersionNotSupported;
|
|
47
47
|
exports.installPackage = installPackage;
|
|
48
|
-
exports.runPrettierIfInstalled = runPrettierIfInstalled;
|
|
49
48
|
exports.ensurePackageIsInstalled = ensurePackageIsInstalled;
|
|
50
49
|
exports.getPackageDotJson = getPackageDotJson;
|
|
51
50
|
exports.updatePackageDotJson = updatePackageDotJson;
|
|
@@ -256,54 +255,6 @@ async function installPackage({ packageName, alreadyInstalled, askBeforeUpdating
|
|
|
256
255
|
return { packageManager: pkgManager };
|
|
257
256
|
});
|
|
258
257
|
}
|
|
259
|
-
async function runPrettierIfInstalled({ installDir, integration, }) {
|
|
260
|
-
return (0, telemetry_1.traceStep)('run-prettier', async () => {
|
|
261
|
-
if (!isInGitRepo()) {
|
|
262
|
-
// We only run formatting on changed files. If we're not in a git repo, we can't find
|
|
263
|
-
// changed files. So let's early-return without showing any formatting-related messages.
|
|
264
|
-
return;
|
|
265
|
-
}
|
|
266
|
-
const changedOrUntrackedFiles = getUncommittedOrUntrackedFiles()
|
|
267
|
-
.map((filename) => {
|
|
268
|
-
return filename.startsWith('- ') ? filename.slice(2) : filename;
|
|
269
|
-
})
|
|
270
|
-
.join(' ');
|
|
271
|
-
if (!changedOrUntrackedFiles.length) {
|
|
272
|
-
// Likewise, if we can't find changed or untracked files, there's no point in running Prettier.
|
|
273
|
-
return;
|
|
274
|
-
}
|
|
275
|
-
const packageJson = await getPackageDotJson({ installDir });
|
|
276
|
-
const prettierInstalled = (0, package_json_1.hasPackageInstalled)('prettier', packageJson);
|
|
277
|
-
analytics_1.analytics.setTag('prettier-installed', prettierInstalled);
|
|
278
|
-
if (!prettierInstalled) {
|
|
279
|
-
return;
|
|
280
|
-
}
|
|
281
|
-
const prettierSpinner = clack_1.default.spinner();
|
|
282
|
-
prettierSpinner.start('Running Prettier on your files.');
|
|
283
|
-
try {
|
|
284
|
-
await new Promise((resolve, reject) => {
|
|
285
|
-
childProcess.exec(`npx prettier --ignore-unknown --write ${changedOrUntrackedFiles}`, (err) => {
|
|
286
|
-
if (err) {
|
|
287
|
-
reject(err);
|
|
288
|
-
}
|
|
289
|
-
else {
|
|
290
|
-
resolve();
|
|
291
|
-
}
|
|
292
|
-
});
|
|
293
|
-
});
|
|
294
|
-
}
|
|
295
|
-
catch (e) {
|
|
296
|
-
prettierSpinner.stop('Prettier failed to run.');
|
|
297
|
-
clack_1.default.log.warn('Prettier failed to run. There may be formatting issues in your updated files.');
|
|
298
|
-
return;
|
|
299
|
-
}
|
|
300
|
-
prettierSpinner.stop('Prettier has formatted your files.');
|
|
301
|
-
analytics_1.analytics.capture('wizard interaction', {
|
|
302
|
-
action: 'ran prettier',
|
|
303
|
-
integration,
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
258
|
/**
|
|
308
259
|
* Checks if @param packageId is listed as a dependency in @param packageJson.
|
|
309
260
|
* If not, it will ask users if they want to continue without the package.
|