Skip to content

Commit 2b7a34b

Browse files
committed
polish: Added scripts to package.json
To get wrangler init projects up and running with good ergonomics for deploying and development, added default scripts "start" & "deploy" with assumed TS or JS files in generated ./src/index
1 parent 536c7e5 commit 2b7a34b

File tree

2 files changed

+96
-2
lines changed

2 files changed

+96
-2
lines changed

packages/wrangler/src/__tests__/index.test.ts

+71-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ describe("wrangler", () => {
163163
const packageJson = JSON.parse(
164164
fs.readFileSync("./package.json", "utf-8")
165165
);
166-
expect(packageJson.name).toEqual("worker"); // TODO: should we infer the name from the directory?
166+
expect(packageJson.name).toContain("wrangler-tests");
167167
expect(packageJson.version).toEqual("0.0.0");
168168
expect(packageJson.devDependencies).toEqual({
169169
wrangler: expect.any(String),
@@ -329,6 +329,76 @@ describe("wrangler", () => {
329329
expect(fs.existsSync("./src/index.ts")).toBe(true);
330330
});
331331

332+
it("should add scripts for a typescript project with .ts extension", async () => {
333+
mockConfirm(
334+
{
335+
text: "No package.json found. Would you like to create one?",
336+
result: true,
337+
},
338+
{
339+
text: "Would you like to install wrangler into your package.json?",
340+
result: false,
341+
},
342+
{
343+
text: "Would you like to use TypeScript?",
344+
result: true,
345+
},
346+
{
347+
text: "Would you like to create a Worker at src/index.ts?",
348+
result: true,
349+
}
350+
);
351+
await runWrangler("init");
352+
353+
expect(fs.existsSync("./package.json")).toBe(true);
354+
const packageJson = JSON.parse(
355+
fs.readFileSync("./package.json", "utf-8")
356+
);
357+
358+
expect(fs.existsSync("./src/index.js")).toBe(false);
359+
expect(fs.existsSync("./src/index.ts")).toBe(true);
360+
361+
expect(packageJson.scripts.start).toBe("wrangler dev src/index.ts");
362+
expect(packageJson.scripts.deploy).toBe("wrangler publish src/index.ts");
363+
expect(packageJson.name).toContain("wrangler-tests");
364+
expect(packageJson.version).toEqual("0.0.0");
365+
});
366+
367+
it("should add scripts for a non-ts project with .js extension", async () => {
368+
mockConfirm(
369+
{
370+
text: "No package.json found. Would you like to create one?",
371+
result: true,
372+
},
373+
{
374+
text: "Would you like to install wrangler into your package.json?",
375+
result: false,
376+
},
377+
{
378+
text: "Would you like to use TypeScript?",
379+
result: false,
380+
},
381+
{
382+
text: "Would you like to create a Worker at src/index.js?",
383+
result: true,
384+
}
385+
);
386+
await runWrangler("init");
387+
388+
expect(fs.existsSync("./package.json")).toBe(true);
389+
const packageJson = JSON.parse(
390+
fs.readFileSync("./package.json", "utf-8")
391+
);
392+
393+
expect(fs.existsSync("./src/index.js")).toBe(true);
394+
expect(fs.existsSync("./src/index.ts")).toBe(false);
395+
396+
expect(packageJson.scripts.start).toBe("wrangler dev src/index.js");
397+
expect(packageJson.scripts.deploy).toBe("wrangler publish src/index.js");
398+
expect(packageJson.name).toContain("wrangler-tests");
399+
expect(packageJson.version).toEqual("0.0.0");
400+
});
401+
332402
it("should not offer to create a worker in a non-ts project if a file already exists at the location", async () => {
333403
mockConfirm(
334404
{

packages/wrangler/src/index.tsx

+25-1
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ export async function main(argv: string[]): Promise<void> {
227227
"./package.json",
228228
JSON.stringify(
229229
{
230-
name: "worker",
230+
name: args.name || path.basename(path.resolve(process.cwd())),
231231
version: "0.0.0",
232232
devDependencies: {
233233
wrangler: wranglerVersion,
@@ -347,6 +347,18 @@ export async function main(argv: string[]): Promise<void> {
347347
"utf-8"
348348
)
349349
);
350+
351+
await writeFile(
352+
pathToPackageJson,
353+
JSON.stringify({
354+
...JSON.parse(await readFile(pathToPackageJson, "utf-8")),
355+
scripts: {
356+
start: "wrangler dev src/index.ts",
357+
deploy: "wrangler publish src/index.ts",
358+
},
359+
})
360+
);
361+
350362
console.log(`✨ Created src/index.ts`);
351363
}
352364
}
@@ -364,6 +376,18 @@ export async function main(argv: string[]): Promise<void> {
364376
"utf-8"
365377
)
366378
);
379+
380+
await writeFile(
381+
pathToPackageJson,
382+
JSON.stringify({
383+
...JSON.parse(await readFile(pathToPackageJson, "utf-8")),
384+
scripts: {
385+
start: "wrangler dev src/index.js",
386+
deploy: "wrangler publish src/index.js",
387+
},
388+
})
389+
);
390+
367391
console.log(`✨ Created src/index.js`);
368392
}
369393
}

0 commit comments

Comments
 (0)