@sanity/plugin-kit

7.0.28.0.0
dist/link-watch-B2ixqs1y.js
+dist/link-watch-B2ixqs1y.jsNew file
+93
Index: package/dist/link-watch-B2ixqs1y.js
===================================================================
--- package/dist/link-watch-B2ixqs1y.js
+++ package/dist/link-watch-B2ixqs1y.js
@@ -0,0 +1,93 @@
+import "./constants-BLTUL_Wd.js";
+import { n as sharedFlags_default, t as log_default } from "./log-DgQL-Rv9.js";
+import { I as mkdir, P as fileExists, a as getPackage } from "./package-BrKrShA_.js";
+import { t as binname } from "./package-z3cLp2Jt.js";
+import { t as loadPackageConfig } from "./load-package-config-CNQRvdGW.js";
+import meow from "meow";
+import chalk from "chalk";
+import path from "path";
+import outdent from "outdent";
+import fs from "fs";
+import concurrently from "concurrently";
+import nodemon from "nodemon";
+async function linkWatch({ basePath }) {
+	let packageJson = JSON.parse(fs.readFileSync(path.join(basePath, "package.json"), "utf8")), outDir = (await loadPackageConfig({ basePath }))?.dist ?? "dist", watch = {
+		command: "npm run watch",
+		extensions: "ts,js,png,svg,gif,jpeg,css",
+		...packageJson.sanityPlugin?.linkWatch
+	};
+	nodemon({
+		watch: [outDir],
+		ext: watch.extensions,
+		exec: "yalc push --changed"
+	});
+	let folder = path.join(basePath, outDir);
+	await fileExists(folder) || await mkdir(folder);
+	let pkg = await getPackage({
+		basePath,
+		validate: !1
+	});
+	concurrently([watch.command]), nodemon.on("start", function() {
+		log_default.info(outdent`
+        Watching ${outDir} for changes to files with extensions: ${watch.extensions}
+
+        To test this package in Sanity Studio or another package, in a separate shell run:
+        cd /path/to/sanity/studio-or-package
+
+        Then, run one of the below commands, based on the package manager used in studio-or-package:
+
+        ## yarn
+        ${chalk.greenBright(`yalc add --link ${pkg.name} && yarn install`)}
+
+        ## npm
+        ${chalk.greenBright(`npx yalc add ${pkg.name} && npx yalc link ${pkg.name} && npm install`)}
+      `.trimStart());
+	}).on("quit", function() {
+		process.exit();
+	}).on("restart", function(files) {
+		log_default.info("Found changes in files:", chalk.magentaBright(files)), log_default.info("Pushing new yalc package...");
+	});
+}
+const help = `
+Usage
+  $ ${binname} link-watch [<args>]
+
+Options
+  --silent      Do not print info and warning messages
+  --verbose     Log everything. This option conflicts with --silent
+  --version     Output the version number
+  --help        Output usage information
+
+Configuration
+To override the default watch command configuration, provide an override in package.json under sanityPlugin:
+{
+  "sanityPlugin": {
+    "watchCommand": "microbundle watch --format modern,esm,cjs --jsx React.createElement --jsxImportSource react --css inline",
+    "linkWatch": {
+      "command": "npm run watch",
+      "extensions": "js,png,svg,gif,jpeg,css"
+    }
+  }
+}
+
+Examples
+  # Run the watch command and pushes any changes to yalc
+  $ ${binname} link-watch
+`, flags = {
+	...sharedFlags_default,
+	watch: {
+		type: "boolean",
+		default: !1
+	}
+};
+function run({ argv }) {
+	let cli = meow(help, {
+		flags,
+		argv,
+		description: "Run the watch command and pushes any changes to yalc"
+	});
+	return linkWatch({ basePath: path.resolve(cli.input[0] || process.cwd()) });
+}
+export { run as default };
+
+//# sourceMappingURL=link-watch-B2ixqs1y.js.map
\ No newline at end of file