Skip to content

Commit 61d8e3a

Browse files
committed
Fixed exercises
1 parent 6e7f3d7 commit 61d8e3a

File tree

2 files changed

+109
-2
lines changed

2 files changed

+109
-2
lines changed

package.json

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,78 @@
1515
"exercise": "node scripts/exercise.js",
1616
"e": "npm run exercise",
1717
"solution": "cross-env SOLUTION=true node scripts/exercise.js",
18-
"s": "npm run solution"
18+
"s": "npm run solution",
19+
"prepare": "node ./scripts/prepare-stackblitz.js",
20+
"e-02": "npm run exercise -- 02",
21+
"s-02": "npm run solution -- 02",
22+
"e-03": "npm run exercise -- 03",
23+
"s-03": "npm run solution -- 03",
24+
"e-04": "npm run exercise -- 04",
25+
"s-04": "npm run solution -- 04",
26+
"e-05": "npm run exercise -- 05",
27+
"s-05": "npm run solution -- 05",
28+
"e-06": "npm run exercise -- 06",
29+
"s-06": "npm run solution -- 06",
30+
"e-07": "npm run exercise -- 07",
31+
"s-07": "npm run solution -- 07",
32+
"e-08": "npm run exercise -- 08",
33+
"s-08": "npm run solution -- 08",
34+
"e-09": "npm run exercise -- 09",
35+
"s-09": "npm run solution -- 09",
36+
"e-10": "npm run exercise -- 10",
37+
"s-10": "npm run solution -- 10",
38+
"e-12": "npm run exercise -- 12",
39+
"s-12": "npm run solution -- 12",
40+
"e-13": "npm run exercise -- 13",
41+
"s-13": "npm run solution -- 13",
42+
"e-14": "npm run exercise -- 14",
43+
"s-14": "npm run solution -- 14",
44+
"e-15": "npm run exercise -- 15",
45+
"s-15": "npm run solution -- 15",
46+
"e-16": "npm run exercise -- 16",
47+
"s-16": "npm run solution -- 16",
48+
"e-17": "npm run exercise -- 17",
49+
"s-17": "npm run solution -- 17",
50+
"e-17.8": "npm run exercise -- 17.8",
51+
"s-17.8": "npm run solution -- 17.8",
52+
"e-18": "npm run exercise -- 18",
53+
"s-18": "npm run solution -- 18",
54+
"e-18.2": "npm run exercise -- 18.2",
55+
"s-18.2": "npm run solution -- 18.2",
56+
"e-20": "npm run exercise -- 20",
57+
"s-20": "npm run solution -- 20",
58+
"e-21": "npm run exercise -- 21",
59+
"s-21": "npm run solution -- 21",
60+
"e-22": "npm run exercise -- 22",
61+
"s-22": "npm run solution -- 22",
62+
"e-23": "npm run exercise -- 23",
63+
"s-23": "npm run solution -- 23",
64+
"e-24": "npm run exercise -- 24",
65+
"s-24": "npm run solution -- 24",
66+
"e-25": "npm run exercise -- 25",
67+
"s-25": "npm run solution -- 25",
68+
"e-26": "npm run exercise -- 26",
69+
"s-26": "npm run solution -- 26",
70+
"e-26.5": "npm run exercise -- 26.5",
71+
"s-26.5": "npm run solution -- 26.5",
72+
"e-27": "npm run exercise -- 27",
73+
"s-27": "npm run solution -- 27",
74+
"e-28": "npm run exercise -- 28",
75+
"s-28": "npm run solution -- 28",
76+
"e-29": "npm run exercise -- 29",
77+
"s-29": "npm run solution -- 29",
78+
"e-30": "npm run exercise -- 30",
79+
"s-30": "npm run solution -- 30",
80+
"e-30.5": "npm run exercise -- 30.5",
81+
"s-30.5": "npm run solution -- 30.5",
82+
"e-31": "npm run exercise -- 31",
83+
"s-31": "npm run solution -- 31",
84+
"e-32": "npm run exercise -- 32",
85+
"s-32": "npm run solution -- 32",
86+
"e-33": "npm run exercise -- 33",
87+
"s-33": "npm run solution -- 33",
88+
"e-34": "npm run exercise -- 34",
89+
"s-34": "npm run solution -- 34"
1990
},
2091
"dependencies": {
2192
"@types/express": "^4.17.14",
@@ -29,4 +100,4 @@
29100
"ts-toolbelt": "^9.6.0",
30101
"zod": "^3.19.1"
31102
}
32-
}
103+
}

scripts/prepare-stackblitz.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
const fs = require("fs");
2+
const path = require("path");
3+
const fg = require("fast-glob");
4+
5+
/**
6+
* Adds a bunch of scripts, like e-01, e-02 to package.json
7+
* so that StackBlitz can run them programmatically via URL
8+
* commands
9+
*/
10+
11+
const packageJsonPath = path.resolve(__dirname, "../package.json");
12+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
13+
14+
const srcPath = path.resolve(__dirname, "../src");
15+
const allExercises = fg.sync(
16+
path.join(srcPath, "**", "**.ts").replace(/\\/g, "/"),
17+
);
18+
const exerciseFiles = allExercises.filter((exercise) =>
19+
exercise.includes(".problem."),
20+
);
21+
const exerciseNames = exerciseFiles.map(
22+
(exercise) => path.parse(exercise).base.split("-")[0],
23+
);
24+
25+
const newPackageJson = Object.assign({}, packageJson);
26+
27+
newPackageJson.scripts = {
28+
...packageJson.scripts,
29+
};
30+
31+
exerciseNames.forEach((exercise) => {
32+
newPackageJson.scripts[`e-${exercise}`] = `npm run exercise -- ${exercise}`;
33+
newPackageJson.scripts[`s-${exercise}`] = `npm run solution -- ${exercise}`;
34+
});
35+
36+
fs.writeFileSync(packageJsonPath, JSON.stringify(newPackageJson, null, 2));

0 commit comments

Comments
 (0)