node-sass-json-functions 4.0.1 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -10
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased][]
|
|
4
4
|
|
|
5
|
+
## [4.0.2][] - 2023-08-16
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Quoted strings for map keys
|
|
10
|
+
([#9](https://github.com/niksy/node-sass-json-functions/issues/9))
|
|
11
|
+
|
|
5
12
|
## [4.0.1][] - 2023-06-13
|
|
6
13
|
|
|
7
14
|
### Fixed
|
|
@@ -57,16 +64,9 @@
|
|
|
57
64
|
[3.0.0]: https://github.com/niksy/node-sass-json-functions/tree/v3.0.0
|
|
58
65
|
[3.1.0]: https://github.com/niksy/node-sass-json-functions/tree/v3.1.0
|
|
59
66
|
[3.2.0]: https://github.com/niksy/node-sass-json-functions/tree/v3.2.0
|
|
60
|
-
|
|
61
|
-
<!-- prettier-ignore-end -->
|
|
62
|
-
|
|
63
|
-
https://github.com/niksy/node-sass-json-functions/compare/v3.3.0...HEAD
|
|
64
|
-
|
|
65
67
|
[3.3.0]: https://github.com/niksy/node-sass-json-functions/tree/v3.3.0
|
|
66
|
-
[Unreleased]:
|
|
67
|
-
https://github.com/niksy/node-sass-json-functions/compare/v4.0.1...HEAD
|
|
68
68
|
[4.0.1]: https://github.com/niksy/node-sass-json-functions/tree/v4.0.1
|
|
69
|
-
|
|
70
|
-
https://github.com/niksy/node-sass-json-functions/compare/v4.0.0...HEAD
|
|
71
|
-
|
|
72
69
|
[4.0.0]: https://github.com/niksy/node-sass-json-functions/tree/v4.0.0
|
|
70
|
+
[Unreleased]:
|
|
71
|
+
https://github.com/niksy/node-sass-json-functions/compare/v4.0.2...HEAD
|
|
72
|
+
[4.0.2]: https://github.com/niksy/node-sass-json-functions/tree/v4.0.2
|
package/cjs/index.js
CHANGED
|
@@ -103,7 +103,7 @@ function mapToObject(map) {
|
|
|
103
103
|
}).keys()) {
|
|
104
104
|
const resolvedValue = map.get(index);
|
|
105
105
|
if (typeof resolvedValue !== 'undefined') {
|
|
106
|
-
const key = String(resolvedValue.get(0));
|
|
106
|
+
const key = String(getJsonValueFromSassValue(resolvedValue.get(0)));
|
|
107
107
|
const value = getJsonValueFromSassValue(resolvedValue.get(1));
|
|
108
108
|
data[key] = value;
|
|
109
109
|
}
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../lib/sass-to-json.js","../lib/json-to-sass.js","../index.js"],"sourcesContent":["import * as sass from 'sass';\nimport rgbHex from 'rgb-hex';\nimport shortHexColor from 'shorten-css-hex';\n\n/**\n * @typedef {import('../index').JsonValue} JsonValue\n * @typedef {import('../index').JsonObject} JsonObject\n * @typedef {import('../index').JsonArray} JsonArray\n */\n\n/**\n * @param {sass.Value|undefined} value\n */\nfunction getJsonValueFromSassValue(value) {\n\tlet resolvedValue;\n\tif (value instanceof sass.SassList) {\n\t\tresolvedValue = listToArray(value);\n\t} else if (value instanceof sass.SassMap) {\n\t\tresolvedValue = mapToObject(value);\n\t} else if (value instanceof sass.SassColor) {\n\t\t/** @type {[number, number, number]} */\n\t\tconst rgbValue = [value.red, value.green, value.blue];\n\t\tconst alphaValue = value.alpha;\n\t\tif (alphaValue === 1) {\n\t\t\tresolvedValue = shortHexColor(`#${rgbHex.apply(null, rgbValue)}`);\n\t\t} else {\n\t\t\tresolvedValue = `rgba(${rgbValue.join(',')},${alphaValue})`;\n\t\t}\n\t} else if (value instanceof sass.SassNumber) {\n\t\tif (value.hasUnits) {\n\t\t\tresolvedValue = String(value.value) + value.numeratorUnits.last();\n\t\t} else {\n\t\t\tresolvedValue = Number(value.value);\n\t\t}\n\t} else if (value instanceof sass.SassString) {\n\t\tresolvedValue = String(value.text);\n\t} else if (value instanceof sass.SassBoolean) {\n\t\tresolvedValue = Boolean(value.value);\n\t} else {\n\t\tresolvedValue = null;\n\t}\n\treturn resolvedValue;\n}\n\n/**\n * @param {sass.SassList} list\n */\nfunction listToArray(list) {\n\tconst length = list.asList.size;\n\t/** @type {JsonArray} */\n\tconst data = [];\n\tfor (const index of Array.from({ length }).keys()) {\n\t\tconst value = getJsonValueFromSassValue(list.get(index));\n\t\tdata.push(value);\n\t}\n\treturn data;\n}\n\n/**\n * @param {sass.SassMap} map\n */\nfunction mapToObject(map) {\n\tconst length = map.contents.size;\n\t/** @type {JsonObject} */\n\tconst data = {};\n\tfor (const index of Array.from({ length }).keys()) {\n\t\tconst resolvedValue = map.get(index);\n\t\tif (typeof resolvedValue !== 'undefined') {\n\t\t\tconst key = String(resolvedValue.get(0));\n\t\t\tconst value = getJsonValueFromSassValue(resolvedValue.get(1));\n\t\t\tdata[key] = value;\n\t\t}\n\t}\n\treturn data;\n}\n\nexport default getJsonValueFromSassValue;\n","import * as sass from 'sass';\nimport isPlainObject from 'is-plain-obj';\nimport parseColor from 'parse-color';\nimport parseUnit from 'parse-css-dimension';\nimport { OrderedMap } from 'immutable';\n\n/**\n * @typedef {import('../index').JsonValue} JsonValue\n * @typedef {import('../index').JsonObject} JsonObject\n * @typedef {import('../index').JsonArray} JsonArray\n */\n\nconst unitTypes = ['length', 'angle', 'resolution', 'frequency', 'time'];\n\n/**\n * @param {string} value\n */\nfunction isColor(value) {\n\treturn typeof parseColor(value).rgba !== 'undefined';\n}\n\n/**\n * @param {string} value\n */\nfunction parseValueToStringOrNumber(value) {\n\tlet resolvedValue;\n\ttry {\n\t\tconst { value: parsedValue, unit, type } = parseUnit(value);\n\t\tif (unitTypes.includes(type)) {\n\t\t\tresolvedValue = new sass.SassNumber(parsedValue, unit);\n\t\t} else if (type === 'percentage') {\n\t\t\tresolvedValue = new sass.SassNumber(parsedValue, '%');\n\t\t} else {\n\t\t\tresolvedValue = new sass.SassString(value);\n\t\t}\n\t} catch (error) {\n\t\tresolvedValue = new sass.SassString(value);\n\t}\n\treturn resolvedValue;\n}\n\n/**\n * @param {string} value\n */\nfunction parseValueToColor(value) {\n\tconst [red, green, blue, alpha] = parseColor(value).rgba;\n\treturn new sass.SassColor({\n\t\tred,\n\t\tgreen,\n\t\tblue,\n\t\talpha\n\t});\n}\n\n/**\n * @param {JsonValue} value\n */\nfunction setJsonValueToSassValue(value) {\n\tlet resolvedValue;\n\tif (Array.isArray(value)) {\n\t\tresolvedValue = arrayToList(value);\n\t} else if (isPlainObject(value)) {\n\t\tresolvedValue = objectToMap(value);\n\t} else if (isColor(String(value))) {\n\t\tresolvedValue = parseValueToColor(String(value));\n\t} else if (typeof value === 'string') {\n\t\tresolvedValue = parseValueToStringOrNumber(value);\n\t} else if (typeof value === 'number') {\n\t\tresolvedValue = new sass.SassNumber(value);\n\t} else if (typeof value === 'boolean') {\n\t\tresolvedValue = value ? sass.sassTrue : sass.sassFalse;\n\t} else {\n\t\tresolvedValue = sass.sassNull;\n\t}\n\treturn resolvedValue;\n}\n\n/**\n * @param {JsonArray} array\n */\nfunction arrayToList(array) {\n\t/** @type {sass.Value[]} */\n\tconst data = [];\n\tfor (const item of array) {\n\t\tdata.push(setJsonValueToSassValue(item));\n\t}\n\treturn new sass.SassList(data);\n}\n\n/**\n * @param {JsonObject} object\n */\nfunction objectToMap(object) {\n\t/** @type {[sass.Value, sass.Value][]} */\n\tconst data = [];\n\tfor (const [property, value = null] of Object.entries(object)) {\n\t\tdata.push([\n\t\t\tsetJsonValueToSassValue(property),\n\t\t\tsetJsonValueToSassValue(value)\n\t\t]);\n\t}\n\t// eslint-disable-next-line new-cap\n\treturn new sass.SassMap(OrderedMap(data));\n}\n\nexport default setJsonValueToSassValue;\n","import * as sass from 'sass';\nimport getJsonValueFromSassValue from './lib/sass-to-json.js';\nimport setJsonValueToSassValue from './lib/json-to-sass.js';\n\n/**\n * @typedef {JsonPrimitive | JsonObject | JsonArray} JsonValue\n * @typedef {JsonValue[]} JsonArray\n * @typedef {string | number | boolean | null} JsonPrimitive\n * @typedef {{[Key in string]?: JsonValue}} JsonObject\n */\n\n/**\n * Encodes (`JSON.stringify`) data and returns Sass string. By default, string is quoted with single quotes so that it can be easily used in standard CSS values.\n *\n * First argument: `sass.Value` - Data to encode (stringify).\n *\n * Second argument: `sass.SassBoolean` - Should output string be quoted with single quotes.\n *\n * @param {sass.Value[]} encodeArguments\n */\nfunction encode(encodeArguments) {\n\tconst [data, quotes_] = encodeArguments;\n\tconst quotes = quotes_.assertBoolean('quotes');\n\tconst shouldQuote = quotes.value;\n\tlet resolvedValue = JSON.stringify(getJsonValueFromSassValue(data));\n\tif (shouldQuote) {\n\t\tresolvedValue = `'${resolvedValue}'`;\n\t}\n\treturn new sass.SassString(resolvedValue);\n}\n\n/**\n * Decodes (`JSON.parse`) string and returns one of available Sass types.\n *\n * First argument: `sass.SassString` - String to decode (parse).\n *\n * @param {sass.Value[]} decodeArguments\n */\nfunction decode(decodeArguments) {\n\tconst [string_] = decodeArguments;\n\tconst string = string_.assertString('string');\n\t/** @type {JsonValue?} */\n\tlet resolvedValue = {};\n\ttry {\n\t\tresolvedValue = JSON.parse(string.text);\n\t} catch (error) {\n\t\tresolvedValue = null;\n\t}\n\treturn setJsonValueToSassValue(resolvedValue);\n}\n\n/** @type {{ 'json-encode($data, $quotes: true)': typeof encode, 'json-decode($string)': typeof decode }} */\nconst api = {\n\t'json-encode($data, $quotes: true)': encode,\n\t'json-decode($string)': decode\n};\n\nexport default api;\n"],"names":["getJsonValueFromSassValue","value","resolvedValue","sass","SassList","listToArray","SassMap","mapToObject","SassColor","rgbValue","red","green","blue","alphaValue","alpha","shortHexColor","rgbHex","apply","join","SassNumber","hasUnits","String","numeratorUnits","last","Number","SassString","text","SassBoolean","Boolean","list","length","asList","size","data","index","Array","from","keys","get","push","map","contents","key","unitTypes","isColor","parseColor","rgba","parseValueToStringOrNumber","parsedValue","unit","type","parseUnit","includes","error","parseValueToColor","setJsonValueToSassValue","isArray","arrayToList","isPlainObject","objectToMap","sassTrue","sassFalse","sassNull","array","item","object","property","Object","entries","OrderedMap","encode","encodeArguments","quotes_","quotes","assertBoolean","shouldQuote","JSON","stringify","decode","decodeArguments","string_","string","assertString","parse","api"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../lib/sass-to-json.js","../lib/json-to-sass.js","../index.js"],"sourcesContent":["import * as sass from 'sass';\nimport rgbHex from 'rgb-hex';\nimport shortHexColor from 'shorten-css-hex';\n\n/**\n * @typedef {import('../index').JsonValue} JsonValue\n * @typedef {import('../index').JsonObject} JsonObject\n * @typedef {import('../index').JsonArray} JsonArray\n */\n\n/**\n * @param {sass.Value|undefined} value\n */\nfunction getJsonValueFromSassValue(value) {\n\tlet resolvedValue;\n\tif (value instanceof sass.SassList) {\n\t\tresolvedValue = listToArray(value);\n\t} else if (value instanceof sass.SassMap) {\n\t\tresolvedValue = mapToObject(value);\n\t} else if (value instanceof sass.SassColor) {\n\t\t/** @type {[number, number, number]} */\n\t\tconst rgbValue = [value.red, value.green, value.blue];\n\t\tconst alphaValue = value.alpha;\n\t\tif (alphaValue === 1) {\n\t\t\tresolvedValue = shortHexColor(`#${rgbHex.apply(null, rgbValue)}`);\n\t\t} else {\n\t\t\tresolvedValue = `rgba(${rgbValue.join(',')},${alphaValue})`;\n\t\t}\n\t} else if (value instanceof sass.SassNumber) {\n\t\tif (value.hasUnits) {\n\t\t\tresolvedValue = String(value.value) + value.numeratorUnits.last();\n\t\t} else {\n\t\t\tresolvedValue = Number(value.value);\n\t\t}\n\t} else if (value instanceof sass.SassString) {\n\t\tresolvedValue = String(value.text);\n\t} else if (value instanceof sass.SassBoolean) {\n\t\tresolvedValue = Boolean(value.value);\n\t} else {\n\t\tresolvedValue = null;\n\t}\n\treturn resolvedValue;\n}\n\n/**\n * @param {sass.SassList} list\n */\nfunction listToArray(list) {\n\tconst length = list.asList.size;\n\t/** @type {JsonArray} */\n\tconst data = [];\n\tfor (const index of Array.from({ length }).keys()) {\n\t\tconst value = getJsonValueFromSassValue(list.get(index));\n\t\tdata.push(value);\n\t}\n\treturn data;\n}\n\n/**\n * @param {sass.SassMap} map\n */\nfunction mapToObject(map) {\n\tconst length = map.contents.size;\n\t/** @type {JsonObject} */\n\tconst data = {};\n\tfor (const index of Array.from({ length }).keys()) {\n\t\tconst resolvedValue = map.get(index);\n\t\tif (typeof resolvedValue !== 'undefined') {\n\t\t\tconst key = String(getJsonValueFromSassValue(resolvedValue.get(0)));\n\t\t\tconst value = getJsonValueFromSassValue(resolvedValue.get(1));\n\t\t\tdata[key] = value;\n\t\t}\n\t}\n\treturn data;\n}\n\nexport default getJsonValueFromSassValue;\n","import * as sass from 'sass';\nimport isPlainObject from 'is-plain-obj';\nimport parseColor from 'parse-color';\nimport parseUnit from 'parse-css-dimension';\nimport { OrderedMap } from 'immutable';\n\n/**\n * @typedef {import('../index').JsonValue} JsonValue\n * @typedef {import('../index').JsonObject} JsonObject\n * @typedef {import('../index').JsonArray} JsonArray\n */\n\nconst unitTypes = ['length', 'angle', 'resolution', 'frequency', 'time'];\n\n/**\n * @param {string} value\n */\nfunction isColor(value) {\n\treturn typeof parseColor(value).rgba !== 'undefined';\n}\n\n/**\n * @param {string} value\n */\nfunction parseValueToStringOrNumber(value) {\n\tlet resolvedValue;\n\ttry {\n\t\tconst { value: parsedValue, unit, type } = parseUnit(value);\n\t\tif (unitTypes.includes(type)) {\n\t\t\tresolvedValue = new sass.SassNumber(parsedValue, unit);\n\t\t} else if (type === 'percentage') {\n\t\t\tresolvedValue = new sass.SassNumber(parsedValue, '%');\n\t\t} else {\n\t\t\tresolvedValue = new sass.SassString(value);\n\t\t}\n\t} catch (error) {\n\t\tresolvedValue = new sass.SassString(value);\n\t}\n\treturn resolvedValue;\n}\n\n/**\n * @param {string} value\n */\nfunction parseValueToColor(value) {\n\tconst [red, green, blue, alpha] = parseColor(value).rgba;\n\treturn new sass.SassColor({\n\t\tred,\n\t\tgreen,\n\t\tblue,\n\t\talpha\n\t});\n}\n\n/**\n * @param {JsonValue} value\n */\nfunction setJsonValueToSassValue(value) {\n\tlet resolvedValue;\n\tif (Array.isArray(value)) {\n\t\tresolvedValue = arrayToList(value);\n\t} else if (isPlainObject(value)) {\n\t\tresolvedValue = objectToMap(value);\n\t} else if (isColor(String(value))) {\n\t\tresolvedValue = parseValueToColor(String(value));\n\t} else if (typeof value === 'string') {\n\t\tresolvedValue = parseValueToStringOrNumber(value);\n\t} else if (typeof value === 'number') {\n\t\tresolvedValue = new sass.SassNumber(value);\n\t} else if (typeof value === 'boolean') {\n\t\tresolvedValue = value ? sass.sassTrue : sass.sassFalse;\n\t} else {\n\t\tresolvedValue = sass.sassNull;\n\t}\n\treturn resolvedValue;\n}\n\n/**\n * @param {JsonArray} array\n */\nfunction arrayToList(array) {\n\t/** @type {sass.Value[]} */\n\tconst data = [];\n\tfor (const item of array) {\n\t\tdata.push(setJsonValueToSassValue(item));\n\t}\n\treturn new sass.SassList(data);\n}\n\n/**\n * @param {JsonObject} object\n */\nfunction objectToMap(object) {\n\t/** @type {[sass.Value, sass.Value][]} */\n\tconst data = [];\n\tfor (const [property, value = null] of Object.entries(object)) {\n\t\tdata.push([\n\t\t\tsetJsonValueToSassValue(property),\n\t\t\tsetJsonValueToSassValue(value)\n\t\t]);\n\t}\n\t// eslint-disable-next-line new-cap\n\treturn new sass.SassMap(OrderedMap(data));\n}\n\nexport default setJsonValueToSassValue;\n","import * as sass from 'sass';\nimport getJsonValueFromSassValue from './lib/sass-to-json.js';\nimport setJsonValueToSassValue from './lib/json-to-sass.js';\n\n/**\n * @typedef {JsonPrimitive | JsonObject | JsonArray} JsonValue\n * @typedef {JsonValue[]} JsonArray\n * @typedef {string | number | boolean | null} JsonPrimitive\n * @typedef {{[Key in string]?: JsonValue}} JsonObject\n */\n\n/**\n * Encodes (`JSON.stringify`) data and returns Sass string. By default, string is quoted with single quotes so that it can be easily used in standard CSS values.\n *\n * First argument: `sass.Value` - Data to encode (stringify).\n *\n * Second argument: `sass.SassBoolean` - Should output string be quoted with single quotes.\n *\n * @param {sass.Value[]} encodeArguments\n */\nfunction encode(encodeArguments) {\n\tconst [data, quotes_] = encodeArguments;\n\tconst quotes = quotes_.assertBoolean('quotes');\n\tconst shouldQuote = quotes.value;\n\tlet resolvedValue = JSON.stringify(getJsonValueFromSassValue(data));\n\tif (shouldQuote) {\n\t\tresolvedValue = `'${resolvedValue}'`;\n\t}\n\treturn new sass.SassString(resolvedValue);\n}\n\n/**\n * Decodes (`JSON.parse`) string and returns one of available Sass types.\n *\n * First argument: `sass.SassString` - String to decode (parse).\n *\n * @param {sass.Value[]} decodeArguments\n */\nfunction decode(decodeArguments) {\n\tconst [string_] = decodeArguments;\n\tconst string = string_.assertString('string');\n\t/** @type {JsonValue?} */\n\tlet resolvedValue = {};\n\ttry {\n\t\tresolvedValue = JSON.parse(string.text);\n\t} catch (error) {\n\t\tresolvedValue = null;\n\t}\n\treturn setJsonValueToSassValue(resolvedValue);\n}\n\n/** @type {{ 'json-encode($data, $quotes: true)': typeof encode, 'json-decode($string)': typeof decode }} */\nconst api = {\n\t'json-encode($data, $quotes: true)': encode,\n\t'json-decode($string)': decode\n};\n\nexport default api;\n"],"names":["getJsonValueFromSassValue","value","resolvedValue","sass","SassList","listToArray","SassMap","mapToObject","SassColor","rgbValue","red","green","blue","alphaValue","alpha","shortHexColor","rgbHex","apply","join","SassNumber","hasUnits","String","numeratorUnits","last","Number","SassString","text","SassBoolean","Boolean","list","length","asList","size","data","index","Array","from","keys","get","push","map","contents","key","unitTypes","isColor","parseColor","rgba","parseValueToStringOrNumber","parsedValue","unit","type","parseUnit","includes","error","parseValueToColor","setJsonValueToSassValue","isArray","arrayToList","isPlainObject","objectToMap","sassTrue","sassFalse","sassNull","array","item","object","property","Object","entries","OrderedMap","encode","encodeArguments","quotes_","quotes","assertBoolean","shouldQuote","JSON","stringify","decode","decodeArguments","string_","string","assertString","parse","api"],"mappings":"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"}
|
package/esm/index.js
CHANGED
|
@@ -74,7 +74,7 @@ function mapToObject(map) {
|
|
|
74
74
|
}).keys()) {
|
|
75
75
|
const resolvedValue = map.get(index);
|
|
76
76
|
if (typeof resolvedValue !== 'undefined') {
|
|
77
|
-
const key = String(resolvedValue.get(0));
|
|
77
|
+
const key = String(getJsonValueFromSassValue(resolvedValue.get(0)));
|
|
78
78
|
const value = getJsonValueFromSassValue(resolvedValue.get(1));
|
|
79
79
|
data[key] = value;
|
|
80
80
|
}
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../lib/sass-to-json.js","../lib/json-to-sass.js","../index.js"],"sourcesContent":["import * as sass from 'sass';\nimport rgbHex from 'rgb-hex';\nimport shortHexColor from 'shorten-css-hex';\n\n/**\n * @typedef {import('../index').JsonValue} JsonValue\n * @typedef {import('../index').JsonObject} JsonObject\n * @typedef {import('../index').JsonArray} JsonArray\n */\n\n/**\n * @param {sass.Value|undefined} value\n */\nfunction getJsonValueFromSassValue(value) {\n\tlet resolvedValue;\n\tif (value instanceof sass.SassList) {\n\t\tresolvedValue = listToArray(value);\n\t} else if (value instanceof sass.SassMap) {\n\t\tresolvedValue = mapToObject(value);\n\t} else if (value instanceof sass.SassColor) {\n\t\t/** @type {[number, number, number]} */\n\t\tconst rgbValue = [value.red, value.green, value.blue];\n\t\tconst alphaValue = value.alpha;\n\t\tif (alphaValue === 1) {\n\t\t\tresolvedValue = shortHexColor(`#${rgbHex.apply(null, rgbValue)}`);\n\t\t} else {\n\t\t\tresolvedValue = `rgba(${rgbValue.join(',')},${alphaValue})`;\n\t\t}\n\t} else if (value instanceof sass.SassNumber) {\n\t\tif (value.hasUnits) {\n\t\t\tresolvedValue = String(value.value) + value.numeratorUnits.last();\n\t\t} else {\n\t\t\tresolvedValue = Number(value.value);\n\t\t}\n\t} else if (value instanceof sass.SassString) {\n\t\tresolvedValue = String(value.text);\n\t} else if (value instanceof sass.SassBoolean) {\n\t\tresolvedValue = Boolean(value.value);\n\t} else {\n\t\tresolvedValue = null;\n\t}\n\treturn resolvedValue;\n}\n\n/**\n * @param {sass.SassList} list\n */\nfunction listToArray(list) {\n\tconst length = list.asList.size;\n\t/** @type {JsonArray} */\n\tconst data = [];\n\tfor (const index of Array.from({ length }).keys()) {\n\t\tconst value = getJsonValueFromSassValue(list.get(index));\n\t\tdata.push(value);\n\t}\n\treturn data;\n}\n\n/**\n * @param {sass.SassMap} map\n */\nfunction mapToObject(map) {\n\tconst length = map.contents.size;\n\t/** @type {JsonObject} */\n\tconst data = {};\n\tfor (const index of Array.from({ length }).keys()) {\n\t\tconst resolvedValue = map.get(index);\n\t\tif (typeof resolvedValue !== 'undefined') {\n\t\t\tconst key = String(resolvedValue.get(0));\n\t\t\tconst value = getJsonValueFromSassValue(resolvedValue.get(1));\n\t\t\tdata[key] = value;\n\t\t}\n\t}\n\treturn data;\n}\n\nexport default getJsonValueFromSassValue;\n","import * as sass from 'sass';\nimport isPlainObject from 'is-plain-obj';\nimport parseColor from 'parse-color';\nimport parseUnit from 'parse-css-dimension';\nimport { OrderedMap } from 'immutable';\n\n/**\n * @typedef {import('../index').JsonValue} JsonValue\n * @typedef {import('../index').JsonObject} JsonObject\n * @typedef {import('../index').JsonArray} JsonArray\n */\n\nconst unitTypes = ['length', 'angle', 'resolution', 'frequency', 'time'];\n\n/**\n * @param {string} value\n */\nfunction isColor(value) {\n\treturn typeof parseColor(value).rgba !== 'undefined';\n}\n\n/**\n * @param {string} value\n */\nfunction parseValueToStringOrNumber(value) {\n\tlet resolvedValue;\n\ttry {\n\t\tconst { value: parsedValue, unit, type } = parseUnit(value);\n\t\tif (unitTypes.includes(type)) {\n\t\t\tresolvedValue = new sass.SassNumber(parsedValue, unit);\n\t\t} else if (type === 'percentage') {\n\t\t\tresolvedValue = new sass.SassNumber(parsedValue, '%');\n\t\t} else {\n\t\t\tresolvedValue = new sass.SassString(value);\n\t\t}\n\t} catch (error) {\n\t\tresolvedValue = new sass.SassString(value);\n\t}\n\treturn resolvedValue;\n}\n\n/**\n * @param {string} value\n */\nfunction parseValueToColor(value) {\n\tconst [red, green, blue, alpha] = parseColor(value).rgba;\n\treturn new sass.SassColor({\n\t\tred,\n\t\tgreen,\n\t\tblue,\n\t\talpha\n\t});\n}\n\n/**\n * @param {JsonValue} value\n */\nfunction setJsonValueToSassValue(value) {\n\tlet resolvedValue;\n\tif (Array.isArray(value)) {\n\t\tresolvedValue = arrayToList(value);\n\t} else if (isPlainObject(value)) {\n\t\tresolvedValue = objectToMap(value);\n\t} else if (isColor(String(value))) {\n\t\tresolvedValue = parseValueToColor(String(value));\n\t} else if (typeof value === 'string') {\n\t\tresolvedValue = parseValueToStringOrNumber(value);\n\t} else if (typeof value === 'number') {\n\t\tresolvedValue = new sass.SassNumber(value);\n\t} else if (typeof value === 'boolean') {\n\t\tresolvedValue = value ? sass.sassTrue : sass.sassFalse;\n\t} else {\n\t\tresolvedValue = sass.sassNull;\n\t}\n\treturn resolvedValue;\n}\n\n/**\n * @param {JsonArray} array\n */\nfunction arrayToList(array) {\n\t/** @type {sass.Value[]} */\n\tconst data = [];\n\tfor (const item of array) {\n\t\tdata.push(setJsonValueToSassValue(item));\n\t}\n\treturn new sass.SassList(data);\n}\n\n/**\n * @param {JsonObject} object\n */\nfunction objectToMap(object) {\n\t/** @type {[sass.Value, sass.Value][]} */\n\tconst data = [];\n\tfor (const [property, value = null] of Object.entries(object)) {\n\t\tdata.push([\n\t\t\tsetJsonValueToSassValue(property),\n\t\t\tsetJsonValueToSassValue(value)\n\t\t]);\n\t}\n\t// eslint-disable-next-line new-cap\n\treturn new sass.SassMap(OrderedMap(data));\n}\n\nexport default setJsonValueToSassValue;\n","import * as sass from 'sass';\nimport getJsonValueFromSassValue from './lib/sass-to-json.js';\nimport setJsonValueToSassValue from './lib/json-to-sass.js';\n\n/**\n * @typedef {JsonPrimitive | JsonObject | JsonArray} JsonValue\n * @typedef {JsonValue[]} JsonArray\n * @typedef {string | number | boolean | null} JsonPrimitive\n * @typedef {{[Key in string]?: JsonValue}} JsonObject\n */\n\n/**\n * Encodes (`JSON.stringify`) data and returns Sass string. By default, string is quoted with single quotes so that it can be easily used in standard CSS values.\n *\n * First argument: `sass.Value` - Data to encode (stringify).\n *\n * Second argument: `sass.SassBoolean` - Should output string be quoted with single quotes.\n *\n * @param {sass.Value[]} encodeArguments\n */\nfunction encode(encodeArguments) {\n\tconst [data, quotes_] = encodeArguments;\n\tconst quotes = quotes_.assertBoolean('quotes');\n\tconst shouldQuote = quotes.value;\n\tlet resolvedValue = JSON.stringify(getJsonValueFromSassValue(data));\n\tif (shouldQuote) {\n\t\tresolvedValue = `'${resolvedValue}'`;\n\t}\n\treturn new sass.SassString(resolvedValue);\n}\n\n/**\n * Decodes (`JSON.parse`) string and returns one of available Sass types.\n *\n * First argument: `sass.SassString` - String to decode (parse).\n *\n * @param {sass.Value[]} decodeArguments\n */\nfunction decode(decodeArguments) {\n\tconst [string_] = decodeArguments;\n\tconst string = string_.assertString('string');\n\t/** @type {JsonValue?} */\n\tlet resolvedValue = {};\n\ttry {\n\t\tresolvedValue = JSON.parse(string.text);\n\t} catch (error) {\n\t\tresolvedValue = null;\n\t}\n\treturn setJsonValueToSassValue(resolvedValue);\n}\n\n/** @type {{ 'json-encode($data, $quotes: true)': typeof encode, 'json-decode($string)': typeof decode }} */\nconst api = {\n\t'json-encode($data, $quotes: true)': encode,\n\t'json-decode($string)': decode\n};\n\nexport default api;\n"],"names":["getJsonValueFromSassValue","value","resolvedValue","sass","SassList","listToArray","SassMap","mapToObject","SassColor","rgbValue","red","green","blue","alphaValue","alpha","shortHexColor","rgbHex","apply","join","SassNumber","hasUnits","String","numeratorUnits","last","Number","SassString","text","SassBoolean","Boolean","list","length","asList","size","data","index","Array","from","keys","get","push","map","contents","key","unitTypes","isColor","parseColor","rgba","parseValueToStringOrNumber","parsedValue","unit","type","parseUnit","includes","error","parseValueToColor","setJsonValueToSassValue","isArray","arrayToList","isPlainObject","objectToMap","sassTrue","sassFalse","sassNull","array","item","object","property","Object","entries","OrderedMap","encode","encodeArguments","quotes_","quotes","assertBoolean","shouldQuote","JSON","stringify","decode","decodeArguments","string_","string","assertString","parse","api"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../lib/sass-to-json.js","../lib/json-to-sass.js","../index.js"],"sourcesContent":["import * as sass from 'sass';\nimport rgbHex from 'rgb-hex';\nimport shortHexColor from 'shorten-css-hex';\n\n/**\n * @typedef {import('../index').JsonValue} JsonValue\n * @typedef {import('../index').JsonObject} JsonObject\n * @typedef {import('../index').JsonArray} JsonArray\n */\n\n/**\n * @param {sass.Value|undefined} value\n */\nfunction getJsonValueFromSassValue(value) {\n\tlet resolvedValue;\n\tif (value instanceof sass.SassList) {\n\t\tresolvedValue = listToArray(value);\n\t} else if (value instanceof sass.SassMap) {\n\t\tresolvedValue = mapToObject(value);\n\t} else if (value instanceof sass.SassColor) {\n\t\t/** @type {[number, number, number]} */\n\t\tconst rgbValue = [value.red, value.green, value.blue];\n\t\tconst alphaValue = value.alpha;\n\t\tif (alphaValue === 1) {\n\t\t\tresolvedValue = shortHexColor(`#${rgbHex.apply(null, rgbValue)}`);\n\t\t} else {\n\t\t\tresolvedValue = `rgba(${rgbValue.join(',')},${alphaValue})`;\n\t\t}\n\t} else if (value instanceof sass.SassNumber) {\n\t\tif (value.hasUnits) {\n\t\t\tresolvedValue = String(value.value) + value.numeratorUnits.last();\n\t\t} else {\n\t\t\tresolvedValue = Number(value.value);\n\t\t}\n\t} else if (value instanceof sass.SassString) {\n\t\tresolvedValue = String(value.text);\n\t} else if (value instanceof sass.SassBoolean) {\n\t\tresolvedValue = Boolean(value.value);\n\t} else {\n\t\tresolvedValue = null;\n\t}\n\treturn resolvedValue;\n}\n\n/**\n * @param {sass.SassList} list\n */\nfunction listToArray(list) {\n\tconst length = list.asList.size;\n\t/** @type {JsonArray} */\n\tconst data = [];\n\tfor (const index of Array.from({ length }).keys()) {\n\t\tconst value = getJsonValueFromSassValue(list.get(index));\n\t\tdata.push(value);\n\t}\n\treturn data;\n}\n\n/**\n * @param {sass.SassMap} map\n */\nfunction mapToObject(map) {\n\tconst length = map.contents.size;\n\t/** @type {JsonObject} */\n\tconst data = {};\n\tfor (const index of Array.from({ length }).keys()) {\n\t\tconst resolvedValue = map.get(index);\n\t\tif (typeof resolvedValue !== 'undefined') {\n\t\t\tconst key = String(getJsonValueFromSassValue(resolvedValue.get(0)));\n\t\t\tconst value = getJsonValueFromSassValue(resolvedValue.get(1));\n\t\t\tdata[key] = value;\n\t\t}\n\t}\n\treturn data;\n}\n\nexport default getJsonValueFromSassValue;\n","import * as sass from 'sass';\nimport isPlainObject from 'is-plain-obj';\nimport parseColor from 'parse-color';\nimport parseUnit from 'parse-css-dimension';\nimport { OrderedMap } from 'immutable';\n\n/**\n * @typedef {import('../index').JsonValue} JsonValue\n * @typedef {import('../index').JsonObject} JsonObject\n * @typedef {import('../index').JsonArray} JsonArray\n */\n\nconst unitTypes = ['length', 'angle', 'resolution', 'frequency', 'time'];\n\n/**\n * @param {string} value\n */\nfunction isColor(value) {\n\treturn typeof parseColor(value).rgba !== 'undefined';\n}\n\n/**\n * @param {string} value\n */\nfunction parseValueToStringOrNumber(value) {\n\tlet resolvedValue;\n\ttry {\n\t\tconst { value: parsedValue, unit, type } = parseUnit(value);\n\t\tif (unitTypes.includes(type)) {\n\t\t\tresolvedValue = new sass.SassNumber(parsedValue, unit);\n\t\t} else if (type === 'percentage') {\n\t\t\tresolvedValue = new sass.SassNumber(parsedValue, '%');\n\t\t} else {\n\t\t\tresolvedValue = new sass.SassString(value);\n\t\t}\n\t} catch (error) {\n\t\tresolvedValue = new sass.SassString(value);\n\t}\n\treturn resolvedValue;\n}\n\n/**\n * @param {string} value\n */\nfunction parseValueToColor(value) {\n\tconst [red, green, blue, alpha] = parseColor(value).rgba;\n\treturn new sass.SassColor({\n\t\tred,\n\t\tgreen,\n\t\tblue,\n\t\talpha\n\t});\n}\n\n/**\n * @param {JsonValue} value\n */\nfunction setJsonValueToSassValue(value) {\n\tlet resolvedValue;\n\tif (Array.isArray(value)) {\n\t\tresolvedValue = arrayToList(value);\n\t} else if (isPlainObject(value)) {\n\t\tresolvedValue = objectToMap(value);\n\t} else if (isColor(String(value))) {\n\t\tresolvedValue = parseValueToColor(String(value));\n\t} else if (typeof value === 'string') {\n\t\tresolvedValue = parseValueToStringOrNumber(value);\n\t} else if (typeof value === 'number') {\n\t\tresolvedValue = new sass.SassNumber(value);\n\t} else if (typeof value === 'boolean') {\n\t\tresolvedValue = value ? sass.sassTrue : sass.sassFalse;\n\t} else {\n\t\tresolvedValue = sass.sassNull;\n\t}\n\treturn resolvedValue;\n}\n\n/**\n * @param {JsonArray} array\n */\nfunction arrayToList(array) {\n\t/** @type {sass.Value[]} */\n\tconst data = [];\n\tfor (const item of array) {\n\t\tdata.push(setJsonValueToSassValue(item));\n\t}\n\treturn new sass.SassList(data);\n}\n\n/**\n * @param {JsonObject} object\n */\nfunction objectToMap(object) {\n\t/** @type {[sass.Value, sass.Value][]} */\n\tconst data = [];\n\tfor (const [property, value = null] of Object.entries(object)) {\n\t\tdata.push([\n\t\t\tsetJsonValueToSassValue(property),\n\t\t\tsetJsonValueToSassValue(value)\n\t\t]);\n\t}\n\t// eslint-disable-next-line new-cap\n\treturn new sass.SassMap(OrderedMap(data));\n}\n\nexport default setJsonValueToSassValue;\n","import * as sass from 'sass';\nimport getJsonValueFromSassValue from './lib/sass-to-json.js';\nimport setJsonValueToSassValue from './lib/json-to-sass.js';\n\n/**\n * @typedef {JsonPrimitive | JsonObject | JsonArray} JsonValue\n * @typedef {JsonValue[]} JsonArray\n * @typedef {string | number | boolean | null} JsonPrimitive\n * @typedef {{[Key in string]?: JsonValue}} JsonObject\n */\n\n/**\n * Encodes (`JSON.stringify`) data and returns Sass string. By default, string is quoted with single quotes so that it can be easily used in standard CSS values.\n *\n * First argument: `sass.Value` - Data to encode (stringify).\n *\n * Second argument: `sass.SassBoolean` - Should output string be quoted with single quotes.\n *\n * @param {sass.Value[]} encodeArguments\n */\nfunction encode(encodeArguments) {\n\tconst [data, quotes_] = encodeArguments;\n\tconst quotes = quotes_.assertBoolean('quotes');\n\tconst shouldQuote = quotes.value;\n\tlet resolvedValue = JSON.stringify(getJsonValueFromSassValue(data));\n\tif (shouldQuote) {\n\t\tresolvedValue = `'${resolvedValue}'`;\n\t}\n\treturn new sass.SassString(resolvedValue);\n}\n\n/**\n * Decodes (`JSON.parse`) string and returns one of available Sass types.\n *\n * First argument: `sass.SassString` - String to decode (parse).\n *\n * @param {sass.Value[]} decodeArguments\n */\nfunction decode(decodeArguments) {\n\tconst [string_] = decodeArguments;\n\tconst string = string_.assertString('string');\n\t/** @type {JsonValue?} */\n\tlet resolvedValue = {};\n\ttry {\n\t\tresolvedValue = JSON.parse(string.text);\n\t} catch (error) {\n\t\tresolvedValue = null;\n\t}\n\treturn setJsonValueToSassValue(resolvedValue);\n}\n\n/** @type {{ 'json-encode($data, $quotes: true)': typeof encode, 'json-decode($string)': typeof decode }} */\nconst api = {\n\t'json-encode($data, $quotes: true)': encode,\n\t'json-decode($string)': decode\n};\n\nexport default api;\n"],"names":["getJsonValueFromSassValue","value","resolvedValue","sass","SassList","listToArray","SassMap","mapToObject","SassColor","rgbValue","red","green","blue","alphaValue","alpha","shortHexColor","rgbHex","apply","join","SassNumber","hasUnits","String","numeratorUnits","last","Number","SassString","text","SassBoolean","Boolean","list","length","asList","size","data","index","Array","from","keys","get","push","map","contents","key","unitTypes","isColor","parseColor","rgba","parseValueToStringOrNumber","parsedValue","unit","type","parseUnit","includes","error","parseValueToColor","setJsonValueToSassValue","isArray","arrayToList","isPlainObject","objectToMap","sassTrue","sassFalse","sassNull","array","item","object","property","Object","entries","OrderedMap","encode","encodeArguments","quotes_","quotes","assertBoolean","shouldQuote","JSON","stringify","decode","decodeArguments","string_","string","assertString","parse","api"],"mappings":"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"}
|
package/package.json
CHANGED