Skip to content

Commit 1a3b3bf

Browse files
author
Burkes
committed
Initial Commit
0 parents  commit 1a3b3bf

16 files changed

+2569
-0
lines changed

.babelrc

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"presets": [
3+
"babel-preset-env"
4+
]
5+
}

.editorconfig

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
root = true
2+
3+
[*]
4+
indent_style = space
5+
indent_size = 2
6+
charset = utf-8
7+
end_of_line = lf
8+
trim_trailing_whitespace = true
9+
insert_final_newline = true

.eslintignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/dist/**
2+
/bin/**

.eslintrc.json

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"parser": "babel-eslint",
3+
"extends": "eslint:recommended",
4+
"env": {
5+
"es6": true,
6+
"browser": true,
7+
"node": true,
8+
"mocha": true
9+
},
10+
"rules": {
11+
"no-console": 0
12+
}
13+
}

.gitignore

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
8+
# Runtime data
9+
pids
10+
*.pid
11+
*.seed
12+
*.pid.lock
13+
14+
# Directory for instrumented libs generated by jscoverage/JSCover
15+
lib-cov
16+
17+
# Coverage directory used by tools like istanbul
18+
coverage
19+
20+
# nyc test coverage
21+
.nyc_output
22+
23+
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24+
.grunt
25+
26+
# Bower dependency directory (https://bower.io/)
27+
bower_components
28+
29+
# node-waf configuration
30+
.lock-wscript
31+
32+
# Compiled binary addons (https://nodejs.org/api/addons.html)
33+
build/Release
34+
35+
# Dependency directories
36+
node_modules/
37+
jspm_packages/
38+
39+
# TypeScript v1 declaration files
40+
typings/
41+
42+
# Optional npm cache directory
43+
.npm
44+
45+
# Optional eslint cache
46+
.eslintcache
47+
48+
# Optional REPL history
49+
.node_repl_history
50+
51+
# Output of 'npm pack'
52+
*.tgz
53+
54+
# Yarn Integrity file
55+
.yarn-integrity
56+
57+
# dotenv environment variables file
58+
.env
59+
60+
# next.js build output
61+
.next
62+
63+
# build output does not go to the repository
64+
dist/
65+
66+
# lockfiles
67+
package-lock.json
68+
yarn.lock

.travis.yml

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
language: node_js
2+
script:
3+
- "npm test"
4+
node_js:
5+
- "stable"
6+
- "8"
7+
- "6"

LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2018 @Burkes
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# [gfynonce](https://burkes.github.io/gfynonce) - [![license](https://img.shields.io/github/license/Burkes/gfynonce.svg)](https://github.com/Burkes/gfynonce/blob/master/LICENSE) [![npm](https://img.shields.io/npm/v/gfynonce.svg)](https://npm.im/gfynonce) [![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/gfynonce.svg)](https://unpkg.com/gfynonce) [![Travis](https://img.shields.io/travis/Burkes/gfynonce.svg)](https://travis-ci.org/Burkes/gfynonce) ![node](https://img.shields.io/node/v/gfynonce.svg)
2+
3+
gfynonce is a "small" library that generates unique word compositions in the "adjective, adjective, animal" format that both Gfycat and Twitch uses. It tries it's best to generate nonces without repeating the same adjective and allows _some_ customization, such as providing the number of adjectives desired or the separator character.
4+
5+
## Installation and Usage
6+
7+
For your convenience, it is available in 3 forms, so choose whatever will work best for you:
8+
9+
### Command Line
10+
Installing gfynonce for the command line is as simple as running the following command:
11+
```
12+
npm i -g gfynonce
13+
```
14+
15+
Then, simply run `gfynonce` and it will generate a nonce with the default settings.
16+
```
17+
$ gfynonce
18+
FatSmallAmericanBulldog
19+
```
20+
Additionally, you can provide some arguments to customize it, such as `--adjectives <number>` and `--separator <char>`.
21+
```
22+
$ gfynonce --adjectives 5 --separator .
23+
Big.Small.Fancy.Elegant.Shy.Dipper
24+
```
25+
26+
### Node
27+
The installation procedure is almost the same, simply add it to your current project:
28+
```
29+
npm i --save gfynonce
30+
```
31+
32+
And you should be good to import it!
33+
```js
34+
const gfynonce = require('gfynonce');
35+
36+
console.log(gfynonce({ adjectives: 1, separator: '_' }));
37+
// Tiny_Hog
38+
```
39+
40+
### Browser
41+
Unpkg kindly provides a fast CDN for NPM packages which you can use to access the UMD script.
42+
```html
43+
<script src="https://unpkg.com/gfynonce@latest/dist/gfynonce.min.js"></script>
44+
<script>
45+
console.log(gfynonce());
46+
// HugeSmallArthropods
47+
</script>
48+
```

bin/index.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/usr/bin/env node
2+
3+
// aiming for older node version compatibility
4+
5+
var gfynonce = require('../');
6+
var minimist = require('minimist');
7+
8+
var argv = minimist(process.argv.slice(2));
9+
10+
var options = Object.assign({}, { separator: '', adjectives: 2 }, argv);
11+
12+
process.stdout.write(gfynonce(options));

0 commit comments

Comments
 (0)