Skip to content

Releases: red-perfume/red-perfume-task-runner

New Lifecycle Hooks API

30 Aug 13:32
ed11a42
Compare
Choose a tag to compare
Pre-release

Features:

  • Replaced the result callbacks with a more powerful lifecycle hooks API

Quality:

  • Major refactoring around how tasks are processed
  • Major refactoring around variable naming to improve codebase
  • Many improvements to how error/warning messages are written to include full path to the task index and subTask on markup.
  • Refactored and improved some tests

Maintenance:

  • All deps already up to date

Special Thanks to:

Changes:

Multiple psuedo, major cleanup/refactor

28 Aug 15:40
c96c865
Compare
Choose a tag to compare
Pre-release

Features:

  • Handle multiple psuedo classes/elements
    • Like .thing:hover:after {}

Quality:

  • Broke up a lot of really large functions into smaller functions to make the code easier to reason about.
  • Moved task processing from the index.js to its own file.
  • Moved some of the improvement's from Gwen's old PR directly into main to simplify her branch and get the improvements sooner
  • Enforced strict JSDocs linting rules.
  • Added a sadly needed max-lines-per-function: 50 linting rule
  • Refactored some tests

Maintenance:

  • Moved manual testing files from ambiguous "test" folder to obvious "manual-test" folder
  • Update dependencies/devDependencies

Special Thanks to:

Changes:

Psuedo-classes

31 Dec 05:02
dba8b0c
Compare
Choose a tag to compare
Psuedo-classes Pre-release
Pre-release

Should now support basic CSS with psuedo-classes like :hover.

.example {
  color: #F00;
  text-decoration: none;
}
.example:hover {
  color: #A00;
  text-decoration: underline;
}

becomes

.rp__color__--COLON__--OCTOTHORPF00 {
  color: #F00;
}
.rp__text-decoration__--COLONnone {
  text-decoration: none;
}
.rp__color__--COLON__--OCTOTHORPA00___-HOVER:hover {
  color: #A00;
}
.rp__text-decoration__--COLONunderline___-HOVER:hover {
  text-decoration: underline;
}

or

.rp__0 {
  color: #F00;
}
.rp__1 {
  text-decoration: none;
}
.rp__2:hover {
  color: #A00;
}
.rp__3:hover {
  text-decoration: underline;
}

and

<div class="example"></div>

becomes

<div class="rp__0 rp__1 rp__2 rp__3"></div>

Changes:

Remove dupe props and handle basic non-classes

27 Dec 21:50
Compare
Choose a tag to compare

Now handles atomizing basic classes, and passing along non-classes like tags, attributes, and IDs.

h1 { color: #F00; }
[data-example] { color: #00F; }
#example { color: #0F0; }
.example { color: #FFF; }

becomes

h1 { color: #F00; }
[data-example] { color: #00F; }
#example { color: #0F0; }
.rp__0 { color: #FFF; }
{
  ".example": [
    ".rp__0"
  ]
}

Also handles removing duplicate identical property/value pairs from the JSON class map where the property and value are identical.

{
  ".example": [
    ".rp__display__--COLONnone",
    ".rp__display__--COLONblock",
    ".rp__display__--COLONnone"
  ]
}

becomes

{
  ".example": [
    ".rp__display__--COLONblock",
    ".rp__display__--COLONnone"
  ]
}

Changes:

Alpha for testing

26 Dec 15:12
c2bc541
Compare
Choose a tag to compare
Alpha for testing Pre-release
Pre-release

This is an alpha release for testing/feedback. All known issues are documented on the GitHub Issues page. Report any additional issues you find.

In this initial release:

  • Atomizes basic CSS, does not support all valid CSS yet.
  • Updates markup to replace existing classes with atomized classes.
  • Can process input files or arbitrary strings.
  • Can output modified data to files or in callback.
  • Basic atomized class name uglification in place.
  • Human readable error handling.

Quality:

  • Automated unit tests with ~100% coverage.
  • Strict linting in place.
  • GitHub Actions CI set up to validate code quality and to create coverage badges.

All code changes:

3,561 lines of code + 2,429 (Bootstrap properties) + 5,115 (package-lock.json) = 11,087