diff --git a/.changeset/fetch-latest-pds-version.md b/.changeset/fetch-latest-pds-version.md new file mode 100644 index 00000000..057a7629 --- /dev/null +++ b/.changeset/fetch-latest-pds-version.md @@ -0,0 +1,5 @@ +--- +"create-pds": patch +--- + +Fetch latest @ascorbic/pds version from npm registry when creating a new project diff --git a/packages/create-pds/src/index.ts b/packages/create-pds/src/index.ts index ff7f5f70..b59e35c8 100644 --- a/packages/create-pds/src/index.ts +++ b/packages/create-pds/src/index.ts @@ -97,6 +97,22 @@ async function replaceInFile( await writeFile(filePath, content); } +async function getLatestPdsVersion(): Promise { + try { + const response = await fetch( + "https://registry.npmjs.org/@ascorbic/pds/latest", + ); + if (!response.ok) { + throw new Error(`Failed to fetch: ${response.status}`); + } + const data = (await response.json()) as { version: string }; + return `^${data.version}`; + } catch { + // Fallback to a known version if fetch fails + return "^0.2.0"; + } +} + const main = defineCommand({ meta: { name: "create-pds", @@ -225,6 +241,10 @@ const main = defineCommand({ // Copy template const spinner = p.spinner(); + spinner.start("Fetching latest @ascorbic/pds version..."); + const pdsVersion = await getLatestPdsVersion(); + spinner.stop(`Using @ascorbic/pds ${pdsVersion}`); + spinner.start("Copying template..."); const templateDir = join(__dirname, "..", "templates", "pds-worker"); @@ -233,6 +253,7 @@ const main = defineCommand({ // Replace placeholders in package.json await replaceInFile(join(targetDir, "package.json"), { name: projectName, + pdsVersion, }); spinner.stop("Template copied"); diff --git a/packages/create-pds/templates/pds-worker/package.json.tmpl b/packages/create-pds/templates/pds-worker/package.json.tmpl index 80db5bd1..c299759a 100644 --- a/packages/create-pds/templates/pds-worker/package.json.tmpl +++ b/packages/create-pds/templates/pds-worker/package.json.tmpl @@ -5,7 +5,7 @@ "type": "module", "private": true, "dependencies": { - "@ascorbic/pds": "^0.0.0" + "@ascorbic/pds": "{{pdsVersion}}" }, "devDependencies": { "@cloudflare/vite-plugin": "^1.17.0",