0.3.5 • Published 3 years ago

@wareset-utilites/split v0.3.5

Weekly downloads
4
License
MIT
Repository
github
Last release
3 years ago

@wareset-utilites/split

Converts a string to an array, taking quotes or brackets.

Usage

import split from '@wareset-utilites/split';

Method: split(string: String, separator: String|RegExp = /\s(,)\s/, bracketsOpen = '', bracketsClose = '', isSafeSingleQuotes: Boolean = true)
  • isSafeSingleQuotes - "What's" => "What'\0's"
const attrs1 = `
q1, q2 ,q3,q4'4 ,
"q5, q5-1"       ,         'q6, q6'1  , q6-2'
q7 \` "q-7-1, q7-2" q7-3 \` , q8 "q-8-1" \t q9, q10
`;

// /'|"|`/ == '\'"`'
const res = split(attrs1, /\s*(,|\n|\t)\s*/);
console.log(res.join('\n--------\n'));

console.log:

--------
q1
--------
q2
--------
q3
--------
q4'4
--------
"q5, q5-1"
--------
'q6, q6'1  , q6-2'
--------
q7 ` "q-7-1, q7-2" q7-3 `
--------
q8 "q-8-1"
--------
q9
--------
q10
--------

Method: split(string, separator, bracketsOpen: String|RegExp, bracketsClose: String|RegExp, isSafeSingleQuotes)
const attrs = `
div(class="button",
  style="color: red",
  data="{ q1: 1, q2: testFn() }")

  mixin testMixin[
    { ...someData }
  ]

  span(class="button__ripple")
    span

  if(iconBefore): span.button__icon-before -- {
    iconBefore === 'menu' ? defaultIconMenu : iconBefore }

  span.button__text -- textContent

  if(iconAfter)
    span(class="button__icon-after") -- {iconAfter}
`;

// const res = split(attrs, '\n', '({\\[', '\\]})');
const res = split(attrs, '\n', /\(|\{|\[/, /\)|\}|\]/);
console.log(res.join('\n--------\n'));

console.log:

--------
div(class="button",
  style="color: red",
  data="{ q1: 1, q2: testFn() }")
--------

--------
  mixin testMixin[
    { ...someData }
  ]
--------

--------
  span(class="button__ripple")
--------
    span
--------

--------
  if(iconBefore): span.button__icon-before -- {
    iconBefore === 'menu' ? defaultIconMenu : iconBefore
  }
--------

--------
  span.button__text -- textContent
--------

--------
  if(iconAfter)
--------
    span(class="button__icon-after") -- {iconAfter}
--------

const attrs = `
class="cl1 cl2", content="What's your name" style="color: red",
arr1=" [1, 2, 3] ", arr2=[1, 2, 3], arr3={[1, 2, 3]}
obj={{
  q1: 1,
  q2: 2
}}
`;

const res = split(attrs, /(,|\s|\n)+/, /\{|\[/, /\}|\]/);
console.log(res.join('\n--------\n'));

console.log:

--------
class="cl1 cl2"
--------
content="What's your name"
--------
style="color: red"
--------
arr1=" [1, 2, 3] "
--------
arr2=[1, 2, 3]
--------
arr3={[1, 2, 3]}
--------
obj={{
  q1: 1,
  q2: 2
}}
--------
Method: split(NULL, separator, bracketsOpen, bracketsClose, isSafeSingleQuotes, isNewFn: Boolean = false)
// if 'isNewFn' is true:
const safeSplitFn = split(null, /(,|\s|\n)+/, /\{|\[/, /\}|\]/, true, true);
console.log(safeSplitFn(attrs));

License

MIT

0.3.5

3 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.0

4 years ago

0.2.1

4 years ago