create-tamagui 1.112.0 → 1.112.2
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/index.js +115 -93
- package/dist/index.js.map +2 -2
- package/dist/index.native.js +103 -80
- package/dist/index.native.js.map +2 -2
- package/package.json +8 -4
- package/run.js +2 -2
package/dist/index.js
CHANGED
|
@@ -7287,7 +7287,7 @@ var require_prompts3 = __commonJS({
|
|
|
7287
7287
|
// ../../../node_modules/zx/node_modules/which/lib/index.js
|
|
7288
7288
|
var require_lib3 = __commonJS({
|
|
7289
7289
|
"../../../node_modules/zx/node_modules/which/lib/index.js"(exports2, module2) {
|
|
7290
|
-
var isexe = require_isexe(), { join:
|
|
7290
|
+
var isexe = require_isexe(), { join: join2, delimiter, sep: sep2, posix: posix3 } = require("path"), isWindows = process.platform === "win32", rSlash = new RegExp(`[${posix3.sep}${sep2 === posix3.sep ? "" : sep2}]`.replace(/(\\)/g, "\\$1")), rRel = new RegExp(`^\\.${rSlash.source}`), getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: "ENOENT" }), getPathInfo = (cmd, {
|
|
7291
7291
|
path: optPath = process.env.PATH,
|
|
7292
7292
|
pathExt: optPathExt = process.env.PATHEXT,
|
|
7293
7293
|
delimiter: optDelimiter = delimiter
|
|
@@ -7305,7 +7305,7 @@ var require_lib3 = __commonJS({
|
|
|
7305
7305
|
return { pathEnv, pathExt: [""] };
|
|
7306
7306
|
}, getPathPart = (raw, cmd) => {
|
|
7307
7307
|
let pathPart = /^".*"$/.test(raw) ? raw.slice(1, -1) : raw;
|
|
7308
|
-
return (!pathPart && rRel.test(cmd) ? cmd.slice(0, 2) : "") +
|
|
7308
|
+
return (!pathPart && rRel.test(cmd) ? cmd.slice(0, 2) : "") + join2(pathPart, cmd);
|
|
7309
7309
|
}, which2 = async (cmd, opt = {}) => {
|
|
7310
7310
|
let { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt), found = [];
|
|
7311
7311
|
for (let envPart of pathEnv) {
|
|
@@ -21915,8 +21915,8 @@ var require_os_homedir = __commonJS({
|
|
|
21915
21915
|
"use strict";
|
|
21916
21916
|
var os2 = require("os");
|
|
21917
21917
|
function homedir2() {
|
|
21918
|
-
var env2 = process.env,
|
|
21919
|
-
return process.platform === "win32" ? env2.USERPROFILE || env2.HOMEDRIVE + env2.HOMEPATH ||
|
|
21918
|
+
var env2 = process.env, home = env2.HOME, user = env2.LOGNAME || env2.USER || env2.LNAME || env2.USERNAME;
|
|
21919
|
+
return process.platform === "win32" ? env2.USERPROFILE || env2.HOMEDRIVE + env2.HOMEPATH || home || null : process.platform === "darwin" ? home || (user ? "/Users/" + user : null) : process.platform === "linux" ? home || (process.getuid() === 0 ? "/root" : user ? "/home/" + user : null) : home || null;
|
|
21920
21920
|
}
|
|
21921
21921
|
module2.exports = typeof os2.homedir == "function" ? os2.homedir : homedir2;
|
|
21922
21922
|
}
|
|
@@ -25114,7 +25114,7 @@ var require_build = __commonJS({
|
|
|
25114
25114
|
});
|
|
25115
25115
|
|
|
25116
25116
|
// src/index.ts
|
|
25117
|
-
var
|
|
25117
|
+
var import_node_child_process4 = require("node:child_process"), import_node_fs4 = __toESM(require("node:fs")), import_node_path7 = __toESM(require("node:path")), import_node_process3 = require("node:process"), import_chalk13 = __toESM(require_source()), import_commander = __toESM(require_commander());
|
|
25118
25118
|
|
|
25119
25119
|
// ../../../node_modules/detect-package-manager/dist/index.mjs
|
|
25120
25120
|
var import_fs = require("fs"), import_path = require("path"), import_execa = __toESM(require_execa(), 1);
|
|
@@ -26191,7 +26191,7 @@ var globby2 = Object.assign(function(patterns, options) {
|
|
|
26191
26191
|
// package.json
|
|
26192
26192
|
var package_default = {
|
|
26193
26193
|
name: "create-tamagui",
|
|
26194
|
-
version: "1.
|
|
26194
|
+
version: "1.112.1",
|
|
26195
26195
|
bin: "./run.js",
|
|
26196
26196
|
main: "dist",
|
|
26197
26197
|
files: [
|
|
@@ -26201,9 +26201,10 @@ var package_default = {
|
|
|
26201
26201
|
scripts: {
|
|
26202
26202
|
start: "./run.js",
|
|
26203
26203
|
"//": "disabling for now need to migrate to new stack",
|
|
26204
|
-
test: "true",
|
|
26205
26204
|
"test-disabled": "NODE_ENV=test node -r esbuild-register ../../../node_modules/.bin/playwright test integration.test.ts",
|
|
26206
26205
|
"test:debug": "yarn test --debug",
|
|
26206
|
+
test: "yarn build:test && vitest run",
|
|
26207
|
+
"build:test": "yarn build",
|
|
26207
26208
|
prerelease: "rimraf ./dist/",
|
|
26208
26209
|
prepublish: "yarn build",
|
|
26209
26210
|
build: "tamagui-build --skip-types --bundle --bundle-modules",
|
|
@@ -26214,7 +26215,7 @@ var package_default = {
|
|
|
26214
26215
|
devDependencies: {
|
|
26215
26216
|
"@expo/package-manager": "^1.1.2",
|
|
26216
26217
|
"@playwright/test": "^1.45.2",
|
|
26217
|
-
"@tamagui/build": "1.
|
|
26218
|
+
"@tamagui/build": "1.112.1",
|
|
26218
26219
|
"@types/async-retry": "1.4.2",
|
|
26219
26220
|
"@types/cross-spawn": "^6.0.2",
|
|
26220
26221
|
"@types/node": "^22.1.0",
|
|
@@ -26236,13 +26237,16 @@ var package_default = {
|
|
|
26236
26237
|
prompts: "2.1.0",
|
|
26237
26238
|
rimraf: "^5.0.1",
|
|
26238
26239
|
tar: "4.4.10",
|
|
26240
|
+
tempy: "^3.1.0",
|
|
26239
26241
|
"update-check": "1.5.4",
|
|
26240
26242
|
"validate-npm-package-name": "3.0.0",
|
|
26243
|
+
vitest: "2.1.1",
|
|
26241
26244
|
"wait-port": "^0.3.0",
|
|
26242
26245
|
zx: "^7.2.3"
|
|
26243
26246
|
},
|
|
26244
26247
|
engines: {
|
|
26245
|
-
node: ">=
|
|
26248
|
+
node: ">=20.22.0",
|
|
26249
|
+
yarn: ">=4.4.0"
|
|
26246
26250
|
},
|
|
26247
26251
|
publishConfig: {
|
|
26248
26252
|
access: "public"
|
|
@@ -31164,23 +31168,20 @@ rimraf.rimraf = rimraf;
|
|
|
31164
31168
|
var open = require_opener(), exec = (cmd, options) => (0, import_node_child_process2.execSync)(cmd, {
|
|
31165
31169
|
stdio: process.env.DEBUG ? "inherit" : "ignore",
|
|
31166
31170
|
...options
|
|
31167
|
-
}),
|
|
31168
|
-
targetGitDir =
|
|
31171
|
+
}), tamaguiDir = (0, import_node_path4.join)((0, import_node_os2.homedir)(), ".tamagui-repo-cache"), targetGitDir = "", cloneStarter = async (template, resolvedProjectPath, projectName) => {
|
|
31172
|
+
targetGitDir = (0, import_node_path4.join)(tamaguiDir, "tamagui", template.repo.url.split("/").at(-1)), console.info(), await setupTamaguiDotDir(template);
|
|
31169
31173
|
let starterDir = (0, import_node_path4.join)(targetGitDir, ...template.repo.dir);
|
|
31170
31174
|
console.info(), console.info(
|
|
31171
31175
|
`Copying starter from ${starterDir} into ${import_chalk5.default.blueBright(projectName)}...`
|
|
31172
31176
|
), console.info(), await (0, import_fs_extra.copy)(starterDir, resolvedProjectPath), await rimraf(`${resolvedProjectPath}/.git`), console.info(import_chalk5.default.green(`${projectName} created!`)), console.info();
|
|
31173
31177
|
};
|
|
31174
31178
|
async function setupTamaguiDotDir(template, isRetry = !1) {
|
|
31175
|
-
|
|
31176
|
-
if (console.info(`Setting up ${import_chalk5.default.blueBright(targetGitDir)}...`), IS_TEST && cd(repoRoot2), process.env.GITHUB_HEAD_REF)
|
|
31179
|
+
if (console.info(`Setting up ${import_chalk5.default.blueBright(targetGitDir)}...`), process.env.GITHUB_HEAD_REF)
|
|
31177
31180
|
try {
|
|
31178
|
-
await $`git switch -c ${process.env.GITHUB_HEAD_REF}`;
|
|
31181
|
+
await $`cd ${targetGitDir} && git switch -c ${process.env.GITHUB_HEAD_REF}`;
|
|
31179
31182
|
} catch {
|
|
31180
31183
|
}
|
|
31181
31184
|
let branch = template.repo.branch;
|
|
31182
|
-
if (IS_TEST && (console.info("Test mode: cleaning old tamagui git dir"), await (0, import_fs_extra.remove)(targetGitDir), !await (0, import_fs_extra.pathExists)((0, import_node_path4.join)(repoRoot2, ".git"))))
|
|
31183
|
-
throw new Error("Not in a git folder");
|
|
31184
31185
|
await (0, import_fs_extra.ensureDir)(tamaguiDir), cd(tamaguiDir);
|
|
31185
31186
|
let isInSubDir = template.repo.dir.length > 0;
|
|
31186
31187
|
if (await (0, import_fs_extra.pathExists)(targetGitDir))
|
|
@@ -31212,10 +31213,16 @@ async function setupTamaguiDotDir(template, isRetry = !1) {
|
|
|
31212
31213
|
exec(cmd, { cwd: targetGitDir }), console.info();
|
|
31213
31214
|
}
|
|
31214
31215
|
try {
|
|
31215
|
-
let
|
|
31216
|
-
|
|
31217
|
-
|
|
31218
|
-
|
|
31216
|
+
let remoteName = getDefaultRemoteName();
|
|
31217
|
+
if (await (0, import_fs_extra.pathExists)((0, import_node_path4.join)(targetGitDir, ".git"))) {
|
|
31218
|
+
let cmd2 = `git pull --rebase --allow-unrelated-histories --depth 1 ${remoteName} ${branch}`;
|
|
31219
|
+
exec(cmd2, {
|
|
31220
|
+
cwd: targetGitDir
|
|
31221
|
+
}), console.info();
|
|
31222
|
+
} else
|
|
31223
|
+
console.warn(
|
|
31224
|
+
`Warning: ${targetGitDir} is not a git repository. Skipping pull operation.`
|
|
31225
|
+
);
|
|
31219
31226
|
} catch (err) {
|
|
31220
31227
|
console.info(
|
|
31221
31228
|
`Error updating: ${err.message} ${isRetry ? `failing.
|
|
@@ -31227,15 +31234,17 @@ ${err.stack}` : "trying from fresh."}`
|
|
|
31227
31234
|
}
|
|
31228
31235
|
var getDefaultRemoteName = () => {
|
|
31229
31236
|
try {
|
|
31230
|
-
return (0, import_node_child_process2.execSync)("git remote").toString().trim().split(`
|
|
31231
|
-
`)[0] || "origin"
|
|
31237
|
+
return (0, import_fs_extra.pathExists)((0, import_node_path4.join)(targetGitDir, ".git")) ? (0, import_node_child_process2.execSync)("git remote", { cwd: targetGitDir }).toString().trim().split(`
|
|
31238
|
+
`)[0] || "origin" : (console.warn(
|
|
31239
|
+
'Warning: Not in a git repository. Using default remote name "origin".'
|
|
31240
|
+
), "origin");
|
|
31232
31241
|
} catch (error) {
|
|
31233
|
-
return console.
|
|
31242
|
+
return console.warn("Error getting default remote name:", error), console.warn('Using default remote name "origin".'), "origin";
|
|
31234
31243
|
}
|
|
31235
31244
|
};
|
|
31236
31245
|
|
|
31237
31246
|
// src/helpers/getProjectName.ts
|
|
31238
|
-
var
|
|
31247
|
+
var import_node_path5 = __toESM(require("node:path")), import_chalk6 = __toESM(require_source()), import_prompts = __toESM(require_prompts3());
|
|
31239
31248
|
|
|
31240
31249
|
// src/helpers/validateNpmPackage.ts
|
|
31241
31250
|
var import_validate_npm_package_name = __toESM(require_validate_npm_package_name());
|
|
@@ -31256,7 +31265,7 @@ var getProjectName = async (projectPath2) => {
|
|
|
31256
31265
|
message: "Project name:",
|
|
31257
31266
|
initial: "myapp",
|
|
31258
31267
|
validate: (name) => {
|
|
31259
|
-
let validation = validateNpmName(
|
|
31268
|
+
let validation = validateNpmName(import_node_path5.default.basename(import_node_path5.default.resolve(name)));
|
|
31260
31269
|
return validation.valid ? !0 : "Invalid project name: " + validation.problems[0];
|
|
31261
31270
|
}
|
|
31262
31271
|
});
|
|
@@ -31271,7 +31280,7 @@ var getProjectName = async (projectPath2) => {
|
|
|
31271
31280
|
var import_prompts3 = __toESM(require_prompts3());
|
|
31272
31281
|
|
|
31273
31282
|
// src/templates.ts
|
|
31274
|
-
var
|
|
31283
|
+
var import_chalk12 = __toESM(require_source());
|
|
31275
31284
|
|
|
31276
31285
|
// src/steps/simple-web.ts
|
|
31277
31286
|
var import_chalk7 = __toESM(require_source()), packageManager = "yarn", useYarn = packageManager === "yarn", runCommand = (scriptName) => `${packageManager} ${useYarn ? "" : "run "}${scriptName}`, main = async ({ isFullClone, projectName }) => {
|
|
@@ -31338,7 +31347,7 @@ visit your project:
|
|
|
31338
31347
|
}, remix_default = main4;
|
|
31339
31348
|
|
|
31340
31349
|
// src/steps/takeout.ts
|
|
31341
|
-
var
|
|
31350
|
+
var import_node_child_process3 = require("node:child_process"), import_node_fs3 = require("node:fs"), import_promises2 = __toESM(require("node:fs/promises")), import_node_path6 = __toESM(require("node:path")), import_chalk11 = __toESM(require_source()), import_prompts2 = __toESM(require_prompts3());
|
|
31342
31351
|
var packageManager4 = "yarn", useYarn4 = packageManager4 === "yarn", runCommand4 = (scriptName) => `${packageManager4} ${useYarn4 ? "" : "run "}${scriptName}`, main5 = async ({ isFullClone, projectName, projectPath: projectPath2 }) => {
|
|
31343
31352
|
console.info(`
|
|
31344
31353
|
${tamaguiRainbowAsciiArt.split(`
|
|
@@ -31370,12 +31379,12 @@ ${takeoutAsciiArt}
|
|
|
31370
31379
|
initial: !0
|
|
31371
31380
|
});
|
|
31372
31381
|
if (setUpSupabaseEnv) {
|
|
31373
|
-
let envs = getEnvFromSupabaseStatus((0,
|
|
31382
|
+
let envs = getEnvFromSupabaseStatus((0, import_node_child_process3.execSync)("yarn supa status").toString()), newEnvContent = Object.entries(envs).map(([key, value]) => `${key}=${value}`).join(`
|
|
31374
31383
|
`);
|
|
31375
|
-
(0,
|
|
31376
|
-
|
|
31377
|
-
|
|
31378
|
-
), await import_promises2.default.writeFile(
|
|
31384
|
+
(0, import_node_fs3.existsSync)(import_node_path6.default.join(projectPath2, ".env.local")) && (0, import_node_fs3.readFileSync)(import_node_path6.default.join(projectPath2, ".env.local")).toString() !== newEnvContent && (0, import_node_fs3.renameSync)(
|
|
31385
|
+
import_node_path6.default.join(projectPath2, ".env.local"),
|
|
31386
|
+
import_node_path6.default.join(projectPath2, `.env.local.old-${Number(/* @__PURE__ */ new Date())}`)
|
|
31387
|
+
), await import_promises2.default.writeFile(import_node_path6.default.join(projectPath2, "./.env.local"), newEnvContent);
|
|
31379
31388
|
}
|
|
31380
31389
|
}
|
|
31381
31390
|
console.info();
|
|
@@ -31418,7 +31427,7 @@ visit your project:
|
|
|
31418
31427
|
}, takeout_default = main5;
|
|
31419
31428
|
async function runRetryableCommand(cmd, retriesCount = 0) {
|
|
31420
31429
|
try {
|
|
31421
|
-
return (0,
|
|
31430
|
+
return (0, import_node_child_process3.execSync)(cmd, { stdio: "inherit" }), !0;
|
|
31422
31431
|
} catch {
|
|
31423
31432
|
let { tryAgain } = await (0, import_prompts2.default)({
|
|
31424
31433
|
name: "tryAgain",
|
|
@@ -31446,7 +31455,7 @@ async function linkSupabase() {
|
|
|
31446
31455
|
initial: !0
|
|
31447
31456
|
}), cmd = `npx supabase link --project-ref ${supabaseRefId.trim()}`;
|
|
31448
31457
|
try {
|
|
31449
|
-
return (0,
|
|
31458
|
+
return (0, import_node_child_process3.execSync)(cmd, {
|
|
31450
31459
|
stdio: "inherit"
|
|
31451
31460
|
}), !0;
|
|
31452
31461
|
} catch {
|
|
@@ -31480,7 +31489,7 @@ function getEnvFromSupabaseStatus(status) {
|
|
|
31480
31489
|
}
|
|
31481
31490
|
|
|
31482
31491
|
// src/templates.ts
|
|
31483
|
-
var
|
|
31492
|
+
var templates = [
|
|
31484
31493
|
{
|
|
31485
31494
|
title: "Free - Expo + Next in a production ready monorepo",
|
|
31486
31495
|
value: "starter-free",
|
|
@@ -31488,7 +31497,7 @@ var repoRoot = (0, import_path9.join)(__dirname, "..", "..", ".."), starterFreeR
|
|
|
31488
31497
|
hidden: !1,
|
|
31489
31498
|
packageManager: "yarn",
|
|
31490
31499
|
repo: {
|
|
31491
|
-
url:
|
|
31500
|
+
url: process.env.STARTER_FREE_REPO_SOURCE || "https://github.com/tamagui/starter-free.git",
|
|
31492
31501
|
sshFallback: "git@github.com:tamagui/starter-free.git",
|
|
31493
31502
|
dir: [],
|
|
31494
31503
|
branch: "main"
|
|
@@ -31516,8 +31525,9 @@ var repoRoot = (0, import_path9.join)(__dirname, "..", "..", ".."), starterFreeR
|
|
|
31516
31525
|
value: "expo-router",
|
|
31517
31526
|
type: "included-in-monorepo",
|
|
31518
31527
|
hidden: !1,
|
|
31528
|
+
packageManager: "yarn",
|
|
31519
31529
|
repo: {
|
|
31520
|
-
url:
|
|
31530
|
+
url: process.env.TAMAGUI_REPO_SOURCE || "https://github.com/tamagui/tamagui.git",
|
|
31521
31531
|
sshFallback: "git@github.com:tamagui/tamagui.git",
|
|
31522
31532
|
dir: ["code", "starters", "expo-router"],
|
|
31523
31533
|
branch: "master"
|
|
@@ -31529,8 +31539,9 @@ var repoRoot = (0, import_path9.join)(__dirname, "..", "..", ".."), starterFreeR
|
|
|
31529
31539
|
value: "simple-web",
|
|
31530
31540
|
type: "included-in-monorepo",
|
|
31531
31541
|
hidden: !1,
|
|
31542
|
+
packageManager: "yarn",
|
|
31532
31543
|
repo: {
|
|
31533
|
-
url:
|
|
31544
|
+
url: process.env.TAMAGUI_REPO_SOURCE || "https://github.com/tamagui/tamagui.git",
|
|
31534
31545
|
sshFallback: "git@github.com:tamagui/tamagui.git",
|
|
31535
31546
|
dir: ["code", "starters", "simple-web"],
|
|
31536
31547
|
branch: "master"
|
|
@@ -31542,8 +31553,9 @@ var repoRoot = (0, import_path9.join)(__dirname, "..", "..", ".."), starterFreeR
|
|
|
31542
31553
|
value: "remix",
|
|
31543
31554
|
type: "included-in-monorepo",
|
|
31544
31555
|
hidden: !1,
|
|
31556
|
+
packageManager: "yarn",
|
|
31545
31557
|
repo: {
|
|
31546
|
-
url:
|
|
31558
|
+
url: process.env.TAMAGUI_REPO_SOURCE || "https://github.com/tamagui/tamagui.git",
|
|
31547
31559
|
sshFallback: "git@github.com:tamagui/tamagui.git",
|
|
31548
31560
|
dir: ["code", "starters", "remix"],
|
|
31549
31561
|
branch: "master"
|
|
@@ -31566,6 +31578,10 @@ var validTemplates = templates.map(({ value }) => value).join(", "), getTemplate
|
|
|
31566
31578
|
// src/helpers/installDependencies.ts
|
|
31567
31579
|
var PackageManager = __toESM(require_build());
|
|
31568
31580
|
async function installDependencies(projectRoot, packageManager5) {
|
|
31581
|
+
if (process.env.VITEST) {
|
|
31582
|
+
console.warn("Skipping dependency installation because Vitest 2 is running.");
|
|
31583
|
+
return;
|
|
31584
|
+
}
|
|
31569
31585
|
let options = { cwd: projectRoot };
|
|
31570
31586
|
packageManager5 === "yarn" ? await new PackageManager.YarnPackageManager(options).installAsync() : await new PackageManager.NpmPackageManager(options).installAsync();
|
|
31571
31587
|
}
|
|
@@ -31594,73 +31610,77 @@ ${import_chalk13.default.blueBright(`npx ${package_default.name} next-expo`)}`
|
|
|
31594
31610
|
process.argv.includes("--version") && (console.info(package_default.version), process.exit(0));
|
|
31595
31611
|
var info = !!program.info;
|
|
31596
31612
|
async function run() {
|
|
31597
|
-
|
|
31598
|
-
|
|
31599
|
-
|
|
31600
|
-
|
|
31601
|
-
|
|
31602
|
-
|
|
31603
|
-
|
|
31604
|
-
|
|
31605
|
-
|
|
31606
|
-
|
|
31607
|
-
|
|
31608
|
-
|
|
31609
|
-
|
|
31610
|
-
(
|
|
31611
|
-
|
|
31613
|
+
try {
|
|
31614
|
+
if (info) {
|
|
31615
|
+
let template2 = await getTemplateInfo(program.template);
|
|
31616
|
+
template2?.extraSteps && await template2.extraSteps({
|
|
31617
|
+
isFullClone: !1,
|
|
31618
|
+
projectName: import_node_path7.default.basename((0, import_node_process3.cwd)()),
|
|
31619
|
+
projectPath: (0, import_node_process3.cwd)()
|
|
31620
|
+
}), process.exit(0);
|
|
31621
|
+
}
|
|
31622
|
+
console.info(), console.info(
|
|
31623
|
+
import_chalk13.default.bold(
|
|
31624
|
+
' Note: You may need to run "npm create tamagui@latest" to get the latest version!'
|
|
31625
|
+
)
|
|
31626
|
+
), console.info(), console.info(), console.info(tamaguiRainbowAsciiArt), console.info(import_chalk13.default.bold("Creating tamagui app...")), Number.parseFloat(
|
|
31627
|
+
(0, import_node_child_process4.execSync)("git --version").toString().replace("git version ", "").trim()
|
|
31628
|
+
) < 2.27 && (console.error(`
|
|
31612
31629
|
|
|
31613
31630
|
\u26A0\uFE0F Tamagui can't install: Git version must be >= 2.27
|
|
31614
31631
|
|
|
31615
31632
|
`), process.exit(1)), projectPath ||= await getProjectName(projectPath);
|
|
31616
|
-
|
|
31617
|
-
|
|
31618
|
-
|
|
31619
|
-
|
|
31620
|
-
|
|
31621
|
-
|
|
31622
|
-
|
|
31633
|
+
let template = await getTemplateInfo(program.template);
|
|
31634
|
+
template.type === "premium" && ((await (0, import_prompts4.default)({
|
|
31635
|
+
type: "confirm",
|
|
31636
|
+
name: "purchased",
|
|
31637
|
+
message: "Have you purchased Takeout on https://tamagui.dev/takeout"
|
|
31638
|
+
})).purchased || ((0, import_opener.default)("https://tamagui.dev/takeout"), console.info(
|
|
31639
|
+
`
|
|
31623
31640
|
Opening Takeout website - once you purchase you can restart the create process. Thank you!
|
|
31624
31641
|
`
|
|
31625
|
-
|
|
31626
|
-
|
|
31627
|
-
|
|
31628
|
-
|
|
31629
|
-
|
|
31630
|
-
|
|
31631
|
-
|
|
31632
|
-
|
|
31633
|
-
|
|
31634
|
-
|
|
31635
|
-
|
|
31636
|
-
|
|
31637
|
-
|
|
31642
|
+
), process.exit(0))), console.info();
|
|
31643
|
+
let resolvedProjectPath = import_node_path7.default.resolve(process.cwd(), projectPath), projectName = import_node_path7.default.basename(resolvedProjectPath), { valid, problems } = validateNpmName(projectName);
|
|
31644
|
+
valid || (console.error(
|
|
31645
|
+
`Could not create a project called ${import_chalk13.default.red(
|
|
31646
|
+
`"${projectName}"`
|
|
31647
|
+
)} because of npm naming restrictions:`
|
|
31648
|
+
), problems.forEach((p) => console.error(` ${import_chalk13.default.red.bold("*")} ${p}`)), process.exit(1)), import_node_fs4.default.existsSync(resolvedProjectPath) && (console.info(), console.info(
|
|
31649
|
+
import_chalk13.default.red("\u{1F6A8} [tamagui] error"),
|
|
31650
|
+
`You tried to make a project called ${import_chalk13.default.underline(
|
|
31651
|
+
import_chalk13.default.blueBright(projectName)
|
|
31652
|
+
)}, but a folder with that name already exists: ${import_chalk13.default.blueBright(
|
|
31653
|
+
resolvedProjectPath
|
|
31654
|
+
)}
|
|
31638
31655
|
|
|
31639
31656
|
${import_chalk13.default.bold(import_chalk13.default.red("Please pick a different project name \u{1F978}"))}`
|
|
31640
|
-
|
|
31641
|
-
|
|
31642
|
-
|
|
31643
|
-
|
|
31644
|
-
|
|
31657
|
+
), console.info(), console.info(), process.exit(1)), console.info(), console.info(`Creating a new tamagui app ${import_chalk13.default.blueBright(resolvedProjectPath)}...`), import_node_fs4.default.mkdirSync(resolvedProjectPath), console.info(import_chalk13.default.green(`${projectName} folder created.`));
|
|
31658
|
+
try {
|
|
31659
|
+
await cloneStarter(template, resolvedProjectPath, projectName), cd(resolvedProjectPath), console.info();
|
|
31660
|
+
} catch (e) {
|
|
31661
|
+
console.error(`[tamagui] Failed to copy example into ${resolvedProjectPath}
|
|
31645
31662
|
|
|
31646
31663
|
`, e), process.exit(1);
|
|
31647
|
-
|
|
31648
|
-
|
|
31649
|
-
|
|
31650
|
-
|
|
31651
|
-
|
|
31652
|
-
|
|
31653
|
-
|
|
31664
|
+
}
|
|
31665
|
+
updatePackageJsonName(projectName, resolvedProjectPath), console.info("Installing packages. This might take a couple of minutes."), console.info();
|
|
31666
|
+
let packageManager5 = ("packageManager" in template ? template.packageManager : void 0) || await detect();
|
|
31667
|
+
try {
|
|
31668
|
+
console.info("installing with " + packageManager5), await installDependencies(resolvedProjectPath, packageManager5);
|
|
31669
|
+
} catch (e) {
|
|
31670
|
+
console.error("[tamagui] error installing with " + packageManager5 + `
|
|
31654
31671
|
${e}`), process.exit(1);
|
|
31672
|
+
}
|
|
31673
|
+
await template?.extraSteps?.({
|
|
31674
|
+
isFullClone: !0,
|
|
31675
|
+
projectName,
|
|
31676
|
+
projectPath: resolvedProjectPath
|
|
31677
|
+
}), console.info(), console.info(import_chalk13.default.gray(tamaguiDuckAsciiArt)), process.exit(0);
|
|
31678
|
+
} catch (error) {
|
|
31679
|
+
console.error("An unexpected error occurred:", error), process.exit(1);
|
|
31655
31680
|
}
|
|
31656
|
-
await template.extraSteps({
|
|
31657
|
-
isFullClone: !0,
|
|
31658
|
-
projectName,
|
|
31659
|
-
projectPath: resolvedProjectPath
|
|
31660
|
-
}), console.info(), console.info(import_chalk13.default.gray(tamaguiDuckAsciiArt));
|
|
31661
31681
|
}
|
|
31662
31682
|
function updatePackageJsonName(projectName, dir) {
|
|
31663
|
-
let packageJsonPath =
|
|
31683
|
+
let packageJsonPath = import_node_path7.default.join(dir, "package.json");
|
|
31664
31684
|
if ((0, import_fs_extra2.existsSync)(packageJsonPath)) {
|
|
31665
31685
|
let contentWithUpdatedName = (0, import_fs_extra2.readFileSync)(packageJsonPath).toString().replace(
|
|
31666
31686
|
/("name": ")(.*)(",)/,
|
|
@@ -31669,7 +31689,9 @@ function updatePackageJsonName(projectName, dir) {
|
|
|
31669
31689
|
(0, import_fs_extra2.writeFileSync)(packageJsonPath, contentWithUpdatedName);
|
|
31670
31690
|
}
|
|
31671
31691
|
}
|
|
31672
|
-
run()
|
|
31692
|
+
run().catch((error) => {
|
|
31693
|
+
console.error("An unexpected error occurred:", error), process.exit(1);
|
|
31694
|
+
});
|
|
31673
31695
|
/*! Bundled license information:
|
|
31674
31696
|
|
|
31675
31697
|
is-extglob/index.js:
|