cssobj-plugin-replace

1.0.1 • Public • Published

cssobj-plugin-replace

Build Status

cssobj plugin to replace object key/value pair with new value (Object, Array, Function etc.)

Install

  • npm
npm i cssobj-plugin-replace

Then

var cssobj = require('cssobj')
var cssobj_plugin_replace = require('cssobj-plugin-replace')
 
cssobj(
  { p: {color: 'red'} },
  {
    plugins: [
      cssobj_plugin_replace({
        map:[
          // replace red with blue
          ['color', 'red', 'blue']
        ]
      })
    ]
  }
)
 
// result:
{ color: blue; }

Quick Start

Replace simple value:

Replace color red with blue

cssobj_plugin_replace({
  map:[
    ['color', 'red', 'blue']
  ]
})
 
// { p:{color:'red'} } => p {color: blue;}

Replace value with array:

cssobj_plugin_replace({
  map:[
    ['font', '123', [1, 2, 3]]
  ]
})
 
// { p:{font:123} } => p { font:1; font:2; font:3; }

Replace value with object:

cssobj_plugin_replace({
  map:[
    ['font', 'heading', {fontFamily: 'Arial', fontSize: '24px', fontWeight: 'bold'}]
  ]
})
 
// { p:{font:'heading'} } => p { font-family: Arial; font-size: 24px; font-weight: bold; }

Replace value with array of object:

cssobj_plugin_replace({
  map:[
    ['display', 'flex', [{display:'-webkit-flex'}, {display:'flex'}]]
  ]
})
 
// { p:{display:'flex'} } => p { display: -webkit-flex; display: flex; }

Replace any key/value:

Use null as placeholder for any key/value matched.

null as value to match any value

cssobj_plugin_replace({
  map:[
    ['display', null, [{display:'-webkit-flex'}, {display:'flex'}]]
  ]
})
 
// { p:{display:1} } => p { display: -webkit-flex; display: flex; }

null as key to match any key

cssobj_plugin_replace({
  map:[
    [null, 'red', [{display:'-webkit-flex'}, {display:'flex'}]]
  ]
})
 
// { p:{color:'red'} } => p { display: -webkit-flex; display: flex; }

Replace with function

newValue can be function to dynamic calc the replacement.

cssobj_plugin_replace({
  map:[
    [null, null, function(key, value){return value>0 ? {[key]: value+'px'} : {[key]:value} }]
  ]
})
 
// { p:{padding:1, margin:0} } => p { padding: 1px; margin:0; }

Requirement

cssobj version >= 0.5.2

License

MIT

Package Sidebar

Install

npm i cssobj-plugin-replace

Weekly Downloads

1

Version

1.0.1

License

MIT

Last publish

Collaborators

  • cssobj