@alapnian-sass/throw
v0.0.1
Published
Provides Sass functions to standardize exception messages.
Readme
@use '@alapnian-sass/throw';const sass = require('sass');
sass.compile(filePath, {
loadPaths: ['node_modules']
});@forward "@alapnian-sass/throw" with (
$strict-mode: false
);@use "@alapnian-sass/throw" with (
$strict-mode: false
);throw.variable($message, $names...);
throw-variable($message, $names...);// Load modules
@use "@alapnian-sass/throw";
// Define vars
$width: 1080px !default;
// Validate
@if ($width < 0) {
@include throw.variable("Value must not be less than zero, but is `#{$width}`", "width");
}// Load modules
@use "@alapnian-sass/throw";
// Define vars
$width: 1080px !default;
// Validate
@if ($width < 0) {
@include throw.variable("Value must not be less than zero, but is `#{$width}`", "width", $strict-mode: false);
}// Load modules
@use "@alapnian-sass/throw" with ($strict-mode: false);
// Define vars
$width: 1080px !default;
// Validate
@if ($width < 0) {
@include throw.variable("Value must not be less than zero, but is `#{$width}`", "width");
}throw.variable-type($name, $value, $types...);
throw-variable-type($name, $value, $types...);// Load modules
@use "@alapnian-sass/meta";
@use "@alapnian-sass/throw";
// Define vars
$width: 1080px !default;
// Validate
@if (meta.type-of($width) != "number") {
@include throw.variable("width", $width, "number");
}// Load modules
@use "@alapnian-sass/throw";
// Define vars
$width: 1080px !default;
// Validate
@if (meta.type-of($width) != "number") {
@include throw.variable("width", $width, "number", $strict-mode: false, $message: "Please use the number value type.");
}// Load modules
@use "@alapnian-sass/throw" with ($strict-mode: false);
// Define vars
$width: 1080px !default;
// Validate
@if (meta.type-of($width) != "number") {
@include throw.variable("width", $width, "number", $message: "Please use the number value type.");
}throw.parameter($message, $context, $names...);
throw-parameter($message, $context, $names...);// Load modules
@use "sass:meta";
@use "@alapnian-sass/throw";
// Reflexive Position Mixin
@mixin reflexive-position($property, $value) {
@if $property != left and $property != right {
@include throw.parameter("Property #{$property} must be either left or right.", "property")
} @else {
@if (meta.type-of($value) != "number") {
@include throw.parameter-type("reflexive-position", "value", $value);
} @else {
$left-value: $value;
@if ($property == right) {
$left-value: initial;
}
$right-value: initial;
@if ($property == right) {
$right-value: $value;
}
left: $left-value;
right: $right-value;
[dir=rtl] & {
left: $right-value;
right: $left-value;
}
}
}
}
.valid-property {
@include reflexive-position("left", 12px);
}
.invalid-property {
@include reflexive-position("top", 12px);
}// Load modules
@use "sass:meta";
@use "@alapnian-sass/throw";
// Reflexive Position Mixin
@mixin reflexive-position($property, $value) {
@if $property != left and $property != right {
@include throw.parameter("Property #{$property} must be either left or right.", "property", $strict-mode: false)
} @else {
@if (meta.type-of($value) != "number") {
@include throw.parameter-type("reflexive-position", "value", $value);
} @else {
$left-value: $value;
@if ($property == right) {
$left-value: initial;
}
$right-value: initial;
@if ($property == right) {
$right-value: $value;
}
left: $left-value;
right: $right-value;
[dir=rtl] & {
left: $right-value;
right: $left-value;
}
}
}
}
.valid-property {
@include reflexive-position("left", 12px);
}
.invalid-property {
@include reflexive-position("top", 12px);
}// Load modules
@use "sass:meta";
@use "@alapnian-sass/throw" with ($strict-mode: false);
// Reflexive Position Mixin
@mixin reflexive-position($property, $value) {
@if $property != left and $property != right {
@include throw.parameter("Property #{$property} must be either left or right.", "property")
} @else {
@if (meta.type-of($value) != "number") {
@include throw.parameter-type("reflexive-position", "value", $value);
} @else {
$left-value: $value;
@if ($property == right) {
$left-value: initial;
}
$right-value: initial;
@if ($property == right) {
$right-value: $value;
}
left: $left-value;
right: $right-value;
[dir=rtl] & {
left: $right-value;
right: $left-value;
}
}
}
}
.valid-property {
@include reflexive-position("left", 12px);
}
.invalid-property {
@include reflexive-position("top", 12px);
}throw.parameter-type($context, $name, $value, $types...);
throw-parameter-type($context, $name, $value, $types...);// Load modules
@use "sass:meta";
@use "@alapnian-sass/throw";
// Reflexive Position Mixin
@mixin reflexive-position($property, $value) {
@if $property != left and $property != right {
@include throw.parameter("Property #{$property} must be either left or right.", "property")
} @else {
@if (meta.type-of($value) != "number") {
@include throw.parameter-type("reflexive-position", "value", $value);
} @else {
$left-value: $value;
@if ($property == right) {
$left-value: initial;
}
$right-value: initial;
@if ($property == right) {
$right-value: $value;
}
left: $left-value;
right: $right-value;
[dir=rtl] & {
left: $right-value;
right: $left-value;
}
}
}
}
.valid-value {
@include reflexive-position("left", 12px);
}
.invalid-value {
@include reflexive-position("left", "12px");
}// Load modules
@use "sass:meta";
@use "@alapnian-sass/throw";
// Reflexive Position Mixin
@mixin reflexive-position($property, $value) {
@if $property != left and $property != right {
@include throw.parameter("Property #{$property} must be either left or right.", "property")
} @else {
@if (meta.type-of($value) != "number") {
@include throw.parameter-type("reflexive-position", "value", $value, $strict-mode: false, $message: "Please use the number value type.");
} @else {
$left-value: $value;
@if ($property == right) {
$left-value: initial;
}
$right-value: initial;
@if ($property == right) {
$right-value: $value;
}
left: $left-value;
right: $right-value;
[dir=rtl] & {
left: $right-value;
right: $left-value;
}
}
}
}
.valid-value {
@include reflexive-position("left", 12px);
}
.invalid-value {
@include reflexive-position("left", "12px");
}// Load modules
@use "sass:meta";
@use "@alapnian-sass/throw" with($strict-mode: false);
// Reflexive Position Mixin
@mixin reflexive-position($property, $value) {
@if $property != left and $property != right {
@include throw.parameter("Property #{$property} must be either left or right.", "property")
} @else {
@if (meta.type-of($value) != "number") {
@include throw.parameter-type("reflexive-position", "value", $value, $message: "Please use the number value type.");
} @else {
$left-value: $value;
@if ($property == right) {
$left-value: initial;
}
$right-value: initial;
@if ($property == right) {
$right-value: $value;
}
left: $left-value;
right: $right-value;
[dir=rtl] & {
left: $right-value;
right: $left-value;
}
}
}
}
.valid-value {
@include reflexive-position("left", 12px);
}
.invalid-value {
@include reflexive-position("left", "12px");
}throw.parameter($message, $context, $names...); //=> String | any
throw-parameter($message, $context, $names...); //=> String | any// Load modules
@use "sass:map";
@use "sass:list";
@use "@alapnian-sass/throw";
@function from($pairs...) {
@if (list.length($pairs) < 1) {
@return throw.parameter("One or more key/value pairs are required", "from", "pairs");
}
$result: ();
@each $key, $value in $pairs {
$result: map.set($result, $key, $value);
}
@return $result;
}
// Valid
@debug from(01234567890);
@debug from(rgba(19, 7, 24, 1));
@debug from([24px 7px, 19px]);
@debug from((regular: 400, medium: 500, bold: 700));
// Invalid
@debug from();// Load modules
@use "sass:map";
@use "sass:list";
@use "@alapnian-sass/throw";
@function from($pairs...) {
@if (list.length($pairs) < 1) {
@return throw.parameter("One or more key/value pairs are required", "from", "pairs", $strict-mode: false, $default-value: null);
}
$result: ();
@each $key, $value in $pairs {
$result: map.set($result, $key, $value);
}
@return $result;
}
// Valid
@debug from(01234567890);
@debug from(rgba(19, 7, 24, 1));
@debug from([24px 7px, 19px]);
@debug from((regular: 400, medium: 500, bold: 700));
// Invalid
@debug from(); //=> null// Load modules
@use "sass:map";
@use "sass:list";
@use "@alapnian-sass/throw" with ($strict-mode: false);
@function from($pairs...) {
@if (list.length($pairs) < 1) {
@return throw.parameter("One or more key/value pairs are required", "from", "pairs", $default-value: null);
}
$result: ();
@each $key, $value in $pairs {
$result: map.set($result, $key, $value);
}
@return $result;
}
// Valid
@debug from(01234567890);
@debug from(rgba(19, 7, 24, 1));
@debug from([24px 7px, 19px]);
@debug from((regular: 400, medium: 500, bold: 700));
// Invalid
@debug from(); //=> nullthrow.parameter-type($context, $name, $value, $types...); //=> String | any
throw-parameter-type($context, $name, $value, $types...); //=> String | any// Load modules
@use "sass:meta";
@use "sass:math";
@use "sass:color";
@use "@alapnian-sass/throw";
@function is-dark($color) {
@if (meta.type-of($color) != "color") {
@return throw.parameter-type("is-dark", "color", $color, "color");
}
@return math.div(color.red($color) * 299 + color.green($color) * 587 + color.blue($color) * 114, 1000) < 128;
}
// Valid
@debug is-dark(#000); //=> true
@debug is-dark(#FFF); //=> false
// Invalid
@debug is-dark("#000");
@debug is-dark("rgb(0,0,0)");// Load modules
@use "sass:meta";
@use "sass:math";
@use "sass:color";
@use "@alapnian-sass/throw";
@function is-dark($color) {
@if (meta.type-of($color) != "color") {
@return throw.parameter-type("is-dark", "color", $color, "color", $strict-mode: false, $message: "Please use color value types such as `rgb()`, `hsl()`, or other color models.", $default-value: false);
}
@return math.div(color.red($color) * 299 + color.green($color) * 587 + color.blue($color) * 114, 1000) < 128;
}
// Valid
@debug is-dark(#000); //=> true
@debug is-dark(#FFF); //=> false
// Invalid
@debug is-dark("#000"); //=> false
@debug is-dark("rgb(0,0,0)"); //=> false// Load modules
@use "sass:meta";
@use "sass:math";
@use "sass:color";
@use "@alapnian-sass/throw" with ($strict-mode: false);
@function is-dark($color) {
@if (meta.type-of($color) != "color") {
@return throw.parameter-type("is-dark", "color", $color, "color", $message: "Please use color value types such as `rgb()`, `hsl()`, or other color models.", $default-value: false);
}
@return math.div(color.red($color) * 299 + color.green($color) * 587 + color.blue($color) * 114, 1000) < 128;
}
// Valid
@debug is-dark(#000); //=> true
@debug is-dark(#FFF); //=> false
// Invalid
@debug is-dark("#000"); //=> false
@debug is-dark("rgb(0,0,0)"); //=> false