space-case-templates
TypeScript icon, indicating that this package has built-in type declarations

1.0.13 • Public • Published

Space-Case-Templates

easy string templates

note: everything here is subject to change. eventually the plug wrappers will support inline javascript RegExp which will make templating more expressive and standardized.

Example Usage

Bring the Templator class into your project:

#!/usr/bin/env node
 
let Templater = require('space-case-templates').Templater;
 
let t = new Templater();

Create a few plugs -- varaibles that you will use to hydrate your template:

let plugs = {
  'classname': 'Baked Potato',
  'anotherClassname': 'bacon service.test blah.blah-blah_blah'
}

Create your template:

let template = `
  no spaces:                            ~classname~
  with spaces:                          ~anotherClassname ~
  hyphenated:                           ~anotherClassname-~
  hpyhenated + lowercase:               ~anotherClassname-\\~
  underscore-separated upper case:      ~anotherClassname_/~
  upper case preserve spacing           ~anotherClassname! /~
  no spaces uppercase:                  ~anotherClassname/~
  capitalize first:                     ~anotherClassname^~
  camel case:                           ~anotherClassname^^~
  pascal case:                          ~anotherClassname^^^~
  this var doesn't exist:               ~yetAnotherClassname~
`;

See what it does:

console.log(t.plug(template, plugs));

output:

  no spaces:                            BakedPotato                                                                                           
  with spaces:                          bacon service test blah blah blah blah                                                                
  hyphenated:                           bacon-service-test-blah-blah-blah-blah                                                                
  hpyhenated + lowercase:               bacon-service-test-blah-blah-blah-blah                                                                
  underscore-separated upper case:      BACON_SERVICE_TEST_BLAH_BLAH_BLAH_BLAH                                                                
  upper case preserve spacing           BACON SERVICE.TEST BLAH.BLAH-BLAH_BLAH                                                                
  no spaces uppercase:                  BACONSERVICETESTBLAHBLAHBLAHBLAH                                                                      
  capitalize first:                     Baconservicetestblahblahblahblah                                                                      
  camel case:                           baconServiceTestBlahBlahBlahBlah                                                                      
  pascal case:                          BaconServiceTestBlahBlahBlahBlah                                                                      
  this var doesn't exist:               ~yetAnotherClassname~

Explanation

Each variable reference in the template is has a wrapper: '~' e.g.: ~myVariable~

The variable reference can specify a case modifier immediately before the end of the wrapper:

case modifier example reference
all uppercase / ~myVar/~
all lowercase \ ~myVar\~
capitalize first ^ ~myVar^~
camel case ^^ ~myVar^^~
pascal case ^^^ ~myVar^^^~

A space modifier may be inserted before the case modifier.

Space modofiers replace the symbols in the following RegExp: /[\s.,_-]/g

Except forthe 'preserve spacing'space modifier, each modifer replaces all of the matches to the above RegExp with the symbol modifier:

Review the example usage above and it should make sense.

symbol description
' ' space
'.' dot
',' comma
'_' underscore
'-' dash
'! ' preserve spacing

if a space modifier is not provided all spaces will be removed from the variable

so if the value of ~myval~ is 'this is my var', then the text inserted in the template will be 'thisismyvar'.

to keep spacing in the above variable you'd say ~myval! ~. (the preserve spacing symbol).

Readme

Keywords

none

Package Sidebar

Install

npm i space-case-templates

Weekly Downloads

18

Version

1.0.13

License

MIT

Last publish

Collaborators

  • gforceg