'use strict';

/**
 * Contains helpers for working with vendor prefixes.
 *
 * Copied from https://github.com/postcss/postcss/commit/777c55b5d2a10605313a4972888f4f32005f5ac2
 *
 * @namespace vendor
 */
module.exports = {
	/**
	 * Returns the vendor prefix extracted from an input string.
	 *
	 * @param {string} prop String with or without vendor prefix.
	 *
	 * @return {string} vendor prefix or empty string
	 *
	 * @example
	 * vendor.prefix('-moz-tab-size') //=> '-moz-'
	 * vendor.prefix('tab-size')      //=> ''
	 */
	prefix(prop) {
		const match = prop.match(/^(-\w+-)/);

		if (match) {
			return match[0] || '';
		}

		return '';
	},

	/**
	 * Returns the input string stripped of its vendor prefix.
	 *
	 * @param {string} prop String with or without vendor prefix.
	 *
	 * @return {string} String name without vendor prefixes.
	 *
	 * @example
	 * vendor.unprefixed('-moz-tab-size') //=> 'tab-size'
	 */
	unprefixed(prop) {
		return prop.replace(/^-\w+-/, '');
	},
};
