create-astro 4.7.1 → 4.7.3

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 CHANGED
@@ -162,7 +162,7 @@ var require_arg = __commonJS({
162
162
  fn[flagSymbol] = true;
163
163
  return fn;
164
164
  };
165
- arg2.COUNT = arg2.flag((v2, name, existingCount) => (existingCount || 0) + 1);
165
+ arg2.COUNT = arg2.flag((v, name, existingCount) => (existingCount || 0) + 1);
166
166
  arg2.ArgError = ArgError;
167
167
  module.exports = arg2;
168
168
  }
@@ -229,13 +229,20 @@ async function shell(command, flags, opts = {}) {
229
229
  }
230
230
 
231
231
  // src/messages.ts
232
+ var _registry;
232
233
  async function getRegistry(packageManager) {
234
+ if (_registry)
235
+ return _registry;
236
+ const fallback = "https://registry.npmjs.org";
233
237
  try {
234
238
  const { stdout: stdout2 } = await shell(packageManager, ["config", "get", "registry"]);
235
- return stdout2?.trim()?.replace(/\/$/, "") || "https://registry.npmjs.org";
239
+ _registry = stdout2?.trim()?.replace(/\/$/, "") || fallback;
240
+ if (!new URL(_registry).host)
241
+ _registry = fallback;
236
242
  } catch (e) {
237
- return "https://registry.npmjs.org";
243
+ _registry = fallback;
238
244
  }
245
+ return _registry;
239
246
  }
240
247
  var stdout = process.stdout;
241
248
  function setStdout(writable) {
@@ -258,17 +265,15 @@ var getName = () => new Promise((resolve) => {
258
265
  });
259
266
  });
260
267
  });
261
- var v;
262
- var getVersion = (packageManager) => new Promise(async (resolve) => {
263
- if (v)
264
- return resolve(v);
268
+ var getVersion = (packageManager, packageName, fallback = "") => new Promise(async (resolve) => {
265
269
  let registry = await getRegistry(packageManager);
266
- const { version } = await fetch(`${registry}/astro/latest`, { redirect: "follow" }).then(
270
+ const { version } = await fetch(`${registry}/${packageName}/latest`, {
271
+ redirect: "follow"
272
+ }).then(
267
273
  (res) => res.json(),
268
- () => ({ version: "" })
274
+ () => ({ version: fallback })
269
275
  );
270
- v = version;
271
- resolve(version);
276
+ return resolve(version);
272
277
  });
273
278
  var log = (message) => stdout.write(message + "\n");
274
279
  var banner = () => {
@@ -361,7 +366,7 @@ function printHelp({
361
366
  if (headline) {
362
367
  message.push(
363
368
  linebreak(),
364
- `${title(commandName)} ${color.green(`v${"4.7.1"}`)} ${headline}`
369
+ `${title(commandName)} ${color.green(`v${"4.7.3"}`)} ${headline}`
365
370
  );
366
371
  }
367
372
  if (usage) {
@@ -538,14 +543,14 @@ async function getContext(argv) {
538
543
  if (typescript2 == void 0)
539
544
  typescript2 = "strict";
540
545
  }
541
- skipHouston = (os.platform() === "win32" && !fancy || skipHouston) ?? [yes, no, install2, git2, typescript2].some((v2) => v2 !== void 0);
546
+ skipHouston = (os.platform() === "win32" && !fancy || skipHouston) ?? [yes, no, install2, git2, typescript2].some((v) => v !== void 0);
542
547
  const { messages, hats, ties } = getSeasonalHouston({ fancy });
543
548
  const context = {
544
549
  help: help2,
545
550
  prompt,
546
551
  packageManager,
547
552
  username: getName(),
548
- version: getVersion(packageManager),
553
+ version: getVersion(packageManager, "astro"),
549
554
  skipHouston,
550
555
  fancy,
551
556
  dryRun,
@@ -1129,19 +1134,21 @@ async function typescript(ctx) {
1129
1134
  var FILES_TO_UPDATE2 = {
1130
1135
  "package.json": async (file, options) => {
1131
1136
  try {
1132
- if (options.ctx.install)
1133
- await shell(options.ctx.packageManager, ["add", "@astrojs/check", "typescript"], {
1134
- cwd: path6.dirname(file),
1135
- stdio: "ignore"
1136
- });
1137
1137
  const data = await readFile(file, { encoding: "utf-8" });
1138
1138
  const indent = /(^\s+)/m.exec(data)?.[1] ?? " ";
1139
1139
  const parsedPackageJson = JSON.parse(data);
1140
1140
  const buildScript = parsedPackageJson.scripts?.build;
1141
1141
  if (typeof buildScript === "string" && !buildScript.includes("astro check")) {
1142
1142
  parsedPackageJson.scripts.build = `astro check && ${buildScript}`;
1143
- await writeFile(file, JSON.stringify(parsedPackageJson, null, indent), "utf-8");
1144
1143
  }
1144
+ const [astroCheckVersion, typescriptVersion] = await Promise.all([
1145
+ getVersion(options.ctx.packageManager, "@astrojs/check"),
1146
+ getVersion(options.ctx.packageManager, "typescript")
1147
+ ]);
1148
+ parsedPackageJson.dependencies ??= {};
1149
+ parsedPackageJson.dependencies["@astrojs/check"] = `^${astroCheckVersion}`;
1150
+ parsedPackageJson.dependencies.typescript = `^${typescriptVersion}`;
1151
+ await writeFile(file, JSON.stringify(parsedPackageJson, null, indent), "utf-8");
1145
1152
  } catch (err) {
1146
1153
  if (err && err.code === "ENOENT")
1147
1154
  return;
@@ -1256,8 +1263,8 @@ async function main() {
1256
1263
  intro,
1257
1264
  projectName,
1258
1265
  template,
1259
- dependencies,
1260
1266
  typescript,
1267
+ dependencies,
1261
1268
  // Steps which write to files need to go above git
1262
1269
  git
1263
1270
  ];
@@ -11,7 +11,7 @@ export declare function spinner(args: {
11
11
  }): Promise<void>;
12
12
  export declare const title: (text: string) => string;
13
13
  export declare const getName: () => Promise<string>;
14
- export declare const getVersion: (packageManager: string) => Promise<string>;
14
+ export declare const getVersion: (packageManager: string, packageName: string, fallback?: string) => Promise<string>;
15
15
  export declare const log: (message: string) => boolean;
16
16
  export declare const banner: () => void;
17
17
  export declare const bannerAbort: () => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-astro",
3
- "version": "4.7.1",
3
+ "version": "4.7.3",
4
4
  "type": "module",
5
5
  "author": "withastro",
6
6
  "license": "MIT",
@@ -46,6 +46,6 @@
46
46
  "build": "astro-scripts build \"src/index.ts\" --bundle && tsc",
47
47
  "build:ci": "astro-scripts build \"src/index.ts\" --bundle",
48
48
  "dev": "astro-scripts dev \"src/**/*.ts\"",
49
- "test": "mocha --exit --timeout 20000 --parallel"
49
+ "test": "astro-scripts test \"test/**/*.test.js\""
50
50
  }
51
51
  }