diff --git a/src/detectors/sapper.js b/src/detectors/sapper.js new file mode 100644 index 0000000..1ba635c --- /dev/null +++ b/src/detectors/sapper.js @@ -0,0 +1,36 @@ +const { + hasRequiredDeps, + hasRequiredFiles, + getYarnOrNPMCommand, + scanScripts +} = require("./utils/jsdetect"); + +module.exports = function() { + // REQUIRED FILES + if (!hasRequiredFiles(["package.json"])) return false; + // REQUIRED DEPS + if (!hasRequiredDeps(["sapper"])) return false; + + /** everything below now assumes that we are within vue */ + + const possibleArgsArrs = scanScripts({ + preferredScriptsArr: ["dev", "start"], + preferredCommand: "sapper dev" + }); + + if (possibleArgsArrs.length === 0) { + // ofer to run it when the user doesnt have any scripts setup! 🤯 + possibleArgsArrs.push(["sapper", "dev"]); + } + + return { + type: "vue-cli", + command: getYarnOrNPMCommand(), + port: 8888, + proxyPort: 3000, + env: { ...process.env }, + possibleArgsArrs, + urlRegexp: new RegExp(`(http://)([^:]+:)${3000}(/)?`, "g"), + dist: "dist" + }; +}; diff --git a/src/detectors/svelte.js b/src/detectors/svelte.js new file mode 100644 index 0000000..98cd05c --- /dev/null +++ b/src/detectors/svelte.js @@ -0,0 +1,36 @@ +const { + hasRequiredDeps, + hasRequiredFiles, + getYarnOrNPMCommand, + scanScripts +} = require("./utils/jsdetect"); + +module.exports = function() { + // REQUIRED FILES + if (!hasRequiredFiles(["package.json"])) return false; + // REQUIRED DEPS + if (!hasRequiredDeps(["svelte"])) return false; + + /** everything below now assumes that we are within vue */ + + const possibleArgsArrs = scanScripts({ + preferredScriptsArr: ["dev", "start", "run"], + preferredCommand: "npm run dev" + }); + + if (possibleArgsArrs.length === 0) { + // ofer to run it when the user doesnt have any scripts setup! 🤯 + possibleArgsArrs.push(["npm", "dev"]); + } + + return { + type: "svelte", + command: getYarnOrNPMCommand(), + port: 8888, + proxyPort: 5000, + env: { ...process.env }, + possibleArgsArrs, + urlRegexp: new RegExp(`(http://)([^:]+:)${5000}(/)?`, "g"), + dist: "dist" + }; +};