diff --git a/src/Umbraco.Web.UI.Client/devops/example-runner/index.js b/src/Umbraco.Web.UI.Client/devops/example-runner/index.js new file mode 100644 index 0000000000..017587bf5b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/devops/example-runner/index.js @@ -0,0 +1,35 @@ +import * as globModule from 'tiny-glob'; +import * as readline from 'readline'; +import { readdir } from 'fs/promises' + +const exampleDirectory = 'examples'; + +const getDirectories = async (source) => + (await readdir(source, { withFileTypes: true })) + .filter(dirent => dirent.isDirectory()) + .map(dirent => dirent.name) + +async function pickExampleUI(){ + + // Find sub folder: + const exampleFolderNames = await getDirectories(`${exampleDirectory}`); + + const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout + }); + + console.log('Please select a folder by entering the corresponding number:'); + exampleFolderNames.forEach((folder, index) => { + console.log(`${index + 1}. ${folder}`); + }); + + rl.question('Enter your selection: ', (answer) => { + const selectedFolder = exampleFolderNames[parseInt(answer) - 1]; + console.log(`You selected: ${selectedFolder}`); + rl.close(); + }); + +}; + +pickExampleUI(); diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index eeccddd9c6..704e54b42f 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -120,7 +120,8 @@ "new-extension": "plop --plopfile ./devops/plop/plop.js", "compile": "tsc", "check": "npm run lint:errors && npm run compile && npm run build-storybook && npm run generate:jsonschema:dist", - "prepublishOnly": "node ./devops/publish/cleanse-pkg.js" + "prepublishOnly": "node ./devops/publish/cleanse-pkg.js", + "example": "node ./devops/example-runner/index.js" }, "engines": { "node": ">=20.9 <21",