chapter 2: initial samples

This commit is contained in:
Beth Griggs
2020-04-13 15:44:06 +01:00
parent 33f5fefdec
commit 583e10b98e
69 changed files with 198 additions and 1692 deletions
@@ -0,0 +1,12 @@
const net = require('net');
const HOSTNAME = 'localhost';
const PORT = 3000;
const socket = net.connect(PORT, HOSTNAME);
socket.write('World');
socket.on('data', (data) => {
console.log(data.toString());
});
@@ -0,0 +1,13 @@
const net = require('net');
const HOSTNAME = 'localhost';
const PORT = 3000;
net.createServer((socket) => {
console.log('Client connected.');
socket.on('data', name => {
socket.write(`Hello ${name}!`);
});
}).listen(PORT, HOSTNAME);
Binary file not shown.
@@ -0,0 +1,6 @@
'use strict'
const fs = require('fs');
const file = './file.txt';
fs.chmodSync("./file.txt", 0o664);
+9
View File
@@ -0,0 +1,9 @@
'use strict'
const fs = require('fs');
const file = './file.txt';
fs.chmodSync("./file.txt",
fs.constants.S_IRUSR | fs.constants.S_IWUSR |
fs.constants.S_IRGRP | fs.constants.S_IWGRP |
fs.constants.S_IROTH);
+9
View File
@@ -0,0 +1,9 @@
const fs = require('fs');
const file = process.argv[2];
function printMetadata(file) {
const fileStats = fs.statSync(file);
console.log(fileStats);
};
printMetadata(file);
+13
View File
@@ -0,0 +1,13 @@
const fs = require('fs');
const file = process.argv[2];
function printMetadata(file) {
try {
const fileStats = fs.statSync(file);
console.log(fileStats);
} catch (err) {
console.error("Error reading file path:", file);
}
};
printMetadata(file);
+12
View File
@@ -0,0 +1,12 @@
HELLO!
ls
Hello again;
gs
gsgds
gsdsdf
sddsf
sdfsd
sdda
dfsdf
dsad
sdasd
+13
View File
@@ -0,0 +1,13 @@
{
"name": "file-watching",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"moment": {
"version": "2.24.0",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
"integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
}
}
}
+16
View File
@@ -0,0 +1,16 @@
{
"name": "file-watching",
"version": "1.0.0",
"main": "watch.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"moment": "^2.24.0"
},
"devDependencies": {},
"description": ""
}
+6
View File
@@ -0,0 +1,6 @@
const fs = require('fs');
const file = './file.txt';
fs.watchFile(file, (current, previous) => {
return console.log(`${file} updated ${time}`)
});
+8
View File
@@ -0,0 +1,8 @@
const fs = require('fs');
const file = './file.txt';
const moment = require('moment');
fs.watch(file, (eventType, filename) => {
const time = moment().format('MMMM Do YYYY, h:mm:ss a');
return console.log(`${filename} updated ${time}`)
});
@@ -1,22 +0,0 @@
{
"name": "hsl-to-hex",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "David Mark Clements",
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/davidmarkclements/hsl-to-hex.git"
},
"bugs": {
"url": "https://github.com/davidmarkclements/hsl-to-hex/issues"
},
"homepage": "https://github.com/davidmarkclements/hsl-to-hex#readme",
"description": "",
"dependencies": {
"hsl-to-rgb-for-reals": "^1.1.0"
}
}
@@ -1,25 +0,0 @@
{
"name": "hsl-to-hex",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "David Mark Clements",
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/davidmarkclements/hsl-to-hex.git"
},
"bugs": {
"url": "https://github.com/davidmarkclements/hsl-to-hex/issues"
},
"homepage": "https://github.com/davidmarkclements/hsl-to-hex#readme",
"description": "",
"dependencies": {
"hsl-to-rgb-for-reals": "^1.1.0"
},
"devDependencies": {
"standard": "^6.0.8"
}
}
@@ -1,26 +0,0 @@
{
"name": "hsl-to-hex",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "npm run lint",
"lint": "standard"
},
"author": "David Mark Clements",
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/davidmarkclements/hsl-to-hex.git"
},
"bugs": {
"url": "https://github.com/davidmarkclements/hsl-to-hex/issues"
},
"homepage": "https://github.com/davidmarkclements/hsl-to-hex#readme",
"description": "",
"dependencies": {
"hsl-to-rgb-for-reals": "^1.1.0"
},
"devDependencies": {
"standard": "^6.0.8"
}
}
@@ -0,0 +1,4 @@
process.stdin.on('data', (data) => {
let name = data.toString().trim().toUpperCase();
process.stdout.write(`Hello ${name}!`);
});
@@ -0,0 +1,8 @@
process.stdin.on('data', data => {
let name = data.toString().trim().toUpperCase();
if (name != '') {
process.stdout.write(`Hello ${name}!`);
} else {
process.stderr.write('Input was empty.');
}
});
@@ -1,2 +0,0 @@
node_modules
*.log
@@ -1,6 +0,0 @@
var hsl = require('./')
var hue = 133
var saturation = 40
var luminosity = 60
var hex = hsl(hue, saturation, luminosity)
console.log(hex) // #70c282
@@ -1,66 +0,0 @@
// In our case, there's only one dependency
var toRgb = require('hsl-to-rgb-for-reals')
var debug = require('debug')('hsl-to-hex')
// Typically all dependencies should be declared at the top of the file.
// Now let's define an API for our module, we're taking hue, saturation and luminosity values and outputting a CSS compatible hex string.
// Hue is in degrees, between 0 and 359. Since degrees a cyclical in nature, we'll support numbers greater than 359 or less than 0 by "spinning" them around until they fall within the 0 to 359 range.
// Saturation and luminosity are both percentages, we'll represent these percentages with whole numbers between 0 and 100. For these numbers we'll need to enforce a maximum and a minimum, anything below 0 will become 0, anything above 100 will become 100.
// Let's write some utility functions to handle this logic:
function max (val, n) {
debug('ensuring ' + val + ' is no more than ' + n)
return (val > n) ? n : val
}
function min (val, n) {
debug('ensuring ' + val + ' is no less than ' + n)
return (val < n) ? n : val
}
function cycle (val) {
debug('resolving ' + val + ' within the 0-359 range')
// for safety:
val = max(val, 1e7)
val = min(val, -1e7)
// cycle value:
while (val < 0) { val += 360 }
while (val > 359) { val -= 360 }
return val
}
// Now for the main piece, the `hsl` function:
function hsl (hue, saturation, luminosity) {
debug('calculating hex for hue: ' + hue + ' saturation: ' + saturation + ' luminosity: ' + luminosity)
// resolve degrees to 0 - 359 range
hue = cycle(hue)
// enforce constraints
saturation = min(max(saturation, 100), 0)
luminosity = min(max(luminosity, 100), 0)
// convert to 0 to 1 range used by hsl-to-rgb-for-reals
saturation /= 100
luminosity /= 100
// let hsl-to-rgb-for-reals do the hard work
var rgb = toRgb(hue, saturation, luminosity)
// convert each value in the returned RGB array
// to a 2 character hex value, join the array into
// a string, prefixed with a hash
return '#' + rgb
.map(function (n) {
return (256 + n).toString(16).substr(-2)
})
.join('')
}
// In order to make our code into a bona fide module we have to export it:
module.exports = hsl
@@ -1,33 +0,0 @@
{
"name": "@davidmarkclements/hsl-to-hex",
"version": "1.0.1",
"main": "index.js",
"scripts": {
"check": "npm ls && npm test",
"test": "npm run lint && tap --cov test",
"lint": "standard",
"prepublish": "npm run check && ./publish-dep.sh"
},
"author": "David Mark Clements",
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/davidmarkclements/hsl-to-hex.git"
},
"bugs": {
"url": "https://github.com/davidmarkclements/hsl-to-hex/issues"
},
"homepage": "https://github.com/davidmarkclements/hsl-to-hex#readme",
"description": "Convert HSL colors to RGB colors in hex format.",
"dependencies": {
"debug": "^2.2.0",
"hsl-to-rgb-for-reals": "^1.1.0"
},
"devDependencies": {
"standard": "^6.0.8",
"tap": "^5.7.0"
},
"directories": {
"test": "test"
}
}
@@ -1,50 +0,0 @@
#! /bin/sh
# 400 - Missing hash and/or peer_id
# 403 - Not allowed
# 413 - Too big
# 200 - Ok!
if echo $npm_config_argv | grep -q "install"; then
echo "Running at install step, skipping"
else
if ipfs &>/dev/null; then
echo "## Publishing dependency"
mv node_modules .node_modules 2>/dev/null
HASH=$(ipfs add . -r | tail -n 1 | cut -d ' ' -f 2)
mv .node_modules node_modules 2>/dev/null
echo "Published as $HASH"
PEER=$(ipfs id --format '<id>')
if [ -f ~/.stay/nodes.json ]; then
cat ~/.stay/nodes.json | jq -rc '.[]' | while read host; do
address="$host/api/pin/add/$HASH/$PEER"
status=$(curl -X POST --silent $address)
case "$status" in
"400") echo "$host - Application Error: Missing the hash and/or peer_id"
;;
"403") echo "$host - You do not have access to pinning at this node"
;;
"413") echo "$host - The module was too big to pin!"
;;
"200") echo "$host - Pinned!"
;;
*) echo "Weird status code $status for $host"
;;
esac
done
else
echo "You don't have any saved nodes in ~/.stay/nodes.json, skip pinning"
fi
else
echo "## Could not publish dependency to IPFS, doing the good'ol 'fetch from npm registry' way"
echo "Either 'ipfs' doesn't exists in PATH or you haven't run 'ipfs daemon' before running the command"
exit 0
fi
fi
@@ -1,31 +0,0 @@
# hsl-to-hex
Convert HSL colors to RGB colors in hex format.
## Install
```sh
npm install --save @davidmarkclements/hsl-to-hex
```
## API
```
require('hsl-to-hex') => Function
hsl(hue, saturation, luminosity)` => String
```
## Example
```js
var hsl = require('hsl-to-hex')
var hue = 133
var saturation = 40
var luminosity = 60
var hex = hsl(hue, saturation, luminosity)
console.log(hex) // #70c282
```
## License
ISC
@@ -1,74 +0,0 @@
var hsl = require('../')
var test = require('tap').test
test('pure white', function (assert) {
var expected = '#ffffff'
var actual = hsl(0, 100, 100)
var it = 'max saturation and luminosity should return pure white'
assert.is(actual, expected, it)
assert.end()
})
test('medium gray', function (assert) {
var expected = '#808080'
var actual = hsl(0, 0, 50)
var it = '0% saturation, 50% luminosity should be medium gray'
assert.is(actual, expected, it)
assert.end()
})
test('hue - red', function (assert) {
var expected = '#ff0000'
var actual = hsl(0, 100, 50)
var it = '0deg should be red'
assert.is(actual, expected, it)
assert.end()
})
test('hue - blue', function (assert) {
var expected = '#0000ff'
var actual = hsl(240, 100, 50)
var it = '240deg should be blue'
assert.is(actual, expected, it)
assert.end()
})
test('hue - cyan', function (assert) {
var expected = '#00ffff'
var actual = hsl(180, 100, 50)
var it = '180deg should be cyan'
assert.is(actual, expected, it)
assert.end()
})
test('degree overflow', function (assert) {
var expected = hsl(1, 100, 50)
var actual = hsl(361, 100, 50)
var it = '361deg should be the same as 1deg'
assert.is(actual, expected, it)
assert.end()
})
test('degree underflow', function (assert) {
var expected = hsl(-1, 100, 50)
var actual = hsl(359, 100, 50)
var it = '-1deg should be the same as 359deg'
assert.is(actual, expected, it)
assert.end()
})
test('max constraint', function (assert) {
var expected = hsl(0, 101, 50)
var actual = hsl(0, 100, 50)
var it = '101% should be the same as 100%'
assert.is(actual, expected, it)
assert.end()
})
test('min constraint', function (assert) {
var expected = hsl(0, -1, 50)
var actual = hsl(0, 0, 50)
var it = '-1% should be the same as 0%'
assert.is(actual, expected, it)
assert.end()
})
@@ -1,11 +0,0 @@
{
"name": "stay-play",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "David Mark Clements",
"license": "MIT"
}
@@ -1,2 +0,0 @@
node_modules
*.log
@@ -1,6 +0,0 @@
var hsl = require('./')
var hue = 133
var saturation = 40
var luminosity = 60
var hex = hsl(hue, saturation, luminosity)
console.log(hex) // #70c282
@@ -1,59 +0,0 @@
// In our case, there's only one dependency
var toRgb = require('hsl-to-rgb-for-reals')
// Typically all dependencies should be declared at the top of the file.
// Now let's define an API for our module, we're taking hue, saturation and luminosity values and outputting a CSS compatible hex string.
// Hue is in degrees, between 0 and 359. Since degrees a cyclical in nature, we'll support numbers greater than 359 or less than 0 by "spinning" them around until they fall within the 0 to 359 range.
// Saturation and luminosity are both percentages, we'll represent these percentages with whole numbers between 0 and 100. For these numbers we'll need to enforce a maximum and a minimum, anything below 0 will become 0, anything above 100 will become 100.
// Let's write some utility functions to handle this logic:
function max (val, n) {
return (val > n) ? n : val
}
function min (val, n) {
return (val < n) ? n : val
}
function cycle (val) {
// for safety:
val = max(val, 1e7)
val = min(val, -1e7)
// cycle value:
while (val < 0) { val += 360 }
while (val > 359) { val -= 360 }
return val
}
// Now for the main piece, the `hsl` function:
function hsl (hue, saturation, luminosity) {
// resolve degrees to 0 - 359 range
hue = cycle(hue)
// enforce constraints
saturation = min(max(saturation, 100), 0)
luminosity = min(max(luminosity, 100), 0)
// convert to 0 to 1 range used by hsl-to-rgb-for-reals
saturation /= 100
luminosity /= 100
// let hsl-to-rgb-for-reals do the hard work
var rgb = toRgb(hue, saturation, luminosity)
// convert each value in the returned RGB array
// to a 2 character hex value, join the array into
// a string, prefixed with a hash
return '#' + rgb
.map(function (n) {
return (256 + n).toString(16).substr(-2)
})
.join('')
}
// In order to make our code into a bona fide module we have to export it:
module.exports = hsl
@@ -1,30 +0,0 @@
{
"name": "@davidmarkclements/hsl-to-hex",
"version": "1.0.1",
"main": "index.js",
"scripts": {
"test": "npm run lint && tap --cov test",
"lint": "standard"
},
"author": "David Mark Clements",
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/davidmarkclements/hsl-to-hex.git"
},
"bugs": {
"url": "https://github.com/davidmarkclements/hsl-to-hex/issues"
},
"homepage": "https://github.com/davidmarkclements/hsl-to-hex#readme",
"description": "Convert HSL colors to RGB colors in hex format.",
"dependencies": {
"hsl-to-rgb-for-reals": "^1.1.0"
},
"devDependencies": {
"standard": "^6.0.8",
"tap": "^5.7.0"
},
"directories": {
"test": "test"
}
}
@@ -1,32 +0,0 @@
# hsl-to-hex
Convert HSL colors to RGB colors in hex format.
## Install
```sh
npm install --save @davidmarkclements/hsl-to-hex
```
## API
```
require('hsl-to-hex') => Function
hsl(hue, saturation, luminosity)` => String
```
## Example
```js
var hsl = require('hsl-to-hex')
var hue = 133
var saturation = 40
var luminosity = 60
var hex = hsl(hue, saturation, luminosity)
console.log(hex) // #70c282
```
## License
ISC
@@ -1,74 +0,0 @@
var hsl = require('../')
var test = require('tap').test
test('pure white', function (assert) {
var expected = '#ffffff'
var actual = hsl(0, 100, 100)
var it = 'max saturation and luminosity should return pure white'
assert.is(actual, expected, it)
assert.end()
})
test('medium gray', function (assert) {
var expected = '#808080'
var actual = hsl(0, 0, 50)
var it = '0% saturation, 50% luminosity should be medium gray'
assert.is(actual, expected, it)
assert.end()
})
test('hue - red', function (assert) {
var expected = '#ff0000'
var actual = hsl(0, 100, 50)
var it = '0deg should be red'
assert.is(actual, expected, it)
assert.end()
})
test('hue - blue', function (assert) {
var expected = '#0000ff'
var actual = hsl(240, 100, 50)
var it = '240deg should be blue'
assert.is(actual, expected, it)
assert.end()
})
test('hue - cyan', function (assert) {
var expected = '#00ffff'
var actual = hsl(180, 100, 50)
var it = '180deg should be cyan'
assert.is(actual, expected, it)
assert.end()
})
test('degree overflow', function (assert) {
var expected = hsl(1, 100, 50)
var actual = hsl(361, 100, 50)
var it = '361deg should be the same as 1deg'
assert.is(actual, expected, it)
assert.end()
})
test('degree underflow', function (assert) {
var expected = hsl(-1, 100, 50)
var actual = hsl(359, 100, 50)
var it = '-1deg should be the same as 359deg'
assert.is(actual, expected, it)
assert.end()
})
test('max constraint', function (assert) {
var expected = hsl(0, 101, 50)
var actual = hsl(0, 100, 50)
var it = '101% should be the same as 100%'
assert.is(actual, expected, it)
assert.end()
})
test('min constraint', function (assert) {
var expected = hsl(0, -1, 50)
var actual = hsl(0, 0, 50)
var it = '-1% should be the same as 0%'
assert.is(actual, expected, it)
assert.end()
})
@@ -1,2 +0,0 @@
node_modules
*.log
@@ -1,6 +0,0 @@
var hsl = require('./')
var hue = 133
var saturation = 40
var luminosity = 60
var hex = hsl(hue, saturation, luminosity)
console.log(hex) // #70c282
@@ -1,66 +0,0 @@
// In our case, there's only one dependency
var toRgb = require('hsl-to-rgb-for-reals')
var debug = require('debug')('hsl-to-hex')
// Typically all dependencies should be declared at the top of the file.
// Now let's define an API for our module, we're taking hue, saturation and luminosity values and outputting a CSS compatible hex string.
// Hue is in degrees, between 0 and 359. Since degrees a cyclical in nature, we'll support numbers greater than 359 or less than 0 by "spinning" them around until they fall within the 0 to 359 range.
// Saturation and luminosity are both percentages, we'll represent these percentages with whole numbers between 0 and 100. For these numbers we'll need to enforce a maximum and a minimum, anything below 0 will become 0, anything above 100 will become 100.
// Let's write some utility functions to handle this logic:
function max (val, n) {
debug('ensuring ' + val + ' is no more than ' + n)
return (val > n) ? n : val
}
function min (val, n) {
debug('ensuring ' + val + ' is no less than ' + n)
return (val < n) ? n : val
}
function cycle (val) {
debug('resolving ' + val + ' within the 0-359 range')
// for safety:
val = max(val, 1e7)
val = min(val, -1e7)
// cycle value:
while (val < 0) { val += 360 }
while (val > 359) { val -= 360 }
return val
}
// Now for the main piece, the `hsl` function:
function hsl (hue, saturation, luminosity) {
debug('calculating hex for hue: ' + hue + ' saturation: ' + saturation + ' luminosity: ' + luminosity)
// resolve degrees to 0 - 359 range
hue = cycle(hue)
// enforce constraints
saturation = min(max(saturation, 100), 0)
luminosity = min(max(luminosity, 100), 0)
// convert to 0 to 1 range used by hsl-to-rgb-for-reals
saturation /= 100
luminosity /= 100
// let hsl-to-rgb-for-reals do the hard work
var rgb = toRgb(hue, saturation, luminosity)
// convert each value in the returned RGB array
// to a 2 character hex value, join the array into
// a string, prefixed with a hash
return '#' + rgb
.map(function (n) {
return (256 + n).toString(16).substr(-2)
})
.join('')
}
// In order to make our code into a bona fide module we have to export it:
module.exports = hsl
@@ -1,30 +0,0 @@
{
"name": "@davidmarkclements/hsl-to-hex",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "npm run lint && tap --cov test",
"lint": "standard"
},
"author": "David Mark Clements",
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/davidmarkclements/hsl-to-hex.git"
},
"bugs": {
"url": "https://github.com/davidmarkclements/hsl-to-hex/issues"
},
"homepage": "https://github.com/davidmarkclements/hsl-to-hex#readme",
"description": "Convert HSL colors to RGB colors in hex format.",
"dependencies": {
"hsl-to-rgb-for-reals": "^1.1.0"
},
"devDependencies": {
"standard": "^6.0.8",
"tap": "^5.7.0"
},
"directories": {
"test": "test"
}
}
@@ -1,31 +0,0 @@
# hsl-to-hex
Convert HSL colors to RGB colors in hex format.
## Install
```sh
npm install --save @davidmarkclements/hsl-to-hex
```
## API
```
require('hsl-to-hex') => Function
hsl(hue, saturation, luminosity)` => String
```
## Example
```js
var hsl = require('hsl-to-hex')
var hue = 133
var saturation = 40
var luminosity = 60
var hex = hsl(hue, saturation, luminosity)
console.log(hex) // #70c282
```
## License
ISC
@@ -1,74 +0,0 @@
var hsl = require('../')
var test = require('tap').test
test('pure white', function (assert) {
var expected = '#ffffff'
var actual = hsl(0, 100, 100)
var it = 'max saturation and luminosity should return pure white'
assert.is(actual, expected, it)
assert.end()
})
test('medium gray', function (assert) {
var expected = '#808080'
var actual = hsl(0, 0, 50)
var it = '0% saturation, 50% luminosity should be medium gray'
assert.is(actual, expected, it)
assert.end()
})
test('hue - red', function (assert) {
var expected = '#ff0000'
var actual = hsl(0, 100, 50)
var it = '0deg should be red'
assert.is(actual, expected, it)
assert.end()
})
test('hue - blue', function (assert) {
var expected = '#0000ff'
var actual = hsl(240, 100, 50)
var it = '240deg should be blue'
assert.is(actual, expected, it)
assert.end()
})
test('hue - cyan', function (assert) {
var expected = '#00ffff'
var actual = hsl(180, 100, 50)
var it = '180deg should be cyan'
assert.is(actual, expected, it)
assert.end()
})
test('degree overflow', function (assert) {
var expected = hsl(1, 100, 50)
var actual = hsl(361, 100, 50)
var it = '361deg should be the same as 1deg'
assert.is(actual, expected, it)
assert.end()
})
test('degree underflow', function (assert) {
var expected = hsl(-1, 100, 50)
var actual = hsl(359, 100, 50)
var it = '-1deg should be the same as 359deg'
assert.is(actual, expected, it)
assert.end()
})
test('max constraint', function (assert) {
var expected = hsl(0, 101, 50)
var actual = hsl(0, 100, 50)
var it = '101% should be the same as 100%'
assert.is(actual, expected, it)
assert.end()
})
test('min constraint', function (assert) {
var expected = hsl(0, -1, 50)
var actual = hsl(0, 0, 50)
var it = '-1% should be the same as 0%'
assert.is(actual, expected, it)
assert.end()
})
@@ -1,2 +0,0 @@
node_modules
*.log
@@ -1,6 +0,0 @@
var hsl = require('./')
var hue = 133
var saturation = 40
var luminosity = 60
var hex = hsl(hue, saturation, luminosity)
console.log(hex) // #70c282
@@ -1,66 +0,0 @@
// In our case, there's only one dependency
var toRgb = require('hsl-to-rgb-for-reals')
var debug = require('debug')('hsl-to-hex')
// Typically all dependencies should be declared at the top of the file.
// Now let's define an API for our module, we're taking hue, saturation and luminosity values and outputting a CSS compatible hex string.
// Hue is in degrees, between 0 and 359. Since degrees a cyclical in nature, we'll support numbers greater than 359 or less than 0 by "spinning" them around until they fall within the 0 to 359 range.
// Saturation and luminosity are both percentages, we'll represent these percentages with whole numbers between 0 and 100. For these numbers we'll need to enforce a maximum and a minimum, anything below 0 will become 0, anything above 100 will become 100.
// Let's write some utility functions to handle this logic:
function max (val, n) {
debug('ensuring ' + val + ' is no more than ' + n)
return (val > n) ? n : val
}
function min (val, n) {
debug('ensuring ' + val + ' is no less than ' + n)
return (val < n) ? n : val
}
function cycle (val) {
debug('resolving ' + val + ' within the 0-359 range')
// for safety:
val = max(val, 1e7)
val = min(val, -1e7)
// cycle value:
while (val < 0) { val += 360 }
while (val > 359) { val -= 360 }
return val
}
// Now for the main piece, the `hsl` function:
function hsl (hue, saturation, luminosity) {
debug('calculating hex for hue: ' + hue + ' saturation: ' + saturation + ' luminosity: ' + luminosity)
// resolve degrees to 0 - 359 range
hue = cycle(hue)
// enforce constraints
saturation = min(max(saturation, 100), 0)
luminosity = min(max(luminosity, 100), 0)
// convert to 0 to 1 range used by hsl-to-rgb-for-reals
saturation /= 100
luminosity /= 100
// let hsl-to-rgb-for-reals do the hard work
var rgb = toRgb(hue, saturation, luminosity)
// convert each value in the returned RGB array
// to a 2 character hex value, join the array into
// a string, prefixed with a hash
return '#' + rgb
.map(function (n) {
return (256 + n).toString(16).substr(-2)
})
.join('')
}
// In order to make our code into a bona fide module we have to export it:
module.exports = hsl
@@ -1,32 +0,0 @@
{
"name": "@davidmarkclements/hsl-to-hex",
"version": "1.0.1",
"main": "index.js",
"scripts": {
"prepublish": "npm ls && npm test",
"test": "npm run lint && tap --cov test",
"lint": "standard"
},
"author": "David Mark Clements",
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/davidmarkclements/hsl-to-hex.git"
},
"bugs": {
"url": "https://github.com/davidmarkclements/hsl-to-hex/issues"
},
"homepage": "https://github.com/davidmarkclements/hsl-to-hex#readme",
"description": "Convert HSL colors to RGB colors in hex format.",
"dependencies": {
"debug": "^2.2.0",
"hsl-to-rgb-for-reals": "^1.1.0"
},
"devDependencies": {
"standard": "^6.0.8",
"tap": "^5.7.0"
},
"directories": {
"test": "test"
}
}
@@ -1,31 +0,0 @@
# hsl-to-hex
Convert HSL colors to RGB colors in hex format.
## Install
```sh
npm install --save @davidmarkclements/hsl-to-hex
```
## API
```
require('hsl-to-hex') => Function
hsl(hue, saturation, luminosity)` => String
```
## Example
```js
var hsl = require('hsl-to-hex')
var hue = 133
var saturation = 40
var luminosity = 60
var hex = hsl(hue, saturation, luminosity)
console.log(hex) // #70c282
```
## License
ISC
@@ -1,74 +0,0 @@
var hsl = require('../')
var test = require('tap').test
test('pure white', function (assert) {
var expected = '#ffffff'
var actual = hsl(0, 100, 100)
var it = 'max saturation and luminosity should return pure white'
assert.is(actual, expected, it)
assert.end()
})
test('medium gray', function (assert) {
var expected = '#808080'
var actual = hsl(0, 0, 50)
var it = '0% saturation, 50% luminosity should be medium gray'
assert.is(actual, expected, it)
assert.end()
})
test('hue - red', function (assert) {
var expected = '#ff0000'
var actual = hsl(0, 100, 50)
var it = '0deg should be red'
assert.is(actual, expected, it)
assert.end()
})
test('hue - blue', function (assert) {
var expected = '#0000ff'
var actual = hsl(240, 100, 50)
var it = '240deg should be blue'
assert.is(actual, expected, it)
assert.end()
})
test('hue - cyan', function (assert) {
var expected = '#00ffff'
var actual = hsl(180, 100, 50)
var it = '180deg should be cyan'
assert.is(actual, expected, it)
assert.end()
})
test('degree overflow', function (assert) {
var expected = hsl(1, 100, 50)
var actual = hsl(361, 100, 50)
var it = '361deg should be the same as 1deg'
assert.is(actual, expected, it)
assert.end()
})
test('degree underflow', function (assert) {
var expected = hsl(-1, 100, 50)
var actual = hsl(359, 100, 50)
var it = '-1deg should be the same as 359deg'
assert.is(actual, expected, it)
assert.end()
})
test('max constraint', function (assert) {
var expected = hsl(0, 101, 50)
var actual = hsl(0, 100, 50)
var it = '101% should be the same as 100%'
assert.is(actual, expected, it)
assert.end()
})
test('min constraint', function (assert) {
var expected = hsl(0, -1, 50)
var actual = hsl(0, 0, 50)
var it = '-1% should be the same as 0%'
assert.is(actual, expected, it)
assert.end()
})
@@ -1,19 +0,0 @@
{
"name": "hsl-to-hex",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "David Mark Clements",
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/davidmarkclements/hsl-to-hex.git"
},
"bugs": {
"url": "https://github.com/davidmarkclements/hsl-to-hex/issues"
},
"homepage": "https://github.com/davidmarkclements/hsl-to-hex#readme",
"description": ""
}
@@ -1,2 +0,0 @@
node_modules
*.log
@@ -1,19 +0,0 @@
{
"name": "hsl-to-hex",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "David Mark Clements",
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/davidmarkclements/hsl-to-hex.git"
},
"bugs": {
"url": "https://github.com/davidmarkclements/hsl-to-hex/issues"
},
"homepage": "https://github.com/davidmarkclements/hsl-to-hex#readme",
"description": ""
}
@@ -1,2 +0,0 @@
node_modules
*.log
@@ -1,6 +0,0 @@
var hsl = require('./')
var hue = 133
var saturation = 40
var luminosity = 60
var hex = hsl(hue, saturation, luminosity)
console.log(hex) // #70c282
@@ -1,66 +0,0 @@
// In our case, there's only one dependency
var toRgb = require('hsl-to-rgb-for-reals')
var debug = require('debug')('hsl-to-hex')
// Typically all dependencies should be declared at the top of the file.
// Now let's define an API for our module, we're taking hue, saturation and luminosity values and outputting a CSS compatible hex string.
// Hue is in degrees, between 0 and 359. Since degrees a cyclical in nature, we'll support numbers greater than 359 or less than 0 by "spinning" them around until they fall within the 0 to 359 range.
// Saturation and luminosity are both percentages, we'll represent these percentages with whole numbers between 0 and 100. For these numbers we'll need to enforce a maximum and a minimum, anything below 0 will become 0, anything above 100 will become 100.
// Let's write some utility functions to handle this logic:
function max (val, n) {
debug('ensuring ' + val + ' is no more than ' + n)
return (val > n) ? n : val
}
function min (val, n) {
debug('ensuring ' + val + ' is no less than ' + n)
return (val < n) ? n : val
}
function cycle (val) {
debug('resolving ' + val + ' within the 0-359 range')
// for safety:
val = max(val, 1e7)
val = min(val, -1e7)
// cycle value:
while (val < 0) { val += 360 }
while (val > 359) { val -= 360 }
return val
}
// Now for the main piece, the `hsl` function:
function hsl (hue, saturation, luminosity) {
debug('calculating hex for hue: ' + hue + ' saturation: ' + saturation + ' luminosity: ' + luminosity)
// resolve degrees to 0 - 359 range
hue = cycle(hue)
// enforce constraints
saturation = min(max(saturation, 100), 0)
luminosity = min(max(luminosity, 100), 0)
// convert to 0 to 1 range used by hsl-to-rgb-for-reals
saturation /= 100
luminosity /= 100
// let hsl-to-rgb-for-reals do the hard work
var rgb = toRgb(hue, saturation, luminosity)
// convert each value in the returned RGB array
// to a 2 character hex value, join the array into
// a string, prefixed with a hash
return '#' + rgb
.map(function (n) {
return (256 + n).toString(16).substr(-2)
})
.join('')
}
// In order to make our code into a bona fide module we have to export it:
module.exports = hsl
@@ -1,33 +0,0 @@
{
"name": "@ncb/hsl-to-hex",
"version": "1.0.1",
"main": "index.js",
"scripts": {
"check": "npm ls && npm test",
"test": "npm run lint && tap --cov test",
"lint": "standard",
"prepublish": "npm run check && ./publish-dep.sh"
},
"author": "David Mark Clements",
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/davidmarkclements/hsl-to-hex.git"
},
"bugs": {
"url": "https://github.com/davidmarkclements/hsl-to-hex/issues"
},
"homepage": "https://github.com/davidmarkclements/hsl-to-hex#readme",
"description": "Convert HSL colors to RGB colors in hex format.",
"dependencies": {
"debug": "^2.2.0",
"hsl-to-rgb-for-reals": "^1.1.0"
},
"devDependencies": {
"standard": "^6.0.8",
"tap": "^5.7.0"
},
"directories": {
"test": "test"
}
}
@@ -1,50 +0,0 @@
#! /bin/sh
# 400 - Missing hash and/or peer_id
# 403 - Not allowed
# 413 - Too big
# 200 - Ok!
if echo $npm_config_argv | grep -q "install"; then
echo "Running at install step, skipping"
else
if ipfs &>/dev/null; then
echo "## Publishing dependency"
mv node_modules .node_modules 2>/dev/null
HASH=$(ipfs add . -r | tail -n 1 | cut -d ' ' -f 2)
mv .node_modules node_modules 2>/dev/null
echo "Published as $HASH"
PEER=$(ipfs id --format '<id>')
if [ -f ~/.stay/nodes.json ]; then
cat ~/.stay/nodes.json | jq -rc '.[]' | while read host; do
address="$host/api/pin/add/$HASH/$PEER"
status=$(curl -X POST --silent $address)
case "$status" in
"400") echo "$host - Application Error: Missing the hash and/or peer_id"
;;
"403") echo "$host - You do not have access to pinning at this node"
;;
"413") echo "$host - The module was too big to pin!"
;;
"200") echo "$host - Pinned!"
;;
*) echo "Weird status code $status for $host"
;;
esac
done
else
echo "You don't have any saved nodes in ~/.stay/nodes.json, skip pinning"
fi
else
echo "## Could not publish dependency to IPFS, doing the good'ol 'fetch from npm registry' way"
echo "Either 'ipfs' doesn't exists in PATH or you haven't run 'ipfs daemon' before running the command"
exit 0
fi
fi
@@ -1,31 +0,0 @@
# hsl-to-hex
Convert HSL colors to RGB colors in hex format.
## Install
```sh
npm install --save @davidmarkclements/hsl-to-hex
```
## API
```
require('hsl-to-hex') => Function
hsl(hue, saturation, luminosity)` => String
```
## Example
```js
var hsl = require('hsl-to-hex')
var hue = 133
var saturation = 40
var luminosity = 60
var hex = hsl(hue, saturation, luminosity)
console.log(hex) // #70c282
```
## License
ISC
@@ -1,74 +0,0 @@
var hsl = require('../')
var test = require('tap').test
test('pure white', function (assert) {
var expected = '#ffffff'
var actual = hsl(0, 100, 100)
var it = 'max saturation and luminosity should return pure white'
assert.is(actual, expected, it)
assert.end()
})
test('medium gray', function (assert) {
var expected = '#808080'
var actual = hsl(0, 0, 50)
var it = '0% saturation, 50% luminosity should be medium gray'
assert.is(actual, expected, it)
assert.end()
})
test('hue - red', function (assert) {
var expected = '#ff0000'
var actual = hsl(0, 100, 50)
var it = '0deg should be red'
assert.is(actual, expected, it)
assert.end()
})
test('hue - blue', function (assert) {
var expected = '#0000ff'
var actual = hsl(240, 100, 50)
var it = '240deg should be blue'
assert.is(actual, expected, it)
assert.end()
})
test('hue - cyan', function (assert) {
var expected = '#00ffff'
var actual = hsl(180, 100, 50)
var it = '180deg should be cyan'
assert.is(actual, expected, it)
assert.end()
})
test('degree overflow', function (assert) {
var expected = hsl(1, 100, 50)
var actual = hsl(361, 100, 50)
var it = '361deg should be the same as 1deg'
assert.is(actual, expected, it)
assert.end()
})
test('degree underflow', function (assert) {
var expected = hsl(-1, 100, 50)
var actual = hsl(359, 100, 50)
var it = '-1deg should be the same as 359deg'
assert.is(actual, expected, it)
assert.end()
})
test('max constraint', function (assert) {
var expected = hsl(0, 101, 50)
var actual = hsl(0, 100, 50)
var it = '101% should be the same as 100%'
assert.is(actual, expected, it)
assert.end()
})
test('min constraint', function (assert) {
var expected = hsl(0, -1, 50)
var actual = hsl(0, 0, 50)
var it = '-1% should be the same as 0%'
assert.is(actual, expected, it)
assert.end()
})
Binary file not shown.
@@ -0,0 +1,5 @@
first(args, function () {
second(args, function () {
third(args, function () {})
})
})
+1
View File
@@ -0,0 +1 @@
HELLO WORLD!
@@ -0,0 +1,16 @@
const fs = require('fs');
const path = require('path')
const filepath = path.join(process.cwd(), 'hello.txt');
fs.readFile(filepath, 'utf8', function (err, contents) {
if (err) {
return console.log(err);
}
console.log("File Contents:", contents);
contents = contents.toUpperCase();
fs.writeFile(filepath, contents, function (err) {
if (err) throw err;
console.log("File updated.")
});
});
@@ -0,0 +1,20 @@
const fs = require('fs');
const path = require('path')
const filepath = path.join(process.cwd(), 'hello.txt');
fs.readFile(filepath, 'utf8', function (err, contents) {
if (err) {
return console.log(err);
}
console.log("File Contents:", contents);
contents = contents.toUpperCase();
updateFile(filepath, contents);
});
function updateFile(filepath, contents) {
fs.writeFile(filepath, contents, function (err) {
if (err) throw err;
console.log("File updated.");
});
};
@@ -0,0 +1,15 @@
const fs = require("fs").promises;
const path = require('path');
const filepath = path.join(process.cwd(), 'hello.txt');
async function run() {
try {
const contents = await fs.readFile(filepath, 'utf8');
console.log("File Contents:", contents);
} catch (error) {
console.error(error);
}
};
run();
@@ -0,0 +1,12 @@
const fs = require('fs');
const path = require('path');
const filepath = path.join(process.cwd(), 'hello.txt');
let contents = fs.readFileSync(filepath, 'utf8');
console.log("File Contents:", contents);
contents = contents.toString().toUpperCase();
fs.writeFileSync(filepath, contents);
console.log("File updated.");
@@ -1,59 +0,0 @@
// In our case, there's only one dependency
var toRgb = require('hsl-to-rgb-for-reals')
// Typically all dependencies should be declared at the top of the file.
// Now let's define an API for our module, we're taking hue, saturation and luminosity values and outputting a CSS compatible hex string.
// Hue is in degrees, between 0 and 359. Since degrees a cyclical in nature, we'll support numbers greater than 359 or less than 0 by "spinning" them around until they fall within the 0 to 359 range.
// Saturation and luminosity are both percentages, we'll represent these percentages with whole numbers between 0 and 100. For these numbers we'll need to enforce a maximum and a minimum, anything below 0 will become 0, anything above 100 will become 100.
// Let's write some utility functions to handle this logic:
function max (val, n) {
return (val > n) ? n : val
}
function min (val, n) {
return (val < n) ? n : val
}
function cycle (val) {
// for safety:
val = max(val, 1e7)
val = min(val, -1e7)
// cycle value:
while (val < 0) { val += 360 }
while (val > 359) { val -= 360 }
return val
}
// Now for the main piece, the `hsl` function:
function hsl (hue, saturation, luminosity) {
// resolve degrees to 0 - 359 range
hue = cycle(hue)
// enforce constraints
saturation = min(max(saturation, 100), 0)
luminosity = min(max(luminosity, 100), 0)
// convert to 0 to 1 range used by hsl-to-rgb-for-reals
saturation /= 100
luminosity /= 100
// let hsl-to-rgb-for-reals do the hard work
var rgb = toRgb(hue, saturation, luminosity)
// convert each value in the returned RGB array
// to a 2 character hex value, join the array into
// a string, prefixed with a hash
return '#' + rgb
.map(function (n) {
return (256 + n).toString(16).substr(-2)
})
.join('')
}
// In order to make our code into a bona fide module we have to export it:
module.exports = hsl
@@ -1,27 +0,0 @@
{
"name": "hsl-to-hex",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "npm run lint && tap --cov test",
"lint": "standard"
},
"author": "David Mark Clements",
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/davidmarkclements/hsl-to-hex.git"
},
"bugs": {
"url": "https://github.com/davidmarkclements/hsl-to-hex/issues"
},
"homepage": "https://github.com/davidmarkclements/hsl-to-hex#readme",
"description": "",
"dependencies": {
"hsl-to-rgb-for-reals": "^1.1.0"
},
"devDependencies": {
"standard": "^6.0.8",
"tap": "^5.7.0"
}
}
@@ -1,74 +0,0 @@
var hsl = require('../')
var test = require('tap').test
test('pure white', function (assert) {
var expected = '#ffffff'
var actual = hsl(0, 100, 100)
var it = 'max saturation and luminosity should return pure white'
assert.is(actual, expected, it)
assert.end()
})
test('medium gray', function (assert) {
var expected = '#808080'
var actual = hsl(0, 0, 50)
var it = '0% saturation, 50% luminosity should be medium gray'
assert.is(actual, expected, it)
assert.end()
})
test('hue - red', function (assert) {
var expected = '#ff0000'
var actual = hsl(0, 100, 50)
var it = '0deg should be red'
assert.is(actual, expected, it)
assert.end()
})
test('hue - blue', function (assert) {
var expected = '#0000ff'
var actual = hsl(240, 100, 50)
var it = '240deg should be blue'
assert.is(actual, expected, it)
assert.end()
})
test('hue - cyan', function (assert) {
var expected = '#00ffff'
var actual = hsl(180, 100, 50)
var it = '180deg should be cyan'
assert.is(actual, expected, it)
assert.end()
})
test('degree overflow', function (assert) {
var expected = hsl(1, 100, 50)
var actual = hsl(361, 100, 50)
var it = '361deg should be the same as 1deg'
assert.is(actual, expected, it)
assert.end()
})
test('degree underflow', function (assert) {
var expected = hsl(-1, 100, 50)
var actual = hsl(359, 100, 50)
var it = '-1deg should be the same as 359deg'
assert.is(actual, expected, it)
assert.end()
})
test('max constraint', function (assert) {
var expected = hsl(0, 101, 50)
var actual = hsl(0, 100, 50)
var it = '101% should be the same as 100%'
assert.is(actual, expected, it)
assert.end()
})
test('min constraint', function (assert) {
var expected = hsl(0, -1, 50)
var actual = hsl(0, 0, 50)
var it = '-1% should be the same as 0%'
assert.is(actual, expected, it)
assert.end()
})
@@ -1,59 +0,0 @@
// In our case, there's only one dependency
var toRgb = require('hsl-to-rgb-for-reals')
// Typically all dependencies should be declared at the top of the file.
// Now let's define an API for our module, we're taking hue, saturation and luminosity values and outputting a CSS compatible hex string.
// Hue is in degrees, between 0 and 359. Since degrees a cyclical in nature, we'll support numbers greater than 359 or less than 0 by "spinning" them around until they fall within the 0 to 359 range.
// Saturation and luminosity are both percentages, we'll represent these percentages with whole numbers between 0 and 100. For these numbers we'll need to enforce a maximum and a minimum, anything below 0 will become 0, anything above 100 will become 100.
// Let's write some utility functions to handle this logic:
function max (val, n) {
return (val > n) ? n : val
}
function min (val, n) {
return (val < n) ? n : val
}
function cycle (val) {
// for safety:
val = max(val, 1e7)
val = min(val, -1e7)
// cycle value:
while (val < 0) { val += 360 }
while (val > 359) { val -= 360 }
return val
}
// Now for the main piece, the `hsl` function:
function hsl (hue, saturation, luminosity) {
// resolve degrees to 0 - 359 range
hue = cycle(hue)
// enforce constraints
saturation = min(max(saturation, 100), 0)
luminosity = min(max(luminosity, 100), 0)
// convert to 0 to 1 range used by hsl-to-rgb-for-reals
saturation /= 100
luminosity /= 100
// let hsl-to-rgb-for-reals do the hard work
var rgb = toRgb(hue, saturation, luminosity)
// convert each value in the returned RGB array
// to a 2 character hex value, join the array into
// a string, prefixed with a hash
return '#' + rgb
.map(function (n) {
return (256 + n).toString(16).substr(-2)
})
.join('')
}
// In order to make our code into a bona fide module we have to export it:
module.exports = hsl
@@ -1,26 +0,0 @@
{
"name": "hsl-to-hex",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "npm run lint",
"lint": "standard"
},
"author": "David Mark Clements",
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/davidmarkclements/hsl-to-hex.git"
},
"bugs": {
"url": "https://github.com/davidmarkclements/hsl-to-hex/issues"
},
"homepage": "https://github.com/davidmarkclements/hsl-to-hex#readme",
"description": "",
"dependencies": {
"hsl-to-rgb-for-reals": "^1.1.0"
},
"devDependencies": {
"standard": "^6.0.8"
}
}
@@ -1,59 +0,0 @@
// In our case, there's only one dependency
var toRgb = require('hsl-to-rgb-for-reals')
// Typically all dependencies should be declared at the top of the file.
// Now let's define an API for our module, we're taking hue, saturation and luminosity values and outputting a CSS compatible hex string.
// Hue is in degrees, between 0 and 359. Since degrees a cyclical in nature, we'll support numbers greater than 359 or less than 0 by "spinning" them around until they fall within the 0 to 359 range.
// Saturation and luminosity are both percentages, we'll represent these percentages with whole numbers between 0 and 100. For these numbers we'll need to enforce a maximum and a minimum, anything below 0 will become 0, anything above 100 will become 100.
// Let's write some utility functions to handle this logic:
function max (val, n) {
return (val > n) ? n : val
}
function min (val, n) {
return (val < n) ? n : val
}
function cycle (val) {
// for safety:
val = max(val, 1e7)
val = min(val, -1e7)
// cycle value:
while (val < 0) { val += 360 }
while (val > 359) { val -= 360 }
return val
}
// Now for the main piece, the `hsl` function:
function hsl (hue, saturation, luminosity) {
// resolve degrees to 0 - 359 range
hue = cycle(hue)
// enforce constraints
saturation = min(max(saturation, 100), 0)
luminosity = min(max(luminosity, 100), 0)
// convert to 0 to 1 range used by hsl-to-rgb-for-reals
saturation /= 100
luminosity /= 100
// let hsl-to-rgb-for-reals do the hard work
var rgb = toRgb(hue, saturation, luminosity)
// convert each value in the returned RGB array
// to a 2 character hex value, join the array into
// a string, prefixed with a hash
return '#' + rgb
.map(function (n) {
return (256 + n).toString(16).substr(-2)
})
.join('')
}
// In order to make our code into a bona fide module we have to export it:
module.exports = hsl
@@ -1,27 +0,0 @@
{
"name": "hsl-to-hex",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "npm run lint && tap --node-arg='--harmony-destructuring' --cov test",
"lint": "standard"
},
"author": "David Mark Clements",
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/davidmarkclements/hsl-to-hex.git"
},
"bugs": {
"url": "https://github.com/davidmarkclements/hsl-to-hex/issues"
},
"homepage": "https://github.com/davidmarkclements/hsl-to-hex#readme",
"description": "",
"dependencies": {
"hsl-to-rgb-for-reals": "^1.1.0"
},
"devDependencies": {
"standard": "^6.0.8",
"tap": "^5.7.0"
}
}
@@ -1,90 +0,0 @@
const hsl = require('../')
const {test} = require('tap')
test('pure white', ({is, end}) => {
const expected = '#ffffff'
const actual = hsl(0, 100, 100)
const it = `
max saturation and luminosity should return pure white
`
is(actual, expected, it)
end()
})
test('medium gray', ({is, end}) => {
const expected = '#808080'
const actual = hsl(0, 0, 50)
const it = `
0% saturation, 50% luminosity should be medium gray
`
is(actual, expected, it)
end()
})
test('hue', ({is, end}) => {
{
const expected = '#ff0000'
const actual = hsl(0, 100, 50)
const it = `
0deg should be red
`
is(actual, expected, it)
}
{
const expected = '#0000ff'
const actual = hsl(240, 100, 50)
const it = `
240deg should be blue
`
is(actual, expected, it)
}
{
const expected = '#00ffff'
const actual = hsl(180, 100, 50)
const it = `
180deg should be cyan
`
is(actual, expected, it)
}
end()
})
test('degree overflow/underflow', ({is, end}) => {
{
const expected = hsl(1, 100, 50)
const actual = hsl(361, 100, 50)
const it = `
361deg should be the same as 1deg
`
is(actual, expected, it)
}
{
const expected = hsl(-1, 100, 50)
const actual = hsl(359, 100, 50)
const it = `
-1deg should be the same as 359deg
`
is(actual, expected, it)
}
end()
})
test('max constraint', ({is, end}) => {
{
const expected = hsl(0, 101, 50)
const actual = hsl(0, 100, 50)
const it = `
101% should be the same as 100%
`
is(actual, expected, it)
}
{
const expected = hsl(0, -1, 50)
const actual = hsl(0, 0, 50)
const it = `
-1% should be the same as 0%
`
is(actual, expected, it)
}
end()
})