summaryrefslogtreecommitdiff
path: root/node_modules/postcss-selector-parser/dist/processor.js
diff options
context:
space:
mode:
authorPhilipp Tanlak <philipp.tanlak@gmail.com>2025-11-24 20:54:57 +0100
committerPhilipp Tanlak <philipp.tanlak@gmail.com>2025-11-24 20:57:48 +0100
commitb1e2c8fd5cb5dfa46bc440a12eafaf56cd844b1c (patch)
tree49d360fd6cbc6a2754efe93524ac47ff0fbe0f7d /node_modules/postcss-selector-parser/dist/processor.js
Docs
Diffstat (limited to 'node_modules/postcss-selector-parser/dist/processor.js')
-rw-r--r--node_modules/postcss-selector-parser/dist/processor.js170
1 files changed, 170 insertions, 0 deletions
diff --git a/node_modules/postcss-selector-parser/dist/processor.js b/node_modules/postcss-selector-parser/dist/processor.js
new file mode 100644
index 0000000..dbfa091
--- /dev/null
+++ b/node_modules/postcss-selector-parser/dist/processor.js
@@ -0,0 +1,170 @@
+"use strict";
+
+exports.__esModule = true;
+exports["default"] = void 0;
+var _parser = _interopRequireDefault(require("./parser"));
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
+var Processor = /*#__PURE__*/function () {
+ function Processor(func, options) {
+ this.func = func || function noop() {};
+ this.funcRes = null;
+ this.options = options;
+ }
+ var _proto = Processor.prototype;
+ _proto._shouldUpdateSelector = function _shouldUpdateSelector(rule, options) {
+ if (options === void 0) {
+ options = {};
+ }
+ var merged = Object.assign({}, this.options, options);
+ if (merged.updateSelector === false) {
+ return false;
+ } else {
+ return typeof rule !== "string";
+ }
+ };
+ _proto._isLossy = function _isLossy(options) {
+ if (options === void 0) {
+ options = {};
+ }
+ var merged = Object.assign({}, this.options, options);
+ if (merged.lossless === false) {
+ return true;
+ } else {
+ return false;
+ }
+ };
+ _proto._root = function _root(rule, options) {
+ if (options === void 0) {
+ options = {};
+ }
+ var parser = new _parser["default"](rule, this._parseOptions(options));
+ return parser.root;
+ };
+ _proto._parseOptions = function _parseOptions(options) {
+ return {
+ lossy: this._isLossy(options)
+ };
+ };
+ _proto._run = function _run(rule, options) {
+ var _this = this;
+ if (options === void 0) {
+ options = {};
+ }
+ return new Promise(function (resolve, reject) {
+ try {
+ var root = _this._root(rule, options);
+ Promise.resolve(_this.func(root)).then(function (transform) {
+ var string = undefined;
+ if (_this._shouldUpdateSelector(rule, options)) {
+ string = root.toString();
+ rule.selector = string;
+ }
+ return {
+ transform: transform,
+ root: root,
+ string: string
+ };
+ }).then(resolve, reject);
+ } catch (e) {
+ reject(e);
+ return;
+ }
+ });
+ };
+ _proto._runSync = function _runSync(rule, options) {
+ if (options === void 0) {
+ options = {};
+ }
+ var root = this._root(rule, options);
+ var transform = this.func(root);
+ if (transform && typeof transform.then === "function") {
+ throw new Error("Selector processor returned a promise to a synchronous call.");
+ }
+ var string = undefined;
+ if (options.updateSelector && typeof rule !== "string") {
+ string = root.toString();
+ rule.selector = string;
+ }
+ return {
+ transform: transform,
+ root: root,
+ string: string
+ };
+ }
+
+ /**
+ * Process rule into a selector AST.
+ *
+ * @param rule {postcss.Rule | string} The css selector to be processed
+ * @param options The options for processing
+ * @returns {Promise<parser.Root>} The AST of the selector after processing it.
+ */;
+ _proto.ast = function ast(rule, options) {
+ return this._run(rule, options).then(function (result) {
+ return result.root;
+ });
+ }
+
+ /**
+ * Process rule into a selector AST synchronously.
+ *
+ * @param rule {postcss.Rule | string} The css selector to be processed
+ * @param options The options for processing
+ * @returns {parser.Root} The AST of the selector after processing it.
+ */;
+ _proto.astSync = function astSync(rule, options) {
+ return this._runSync(rule, options).root;
+ }
+
+ /**
+ * Process a selector into a transformed value asynchronously
+ *
+ * @param rule {postcss.Rule | string} The css selector to be processed
+ * @param options The options for processing
+ * @returns {Promise<any>} The value returned by the processor.
+ */;
+ _proto.transform = function transform(rule, options) {
+ return this._run(rule, options).then(function (result) {
+ return result.transform;
+ });
+ }
+
+ /**
+ * Process a selector into a transformed value synchronously.
+ *
+ * @param rule {postcss.Rule | string} The css selector to be processed
+ * @param options The options for processing
+ * @returns {any} The value returned by the processor.
+ */;
+ _proto.transformSync = function transformSync(rule, options) {
+ return this._runSync(rule, options).transform;
+ }
+
+ /**
+ * Process a selector into a new selector string asynchronously.
+ *
+ * @param rule {postcss.Rule | string} The css selector to be processed
+ * @param options The options for processing
+ * @returns {string} the selector after processing.
+ */;
+ _proto.process = function process(rule, options) {
+ return this._run(rule, options).then(function (result) {
+ return result.string || result.root.toString();
+ });
+ }
+
+ /**
+ * Process a selector into a new selector string synchronously.
+ *
+ * @param rule {postcss.Rule | string} The css selector to be processed
+ * @param options The options for processing
+ * @returns {string} the selector after processing.
+ */;
+ _proto.processSync = function processSync(rule, options) {
+ var result = this._runSync(rule, options);
+ return result.string || result.root.toString();
+ };
+ return Processor;
+}();
+exports["default"] = Processor;
+module.exports = exports.default; \ No newline at end of file