File: /var/www/linde-ai/html/node_modules/postcss/lib/no-work-result.js
'use strict'
let MapGenerator = require('./map-generator')
let stringify = require('./stringify')
let warnOnce = require('./warn-once')
let parse = require('./parse')
const Result = require('./result')
class NoWorkResult {
  constructor(processor, css, opts) {
    css = css.toString()
    this.stringified = false
    this._processor = processor
    this._css = css
    this._opts = opts
    this._map = undefined
    let root
    let str = stringify
    this.result = new Result(this._processor, root, this._opts)
    this.result.css = css
    let self = this
    Object.defineProperty(this.result, 'root', {
      get() {
        return self.root
      }
    })
    let map = new MapGenerator(str, root, this._opts, css)
    if (map.isMap()) {
      let [generatedCSS, generatedMap] = map.generate()
      if (generatedCSS) {
        this.result.css = generatedCSS
      }
      if (generatedMap) {
        this.result.map = generatedMap
      }
    }
  }
  get [Symbol.toStringTag]() {
    return 'NoWorkResult'
  }
  get processor() {
    return this.result.processor
  }
  get opts() {
    return this.result.opts
  }
  get css() {
    return this.result.css
  }
  get content() {
    return this.result.css
  }
  get map() {
    return this.result.map
  }
  get root() {
    if (this._root) {
      return this._root
    }
    let root
    let parser = parse
    try {
      root = parser(this._css, this._opts)
    } catch (error) {
      this.error = error
    }
    if (this.error) {
      throw this.error
    } else {
      this._root = root
      return root
    }
  }
  get messages() {
    return []
  }
  warnings() {
    return []
  }
  toString() {
    return this._css
  }
  then(onFulfilled, onRejected) {
    if (process.env.NODE_ENV !== 'production') {
      if (!('from' in this._opts)) {
        warnOnce(
          'Without `from` option PostCSS could generate wrong source map ' +
            'and will not find Browserslist config. Set it to CSS file path ' +
            'or to `undefined` to prevent this warning.'
        )
      }
    }
    return this.async().then(onFulfilled, onRejected)
  }
  catch(onRejected) {
    return this.async().catch(onRejected)
  }
  finally(onFinally) {
    return this.async().then(onFinally, onFinally)
  }
  async() {
    if (this.error) return Promise.reject(this.error)
    return Promise.resolve(this.result)
  }
  sync() {
    if (this.error) throw this.error
    return this.result
  }
}
module.exports = NoWorkResult
NoWorkResult.default = NoWorkResult