123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 'use strict';
-
- /** @typedef {import('postcss').Rule} Rule */
- /** @typedef {import('postcss').AtRule} AtRule */
-
- /**
- * @param {Rule | AtRule} statement
- * @param {{
- * noRawBefore?: boolean
- * }} options
- *
- * @returns {string}
- */
- module.exports = function (statement, options = {}) {
- let result = '';
- /** @type {Rule | undefined} */
- let rule; /*?: postcss$rule*/
- /** @type {AtRule | undefined} */
- let atRule; /*?: postcss$atRule*/
-
- if (statement.type === 'rule') {
- rule = statement;
- }
-
- if (statement.type === 'atrule') {
- atRule = statement;
- }
-
- if (!rule && !atRule) {
- return result;
- }
-
- const before = statement.raws.before || '';
-
- if (!options.noRawBefore) {
- result += before;
- }
-
- if (rule) {
- result += rule.selector;
- }
-
- if (atRule) {
- result += `@${atRule.name}${atRule.raws.afterName || ''}${atRule.params}`;
- }
-
- const between = statement.raws.between;
-
- if (between !== undefined) {
- result += between;
- }
-
- return result;
- };
|