pc__source_map

This is plugin for nmp-package "Post-Compression". He is contains methods for working with source maps.

Usage no npm install needed!

<script type="module">
  import pcSourceMap from 'https://cdn.skypack.dev/pc__source_map';
</script>

README

Work with source map

This is plugin for nmp-package "Post-Compression".
He is contains methods for working with source maps.

Each instance of the class has the following API:

  • remove(mapWithGroupsA, mapWithGroupsB) - if the property exist in "mapWithGroupsB" to remove it in "mapWithGroupsA".
  • combine(mapWithGroupsA) - to combine the properties of all groups.
  • minus(mapA, mapB) - if the property contains in "mapB" it must be removed from "mapA".
  • plus(mapA, mapB) - add all the properties from "mapB" in "mapA". To summarizes the value of properties.
  • copy(mapA, mapB) - add all the properties from "mapB" in "mapA". When the coincidence of the names of the properties, takes the value of the latter.
  • clear(mapWithGroupsA, config, isNeedShowConsole) - if the property contains certain characters it must be removed.
  • get(fileName) - load "source map" from the file. Expects one argument: the name of the file.
  • set(fileName, mapWithGroupsA) - sorts, formats and saves in the file "source map". Expects two arguments: the name of the file and unique names.
  • forEachValue(mapWithGroupsA, callback) - iterates through the elements.
  • forEachCommon(full, part, callback) - iterates through only common the elements.

The first example source map (map with groups):

{
    "class_in_css": {
        "button_green": 5,
        "button_black": 2,
        "button_blue": 3,
        "button_red": 1
    }
}

The second example source map (map without groups):

{
    "button_green": 5,
    "button_black": 2,
    "button_blue": 3,
    "button_red": 1
}

An example of using:

var map = require("pc__source_map");

var mapA = {
        propertyB: 2,
        propertyC: 3
    },
    mapB = {
        propertyD: 1,
        propertyC: 2
    }

map.minus(mapA, mapB);
map.plus(mapA, mapB);

The result of executing "minus":

mapA = {
    propertyB: 2
}

mapB = {
    propertyD: 1,
    propertyC: 2
}

The result of executing "plus":

mapA = {
    propertyB: 2
    propertyD: 1,
    propertyC: 5
}

mapB = {
    propertyD: 1,
    propertyC: 2
}

Detailed description of the API

Clear

Clears the "sourceMap" from according to the list of rules. This need for automation of drawing up the list of ignored values.

An example of "sourceMap" before:

{
    "groupNameA": {
        "valueA": 12,
        "valueB__some_postfix": 64
    }
}

An example of "sourceMap" after:

{
    "groupNameA": {
        "valueA": 12
    }
}

Set / Get

Clears the "sourceMap" from according to the list of rules. This need for automation of drawing up the list of ignored values.

An example of "sourceMap" before:

{
    "groupNameA": {
        "valueA": 12,
        "valueB__some_postfix": 64
    }
}

An example of using:

var map = require("./pc__source_map");

map.set("./pc__source_map.json", uniqueNames);   // save
uniqueNames = map.get("./pc__source_map.json");  // load