Skip to content

Commit ba11a24

Browse files
committed
Fixed exercises
1 parent 958d43a commit ba11a24

File tree

3 files changed

+118
-3
lines changed

3 files changed

+118
-3
lines changed

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 81 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"version": "1.0.0",
44
"main": "index.js",
55
"author": "Matt Pocock <[email protected]>",
6-
"license": "GPL-2.0",
6+
"license": "GPL",
77
"devDependencies": {
88
"@types/node": "^18.6.5",
99
"@types/react": "^18.0.27",
@@ -16,7 +16,86 @@
1616
"exercise": "node scripts/exercise.js",
1717
"e": "npm run exercise",
1818
"solution": "cross-env SOLUTION=true node scripts/exercise.js",
19-
"s": "npm run solution"
19+
"s": "npm run solution",
20+
"prepare": "node ./scripts/prepare-stackblitz.js",
21+
"e-01": "npm run exercise -- 01",
22+
"s-01": "npm run solution -- 01",
23+
"e-02": "npm run exercise -- 02",
24+
"s-02": "npm run solution -- 02",
25+
"e-03": "npm run exercise -- 03",
26+
"s-03": "npm run solution -- 03",
27+
"e-04": "npm run exercise -- 04",
28+
"s-04": "npm run solution -- 04",
29+
"e-05": "npm run exercise -- 05",
30+
"s-05": "npm run solution -- 05",
31+
"e-06": "npm run exercise -- 06",
32+
"s-06": "npm run solution -- 06",
33+
"e-07": "npm run exercise -- 07",
34+
"s-07": "npm run solution -- 07",
35+
"e-08": "npm run exercise -- 08",
36+
"s-08": "npm run solution -- 08",
37+
"e-09": "npm run exercise -- 09",
38+
"s-09": "npm run solution -- 09",
39+
"e-10": "npm run exercise -- 10",
40+
"s-10": "npm run solution -- 10",
41+
"e-11": "npm run exercise -- 11",
42+
"s-11": "npm run solution -- 11",
43+
"e-12": "npm run exercise -- 12",
44+
"s-12": "npm run solution -- 12",
45+
"e-13": "npm run exercise -- 13",
46+
"s-13": "npm run solution -- 13",
47+
"e-14": "npm run exercise -- 14",
48+
"s-14": "npm run solution -- 14",
49+
"e-14.7": "npm run exercise -- 14.7",
50+
"s-14.7": "npm run solution -- 14.7",
51+
"e-15": "npm run exercise -- 15",
52+
"s-15": "npm run solution -- 15",
53+
"e-16": "npm run exercise -- 16",
54+
"s-16": "npm run solution -- 16",
55+
"e-17": "npm run exercise -- 17",
56+
"s-17": "npm run solution -- 17",
57+
"e-17.5": "npm run exercise -- 17.5",
58+
"s-17.5": "npm run solution -- 17.5",
59+
"e-18": "npm run exercise -- 18",
60+
"s-18": "npm run solution -- 18",
61+
"e-19": "npm run exercise -- 19",
62+
"s-19": "npm run solution -- 19",
63+
"e-20": "npm run exercise -- 20",
64+
"s-20": "npm run solution -- 20",
65+
"e-20.5": "npm run exercise -- 20.5",
66+
"s-20.5": "npm run solution -- 20.5",
67+
"e-20.6": "npm run exercise -- 20.6",
68+
"s-20.6": "npm run solution -- 20.6",
69+
"e-20.7": "npm run exercise -- 20.7",
70+
"s-20.7": "npm run solution -- 20.7",
71+
"e-21": "npm run exercise -- 21",
72+
"s-21": "npm run solution -- 21",
73+
"e-22": "npm run exercise -- 22",
74+
"s-22": "npm run solution -- 22",
75+
"e-23": "npm run exercise -- 23",
76+
"s-23": "npm run solution -- 23",
77+
"e-24": "npm run exercise -- 24",
78+
"s-24": "npm run solution -- 24",
79+
"e-25": "npm run exercise -- 25",
80+
"s-25": "npm run solution -- 25",
81+
"e-26": "npm run exercise -- 26",
82+
"s-26": "npm run solution -- 26",
83+
"e-27": "npm run exercise -- 27",
84+
"s-27": "npm run solution -- 27",
85+
"e-28": "npm run exercise -- 28",
86+
"s-28": "npm run solution -- 28",
87+
"e-29": "npm run exercise -- 29",
88+
"s-29": "npm run solution -- 29",
89+
"e-29.5": "npm run exercise -- 29.5",
90+
"s-29.5": "npm run solution -- 29.5",
91+
"e-30": "npm run exercise -- 30",
92+
"s-30": "npm run solution -- 30",
93+
"e-32": "npm run exercise -- 32",
94+
"s-32": "npm run solution -- 32",
95+
"e-33": "npm run exercise -- 33",
96+
"s-33": "npm run solution -- 33",
97+
"e-34": "npm run exercise -- 34",
98+
"s-34": "npm run solution -- 34"
2099
},
21100
"dependencies": {
22101
"cross-env": "^7.0.3",

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)