@epic-web/workshop-utils 4.5.1 → 4.6.1
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/esm/apps.server.d.ts +6 -0
- package/dist/esm/apps.server.d.ts.map +1 -1
- package/dist/esm/apps.server.js +41 -27
- package/dist/esm/apps.server.js.map +1 -1
- package/dist/esm/cache.server.js +2 -2
- package/dist/esm/cache.server.js.map +1 -1
- package/dist/esm/codefile-mdx.server.d.ts.map +1 -1
- package/dist/esm/codefile-mdx.server.js +9 -9
- package/dist/esm/codefile-mdx.server.js.map +1 -1
- package/dist/esm/compile-mdx.server.js +5 -5
- package/dist/esm/compile-mdx.server.js.map +1 -1
- package/dist/esm/db.server.js +1 -1
- package/dist/esm/db.server.js.map +1 -1
- package/dist/esm/playwright.server.js +8 -8
- package/dist/esm/playwright.server.js.map +1 -1
- package/dist/esm/process-manager.server.js +10 -10
- package/dist/esm/process-manager.server.js.map +1 -1
- package/dist/esm/test.js +1 -1
- package/dist/esm/test.js.map +1 -1
- package/dist/esm/timing.server.js +2 -2
- package/dist/esm/timing.server.js.map +1 -1
- package/package.json +1 -1
|
@@ -4045,6 +4045,12 @@ export declare function setPlayground(srcDir: string, { reset }?: {
|
|
|
4045
4045
|
export declare function getPlaygroundAppName(): Promise<string | null>;
|
|
4046
4046
|
export declare function getAppDisplayName(a: App, allApps: Array<App>): string;
|
|
4047
4047
|
export declare function getWorkshopTitle(): Promise<string>;
|
|
4048
|
+
export declare function getWorkshopSubtitle(): Promise<string>;
|
|
4049
|
+
export declare function getWorkshopInstructor(): Promise<{
|
|
4050
|
+
name?: string | undefined;
|
|
4051
|
+
avatar?: string | undefined;
|
|
4052
|
+
𝕏?: string | undefined;
|
|
4053
|
+
} | undefined>;
|
|
4048
4054
|
export declare function getEpicWorkshopSlug(): Promise<string | null>;
|
|
4049
4055
|
export declare function getWorkshopRoot(): string;
|
|
4050
4056
|
export declare function getWorkshopInstructions({ request, }?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apps.server.d.ts","sourceRoot":"","sources":["../../src/apps.server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apps.server.d.ts","sourceRoot":"","sources":["../../src/apps.server.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/apps.server.js
CHANGED
|
@@ -133,7 +133,7 @@ function exists(file) {
|
|
|
133
133
|
return fs.promises.access(file, fs.constants.F_OK).then(() => true, () => false);
|
|
134
134
|
}
|
|
135
135
|
function firstToExist(...files) {
|
|
136
|
-
return Promise.all(files.map(exists)).then(results => {
|
|
136
|
+
return Promise.all(files.map(exists)).then((results) => {
|
|
137
137
|
const index = results.findIndex(Boolean);
|
|
138
138
|
return index === -1 ? null : files[index];
|
|
139
139
|
});
|
|
@@ -182,7 +182,7 @@ async function readDir(dir) {
|
|
|
182
182
|
async function compileMdxIfExists(filepath, { request } = {}) {
|
|
183
183
|
filepath = filepath.replace(/\\/g, '/');
|
|
184
184
|
if (await exists(filepath)) {
|
|
185
|
-
const compiled = await compileMdx(filepath, { request }).catch(error => {
|
|
185
|
+
const compiled = await compileMdx(filepath, { request }).catch((error) => {
|
|
186
186
|
console.error(`Error compiling ${filepath}:`, error);
|
|
187
187
|
return null;
|
|
188
188
|
});
|
|
@@ -226,7 +226,7 @@ export async function getExercises({ timings, request, } = {}) {
|
|
|
226
226
|
const steps = [];
|
|
227
227
|
const exerciseApps = apps
|
|
228
228
|
.filter(isExerciseStepApp)
|
|
229
|
-
.filter(app => app.exerciseNumber === exerciseNumber);
|
|
229
|
+
.filter((app) => app.exerciseNumber === exerciseNumber);
|
|
230
230
|
for (const app of exerciseApps) {
|
|
231
231
|
// @ts-ignore meh 🤷♂️
|
|
232
232
|
steps[app.stepNumber - 1] = {
|
|
@@ -246,10 +246,10 @@ export async function getExercises({ timings, request, } = {}) {
|
|
|
246
246
|
steps,
|
|
247
247
|
problems: apps
|
|
248
248
|
.filter(isProblemApp)
|
|
249
|
-
.filter(app => app.exerciseNumber === exerciseNumber),
|
|
249
|
+
.filter((app) => app.exerciseNumber === exerciseNumber),
|
|
250
250
|
solutions: apps
|
|
251
251
|
.filter(isSolutionApp)
|
|
252
|
-
.filter(app => app.exerciseNumber === exerciseNumber),
|
|
252
|
+
.filter((app) => app.exerciseNumber === exerciseNumber),
|
|
253
253
|
});
|
|
254
254
|
}
|
|
255
255
|
return exercises;
|
|
@@ -371,7 +371,7 @@ async function getProblemDirs() {
|
|
|
371
371
|
const problemDirs = (await glob('**/*.problem*', {
|
|
372
372
|
cwd: exercisesDir,
|
|
373
373
|
ignore: 'node_modules/**',
|
|
374
|
-
})).map(p => path.join(exercisesDir, p));
|
|
374
|
+
})).map((p) => path.join(exercisesDir, p));
|
|
375
375
|
return problemDirs;
|
|
376
376
|
}
|
|
377
377
|
async function getSolutionDirs() {
|
|
@@ -379,7 +379,7 @@ async function getSolutionDirs() {
|
|
|
379
379
|
const solutionDirs = (await glob('**/*.solution*', {
|
|
380
380
|
cwd: exercisesDir,
|
|
381
381
|
ignore: 'node_modules/**',
|
|
382
|
-
})).map(p => path.join(exercisesDir, p));
|
|
382
|
+
})).map((p) => path.join(exercisesDir, p));
|
|
383
383
|
return solutionDirs;
|
|
384
384
|
}
|
|
385
385
|
/**
|
|
@@ -426,7 +426,7 @@ async function getFullPathFromAppName(appName) {
|
|
|
426
426
|
: type === 'solution'
|
|
427
427
|
? await getSolutionDirs()
|
|
428
428
|
: [];
|
|
429
|
-
const dir = appDirs.find(dir => {
|
|
429
|
+
const dir = appDirs.find((dir) => {
|
|
430
430
|
const info = extractNumbersAndTypeFromAppNameOrPath(dir);
|
|
431
431
|
if (!info)
|
|
432
432
|
return false;
|
|
@@ -444,7 +444,7 @@ async function findSolutionDir({ fullPath, }) {
|
|
|
444
444
|
const paddedStepNumber = stepNumber.toString().padStart(2, '0');
|
|
445
445
|
const parentDir = path.dirname(fullPath);
|
|
446
446
|
const siblingDirs = await fs.promises.readdir(parentDir);
|
|
447
|
-
const solutionDir = siblingDirs.find(dir => dir.startsWith(`${paddedStepNumber}.solution`));
|
|
447
|
+
const solutionDir = siblingDirs.find((dir) => dir.startsWith(`${paddedStepNumber}.solution`));
|
|
448
448
|
if (solutionDir) {
|
|
449
449
|
return path.join(parentDir, solutionDir);
|
|
450
450
|
}
|
|
@@ -469,7 +469,7 @@ async function findProblemDir({ fullPath, }) {
|
|
|
469
469
|
const paddedStepNumber = stepNumber.toString().padStart(2, '0');
|
|
470
470
|
const parentDir = path.dirname(fullPath);
|
|
471
471
|
const siblingDirs = await fs.promises.readdir(parentDir);
|
|
472
|
-
const problemDir = siblingDirs.find(dir => dir.endsWith('problem') && dir.includes(paddedStepNumber));
|
|
472
|
+
const problemDir = siblingDirs.find((dir) => dir.endsWith('problem') && dir.includes(paddedStepNumber));
|
|
473
473
|
if (problemDir) {
|
|
474
474
|
return path.join(parentDir, problemDir);
|
|
475
475
|
}
|
|
@@ -493,7 +493,7 @@ async function getTestInfo({ fullPath, }) {
|
|
|
493
493
|
// tests are found in the corresponding solution directory
|
|
494
494
|
const testAppFullPath = (await findSolutionDir({ fullPath })) ?? fullPath;
|
|
495
495
|
const dirList = await fs.promises.readdir(testAppFullPath);
|
|
496
|
-
const testFiles = dirList.filter(item => item.includes('.test.'));
|
|
496
|
+
const testFiles = dirList.filter((item) => item.includes('.test.'));
|
|
497
497
|
if (testFiles.length) {
|
|
498
498
|
return {
|
|
499
499
|
type: 'browser',
|
|
@@ -572,7 +572,7 @@ export async function getPlaygroundApp({ timings, request, } = {}) {
|
|
|
572
572
|
dev,
|
|
573
573
|
};
|
|
574
574
|
},
|
|
575
|
-
}).catch(error => {
|
|
575
|
+
}).catch((error) => {
|
|
576
576
|
console.error(error);
|
|
577
577
|
return null;
|
|
578
578
|
});
|
|
@@ -597,7 +597,7 @@ async function getExampleAppFromPath(fullPath, index, request) {
|
|
|
597
597
|
}
|
|
598
598
|
async function getExampleApps({ timings, request, } = {}) {
|
|
599
599
|
const examplesDir = path.join(workshopRoot, 'examples');
|
|
600
|
-
const exampleDirs = (await glob('*', { cwd: examplesDir, ignore: 'node_modules/**' })).map(p => path.join(examplesDir, p));
|
|
600
|
+
const exampleDirs = (await glob('*', { cwd: examplesDir, ignore: 'node_modules/**' })).map((p) => path.join(examplesDir, p));
|
|
601
601
|
const exampleApps = [];
|
|
602
602
|
for (const exampleDir of exampleDirs) {
|
|
603
603
|
const index = exampleDirs.indexOf(exampleDir);
|
|
@@ -610,7 +610,7 @@ async function getExampleApps({ timings, request, } = {}) {
|
|
|
610
610
|
timingKey: exampleDir.replace(`${examplesDir}${path.sep}`, ''),
|
|
611
611
|
request,
|
|
612
612
|
forceFresh: getForceFreshForDir(exampleDir, exampleAppCache.get(key)),
|
|
613
|
-
getFreshValue: () => getExampleAppFromPath(exampleDir, index, request).catch(error => {
|
|
613
|
+
getFreshValue: () => getExampleAppFromPath(exampleDir, index, request).catch((error) => {
|
|
614
614
|
console.error(error);
|
|
615
615
|
return null;
|
|
616
616
|
}),
|
|
@@ -670,7 +670,7 @@ async function getSolutionApps({ timings, request, } = {}) {
|
|
|
670
670
|
request,
|
|
671
671
|
ttl: 1000 * 60 * 60 * 24,
|
|
672
672
|
forceFresh: getForceFreshForDir(solutionDir, solutionAppCache.get(solutionDir)),
|
|
673
|
-
getFreshValue: () => getSolutionAppFromPath(solutionDir, request).catch(error => {
|
|
673
|
+
getFreshValue: () => getSolutionAppFromPath(solutionDir, request).catch((error) => {
|
|
674
674
|
console.error(error);
|
|
675
675
|
return null;
|
|
676
676
|
}),
|
|
@@ -730,7 +730,7 @@ async function getProblemApps({ timings, request, } = {}) {
|
|
|
730
730
|
request,
|
|
731
731
|
ttl: 1000 * 60 * 60 * 24,
|
|
732
732
|
forceFresh: getForceFreshForDir(problemDir, problemAppCache.get(problemDir)),
|
|
733
|
-
getFreshValue: () => getProblemAppFromPath(problemDir).catch(error => {
|
|
733
|
+
getFreshValue: () => getProblemAppFromPath(problemDir).catch((error) => {
|
|
734
734
|
console.error(error);
|
|
735
735
|
return null;
|
|
736
736
|
}),
|
|
@@ -742,7 +742,7 @@ async function getProblemApps({ timings, request, } = {}) {
|
|
|
742
742
|
}
|
|
743
743
|
export async function getExercise(exerciseNumber, { request, timings } = {}) {
|
|
744
744
|
const exercises = await getExercises({ request, timings });
|
|
745
|
-
return exercises.find(s => s.exerciseNumber === Number(exerciseNumber));
|
|
745
|
+
return exercises.find((s) => s.exerciseNumber === Number(exerciseNumber));
|
|
746
746
|
}
|
|
747
747
|
export async function requireExercise(exerciseNumber, { request, timings } = {}) {
|
|
748
748
|
const exercise = await getExercise(exerciseNumber, { request, timings });
|
|
@@ -773,7 +773,7 @@ export async function getExerciseApp(params, { request, timings } = {}) {
|
|
|
773
773
|
}
|
|
774
774
|
const { type, exerciseNumber, stepNumber } = result.data;
|
|
775
775
|
const apps = (await getApps({ request, timings })).filter(isExerciseStepApp);
|
|
776
|
-
const exerciseApp = apps.find(app => {
|
|
776
|
+
const exerciseApp = apps.find((app) => {
|
|
777
777
|
if (isExampleApp(app))
|
|
778
778
|
return false;
|
|
779
779
|
return (app.exerciseNumber === exerciseNumber &&
|
|
@@ -787,11 +787,11 @@ export async function getExerciseApp(params, { request, timings } = {}) {
|
|
|
787
787
|
}
|
|
788
788
|
export async function getAppByName(name, { request, timings } = {}) {
|
|
789
789
|
const apps = await getApps({ request, timings });
|
|
790
|
-
return apps.find(a => a.name === name);
|
|
790
|
+
return apps.find((a) => a.name === name);
|
|
791
791
|
}
|
|
792
792
|
export async function getNextExerciseApp(app, { request, timings } = {}) {
|
|
793
793
|
const apps = (await getApps({ request, timings })).filter(isExerciseStepApp);
|
|
794
|
-
const index = apps.findIndex(a => a.name === app.name);
|
|
794
|
+
const index = apps.findIndex((a) => a.name === app.name);
|
|
795
795
|
if (index === -1) {
|
|
796
796
|
throw new Error(`Could not find app ${app.name}`);
|
|
797
797
|
}
|
|
@@ -800,7 +800,7 @@ export async function getNextExerciseApp(app, { request, timings } = {}) {
|
|
|
800
800
|
}
|
|
801
801
|
export async function getPrevExerciseApp(app, { request, timings } = {}) {
|
|
802
802
|
const apps = (await getApps({ request, timings })).filter(isExerciseStepApp);
|
|
803
|
-
const index = apps.findIndex(a => a.name === app.name);
|
|
803
|
+
const index = apps.findIndex((a) => a.name === app.name);
|
|
804
804
|
if (index === -1) {
|
|
805
805
|
throw new Error(`Could not find app ${app.name}`);
|
|
806
806
|
}
|
|
@@ -817,7 +817,7 @@ export function getAppPageRoute(app) {
|
|
|
817
817
|
*/
|
|
818
818
|
export async function getAppFromFile(filePath) {
|
|
819
819
|
const apps = await getApps();
|
|
820
|
-
return apps.find(app => filePath.startsWith(app.fullPath));
|
|
820
|
+
return apps.find((app) => filePath.startsWith(app.fullPath));
|
|
821
821
|
}
|
|
822
822
|
export async function setPlayground(srcDir, { reset } = {}) {
|
|
823
823
|
const isIgnored = await isGitIgnored({ cwd: srcDir });
|
|
@@ -901,12 +901,12 @@ export async function setPlayground(srcDir, { reset } = {}) {
|
|
|
901
901
|
onlyFiles: false,
|
|
902
902
|
dot: true,
|
|
903
903
|
});
|
|
904
|
-
return files.map(f => f.replace(dirPath, ''));
|
|
904
|
+
return files.map((f) => f.replace(dirPath, ''));
|
|
905
905
|
}
|
|
906
906
|
// Remove files from destDir that were in destDir before but are not in srcDir
|
|
907
907
|
const srcFiles = await getFiles(srcDir);
|
|
908
908
|
const destFiles = await getFiles(destDir);
|
|
909
|
-
const filesToDelete = destFiles.filter(fileName => !srcFiles.includes(fileName));
|
|
909
|
+
const filesToDelete = destFiles.filter((fileName) => !srcFiles.includes(fileName));
|
|
910
910
|
for (const fileToDelete of filesToDelete) {
|
|
911
911
|
await fsExtra.remove(path.join(destDir, fileToDelete));
|
|
912
912
|
}
|
|
@@ -991,7 +991,7 @@ export function getAppDisplayName(a, allApps) {
|
|
|
991
991
|
displayName = `${a.exerciseNumber}.${a.stepNumber} ${a.title} (${typeLabel} ${a.type})`;
|
|
992
992
|
}
|
|
993
993
|
else if (isPlaygroundApp(a)) {
|
|
994
|
-
const playgroundAppBasis = allApps.find(otherApp => a.appName === otherApp.name);
|
|
994
|
+
const playgroundAppBasis = allApps.find((otherApp) => a.appName === otherApp.name);
|
|
995
995
|
if (playgroundAppBasis) {
|
|
996
996
|
const basisDisplayName = getAppDisplayName(playgroundAppBasis, allApps);
|
|
997
997
|
displayName = `🛝 ${basisDisplayName}`;
|
|
@@ -1012,6 +1012,20 @@ export async function getWorkshopTitle() {
|
|
|
1012
1012
|
}
|
|
1013
1013
|
return title;
|
|
1014
1014
|
}
|
|
1015
|
+
export async function getWorkshopSubtitle() {
|
|
1016
|
+
return await getPkgProp(workshopRoot, 'epicshop.subtitle', '');
|
|
1017
|
+
}
|
|
1018
|
+
export async function getWorkshopInstructor() {
|
|
1019
|
+
const InstructorSchema = z
|
|
1020
|
+
.object({
|
|
1021
|
+
name: z.string().optional(),
|
|
1022
|
+
avatar: z.string().optional(),
|
|
1023
|
+
𝕏: z.string().optional(),
|
|
1024
|
+
})
|
|
1025
|
+
.optional();
|
|
1026
|
+
const instructor = InstructorSchema.parse(await getPkgProp(getWorkshopRoot(), 'epicshop.instructor'));
|
|
1027
|
+
return instructor;
|
|
1028
|
+
}
|
|
1015
1029
|
export async function getEpicWorkshopSlug() {
|
|
1016
1030
|
const epicWorkshopSlug = await getPkgProp(workshopRoot, 'epicshop.epicWorkshopSlug', '');
|
|
1017
1031
|
return epicWorkshopSlug || null;
|
|
@@ -1021,7 +1035,7 @@ export function getWorkshopRoot() {
|
|
|
1021
1035
|
}
|
|
1022
1036
|
export async function getWorkshopInstructions({ request, } = {}) {
|
|
1023
1037
|
const readmeFilepath = path.join(workshopRoot, 'exercises', 'README.mdx');
|
|
1024
|
-
const compiled = await compileMdx(readmeFilepath, { request }).then(r => ({ ...r, status: 'success' }), e => {
|
|
1038
|
+
const compiled = await compileMdx(readmeFilepath, { request }).then((r) => ({ ...r, status: 'success' }), (e) => {
|
|
1025
1039
|
console.error(`There was an error compiling the workshop readme`, readmeFilepath, e);
|
|
1026
1040
|
return { status: 'error', error: getErrorMessage(e) };
|
|
1027
1041
|
});
|
|
@@ -1029,7 +1043,7 @@ export async function getWorkshopInstructions({ request, } = {}) {
|
|
|
1029
1043
|
}
|
|
1030
1044
|
export async function getWorkshopFinished({ request, } = {}) {
|
|
1031
1045
|
const finishedFilepath = path.join(workshopRoot, 'exercises', 'FINISHED.mdx');
|
|
1032
|
-
const compiled = await compileMdx(finishedFilepath, { request }).then(r => ({ ...r, status: 'success' }), e => {
|
|
1046
|
+
const compiled = await compileMdx(finishedFilepath, { request }).then((r) => ({ ...r, status: 'success' }), (e) => {
|
|
1033
1047
|
console.error(`There was an error compiling the workshop finished.mdx`, finishedFilepath, e);
|
|
1034
1048
|
return { status: 'error', error: getErrorMessage(e) };
|
|
1035
1049
|
});
|