UNPKG

@postcss-plugins/text-transform

Version:
46 lines (45 loc) 1.66 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.transform = exports.processParams = exports.tokenize = void 0; const postcss_1 = __importDefault(require("postcss")); const camelcase_1 = __importDefault(require("camelcase")); function tokenize(str) { return postcss_1.default.list.comma(str).map((s) => s.replace(/^\$/, ''))[0]; } exports.tokenize = tokenize; function processParams(params) { const [text, transformation, result] = params.split(',').map(tokenize); return { text, transformation, result, }; } exports.processParams = processParams; function transform(params) { const { text, transformation } = params; const firstLetter = text.charAt(0); const restLetters = text.slice(1); switch (transformation) { case 'capitalize': return `${firstLetter.toUpperCase()}${restLetters.toLowerCase()}`; case 'camelCase': return camelcase_1.default(text); case 'lowerFirst': return `${firstLetter.toLowerCase()}${restLetters}`; case 'pascalCase': return camelcase_1.default(text, { pascalCase: true }); case 'lowerCase': return text.toLowerCase(); case 'upperCase': return text.toUpperCase(); case 'upperFirst': return `${firstLetter.toUpperCase()}${restLetters}`; default: throw `It can not be transformed to ${transformation}`; } } exports.transform = transform;