summaryrefslogtreecommitdiff
path: root/node_modules/tailwindcss/lib/cli/build/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/tailwindcss/lib/cli/build/utils.js')
-rw-r--r--node_modules/tailwindcss/lib/cli/build/utils.js88
1 files changed, 88 insertions, 0 deletions
diff --git a/node_modules/tailwindcss/lib/cli/build/utils.js b/node_modules/tailwindcss/lib/cli/build/utils.js
new file mode 100644
index 0000000..3bed060
--- /dev/null
+++ b/node_modules/tailwindcss/lib/cli/build/utils.js
@@ -0,0 +1,88 @@
+// @ts-check
+"use strict";
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+function _export(target, all) {
+ for(var name in all)Object.defineProperty(target, name, {
+ enumerable: true,
+ get: all[name]
+ });
+}
+_export(exports, {
+ indentRecursive: function() {
+ return indentRecursive;
+ },
+ formatNodes: function() {
+ return formatNodes;
+ },
+ readFileWithRetries: function() {
+ return readFileWithRetries;
+ },
+ drainStdin: function() {
+ return drainStdin;
+ },
+ outputFile: function() {
+ return outputFile;
+ }
+});
+const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
+const _path = /*#__PURE__*/ _interop_require_default(require("path"));
+function _interop_require_default(obj) {
+ return obj && obj.__esModule ? obj : {
+ default: obj
+ };
+}
+function indentRecursive(node, indent = 0) {
+ node.each && node.each((child, i)=>{
+ if (!child.raws.before || !child.raws.before.trim() || child.raws.before.includes("\n")) {
+ child.raws.before = `\n${node.type !== "rule" && i > 0 ? "\n" : ""}${" ".repeat(indent)}`;
+ }
+ child.raws.after = `\n${" ".repeat(indent)}`;
+ indentRecursive(child, indent + 1);
+ });
+}
+function formatNodes(root) {
+ indentRecursive(root);
+ if (root.first) {
+ root.first.raws.before = "";
+ }
+}
+async function readFileWithRetries(path, tries = 5) {
+ for(let n = 0; n <= tries; n++){
+ try {
+ return await _fs.default.promises.readFile(path, "utf8");
+ } catch (err) {
+ if (n !== tries) {
+ if (err.code === "ENOENT" || err.code === "EBUSY") {
+ await new Promise((resolve)=>setTimeout(resolve, 10));
+ continue;
+ }
+ }
+ throw err;
+ }
+ }
+}
+function drainStdin() {
+ return new Promise((resolve, reject)=>{
+ let result = "";
+ process.stdin.on("data", (chunk)=>{
+ result += chunk;
+ });
+ process.stdin.on("end", ()=>resolve(result));
+ process.stdin.on("error", (err)=>reject(err));
+ });
+}
+async function outputFile(file, newContents) {
+ try {
+ let currentContents = await _fs.default.promises.readFile(file, "utf8");
+ if (currentContents === newContents) {
+ return; // Skip writing the file
+ }
+ } catch {}
+ // Write the file
+ await _fs.default.promises.mkdir(_path.default.dirname(file), {
+ recursive: true
+ });
+ await _fs.default.promises.writeFile(file, newContents, "utf8");
+}