Skip to content

Commit adf3246

Browse files
authored
feat(number-parsing): parse numeric-like values as numbers
feat(number-parsing): parse numeric-like values as numbers The **parse-numeric** module provides two features: 1. `parseNumeric` is a function that converts numeric strings into Number types. 2. `parseNumeric.isNumeric` evaluates a value and determines whether the value can be converted to a Number type. **parse-numeric** differs from similar modules in how it evaluates `Strings` and what it returns: ``` parseNumeric when given a "value" that is a {string} that represents a {number} ✓ will convert the {string} to a {number} a non-numeric {string} ✓ will return the original value a {number} ✓ will return the {number} an empty {string} ✓ will return the empty {string} {null} ✓ will return {null} (1ms) {undefined} ✓ will return {undefined} ``` and ``` parseNumeric.isNumeric ✓ returns "false" for non-numeric values ✓ returns "true" for numbers and numeric strings ✓ returns "true" for numbers and numeric strings ``` This commit also includes CI build features with quality gates, as well as documentation. #1
1 parent 16faf2f commit adf3246

19 files changed

+9427
-531
lines changed

.codeclimate.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
plugins:
2+
editorconfig:
3+
enabled: true
4+
eslint:
5+
enabled: true
6+
channel: "eslint-5"
7+
config:
8+
config: .eslintrc.js
9+
fixme:
10+
enabled: true
11+
# https://docs.codeclimate.com/docs/git-legal#section-enable-the-plugin
12+
git-legal:
13+
enabled: true
14+
markdownlint:
15+
enabled: false

.eslintignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
coverage/
2-
docs/
2+
docs/
3+
lib/__tests__/__fixtures__/

.eslintrc.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,23 @@ module.exports = {
44
node: true
55
},
66
extends: [
7+
'eslint:all',
78
'standard',
8-
'plugin:security/recommended',
9-
'plugin:unicorn/recommended'
9+
'xo',
10+
'plugin:security/recommended'
1011
],
1112
plugins: [
1213
'import',
1314
'node',
1415
'prettier',
1516
'promise',
1617
'security',
17-
'standard',
18-
'unicorn'
19-
]
18+
'standard'
19+
],
20+
rules: {
21+
'arrow-parens': 'off',
22+
indent: [2, 2, {SwitchCase: 1}],
23+
'padding-line-between-statements': 'off',
24+
semi: 'off'
25+
}
2026
}

.fossa.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Generated by FOSSA CLI (https://github.com/fossas/fossa-cli)
2+
# Visit https://fossa.io to learn more
3+
4+
version: 1
5+
cli:
6+
server: https://app.fossa.io
7+
fetcher: custom
8+
project: https://github.com/gregswindle/parse-numeric.git
9+
analyze:
10+
modules:
11+
- name: .
12+
type: npm
13+
target: .
14+
path: .

.github/ISSUE_TEMPLATE/Defect.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ _When working properly, I expect that:_
4646
> ⌦ Include as many relevant details about the environment in which the defect
4747
> occured.
4848
49-
- <samp>data-loss-signatures</samp> version:
49+
- <samp>parse-numeric</samp> version:
5050
- `JavaScript` version (`node --version`):
5151
- `npm` version (`npm --version`):
5252
- Operating System and version (desktop or mobile):

.github/ISSUE_TEMPLATE/Refactoring.md

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -41,45 +41,41 @@
4141
<!-- SonarCloud badge refs -->
4242

4343
[sonar-alert-status-badge]:
44-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=alert_status&template=FLAT
44+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=alert_status&template=FLAT
4545
[sonar-alert-status-url]:
46-
https://sonarcloud.io/dashboard?id=data-loss-signatures-gitlab
46+
https://sonarcloud.io/dashboard?id=parse-numeric-gitlab
4747
[sonar-bugs-badge]:
48-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=bugs&template=FLAT
49-
[sonar-bugs-url]: https://sonarcloud.io/dashboard?id=data-loss-signatures-gitlab
48+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=bugs&template=FLAT
49+
[sonar-bugs-url]: https://sonarcloud.io/dashboard?id=parse-numeric-gitlab
5050
[sonar-code-smells-badge]:
51-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=code_smells&template=FLAT
52-
[sonar-code-smells-url]:
53-
https://sonarcloud.io/dashboard?id=data-loss-signatures-gitlab
51+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=code_smells&template=FLAT
52+
[sonar-code-smells-url]: https://sonarcloud.io/dashboard?id=parse-numeric-gitlab
5453
[sonar-coverage-badge]:
55-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=coverage&template=FLAT
56-
[sonar-coverage-url]:
57-
https://sonarcloud.io/dashboard?id=data-loss-signatures-gitlab
54+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=coverage&template=FLAT
55+
[sonar-coverage-url]: https://sonarcloud.io/dashboard?id=parse-numeric-gitlab
5856
[sonar-duplicated-lines-density-badge]:
59-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=duplicated_lines_density&template=FLAT
57+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=duplicated_lines_density&template=FLAT
6058
[sonar-duplicated-lines-density-url]:
61-
https://sonarcloud.io/dashboard?id=data-loss-signatures-gitlab
59+
https://sonarcloud.io/dashboard?id=parse-numeric-gitlab
6260
[sonar-ncloc-badge]:
63-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=ncloc&template=FLAT
64-
[sonar-ncloc-url]:
65-
https://sonarcloud.io/dashboard?id=data-loss-signatures-gitlab
61+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=ncloc&template=FLAT
62+
[sonar-ncloc-url]: https://sonarcloud.io/dashboard?id=parse-numeric-gitlab
6663
[sonar-reliability-rating-badge]:
67-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=reliability_rating&template=FLAT
64+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=reliability_rating&template=FLAT
6865
[sonar-reliability-rating-url]:
69-
https://sonarcloud.io/dashboard?id=data-loss-signatures-gitlab
66+
https://sonarcloud.io/dashboard?id=parse-numeric-gitlab
7067
[sonar-security-rating-badge]:
71-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=security_rating&template=FLAT
68+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=security_rating&template=FLAT
7269
[sonar-security-rating-url]:
73-
https://sonarcloud.io/dashboard?id=data-loss-signatures-gitlab
70+
https://sonarcloud.io/dashboard?id=parse-numeric-gitlab
7471
[sonar-sqale-index-badge]:
75-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=sqale_index&template=FLAT
76-
[sonar-sqale-index-url]:
77-
https://sonarcloud.io/dashboard?id=data-loss-signatures-gitlab
72+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=sqale_index&template=FLAT
73+
[sonar-sqale-index-url]: https://sonarcloud.io/dashboard?id=parse-numeric-gitlab
7874
[sonar-sqale-rating-badge]:
79-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=sqale_rating&template=FLAT
75+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=sqale_rating&template=FLAT
8076
[sonar-sqale-rating-url]:
81-
https://sonarcloud.io/dashboard?id=data-loss-signatures-gitlab
77+
https://sonarcloud.io/dashboard?id=parse-numeric-gitlab
8278
[sonar-vulnerabilities-badge]:
83-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=vulnerabilities&template=FLAT
79+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=vulnerabilities&template=FLAT
8480
[sonar-vulnerabilities-url]:
85-
https://sonarcloud.io/dashboard?id=data-loss-signatures-gitlab
81+
https://sonarcloud.io/dashboard?id=parse-numeric-gitlab

.github/PULL_REQUEST_TEMPLATE/merge_request.md

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ Closes #ISSUE_NUMBER
3838

3939
### How to format, lint, and test your changes
4040

41-
Open a Terminal, go to the root directory for <samp>data-loss-signatures</samp>,
42-
and run:
41+
Open a Terminal, go to the root directory for <samp>parse-numeric</samp>, and
42+
run:
4343

4444
```bash
4545
$ npm test
@@ -56,48 +56,48 @@ $ npm test
5656
<!-- SonarCloud badge refs -->
5757

5858
[sonar-alert-status-badge]:
59-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=alert_status&template=FLAT
59+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=alert_status&template=FLAT
6060
[sonar-alert-status-url]:
61-
https://sonarcloud.io/dashboard?id=data-loss-signatures-gitlab
61+
https://sonarcloud.io/dashboard?id=parse-numeric-gitlab
6262
[sonar-bugs-badge]:
63-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=bugs&template=FLAT
64-
[sonar-bugs-url]: https://sonarcloud.io/dashboard?id=data-loss-signatures-gitlab
63+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=bugs&template=FLAT
64+
[sonar-bugs-url]: https://sonarcloud.io/dashboard?id=parse-numeric-gitlab
6565
[sonar-code-smells-badge]:
66-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=code_smells&template=FLAT
66+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=code_smells&template=FLAT
6767
[sonar-code-smells-url]:
68-
https://sonarcloud.io/component_measures?id=data-loss-signatures-gitlab&metric=code_smells
68+
https://sonarcloud.io/component_measures?id=parse-numeric-gitlab&metric=code_smells
6969
[sonar-coverage-badge]:
70-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=coverage&template=FLAT
70+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=coverage&template=FLAT
7171
[sonar-coverage-url]:
72-
https://sonarcloud.io/component_measures?id=data-loss-signatures-gitlab&metric=coverage
72+
https://sonarcloud.io/component_measures?id=parse-numeric-gitlab&metric=coverage
7373
[sonar-duplicated-lines-density-badge]:
74-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=duplicated_lines_density&template=FLAT
74+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=duplicated_lines_density&template=FLAT
7575
[sonar-duplicated-lines-density-url]:
76-
https://sonarcloud.io/component_measures?id=data-loss-signatures-gitlab&metric=duplicated_lines_density
76+
https://sonarcloud.io/component_measures?id=parse-numeric-gitlab&metric=duplicated_lines_density
7777
[sonar-ncloc-badge]:
78-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=ncloc&template=FLAT
78+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=ncloc&template=FLAT
7979
[sonar-ncloc-url]:
80-
https://sonarcloud.io/component_measures?id=data-loss-signatures-gitlab&metric=ncloc
80+
https://sonarcloud.io/component_measures?id=parse-numeric-gitlab&metric=ncloc
8181
[sonar-reliability-rating-badge]:
82-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=reliability_rating&template=FLAT
82+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=reliability_rating&template=FLAT
8383
[sonar-reliability-rating-url]:
84-
https://sonarcloud.io/component_measures?id=data-loss-signatures-gitlab&metric=reliability_rating
84+
https://sonarcloud.io/component_measures?id=parse-numeric-gitlab&metric=reliability_rating
8585
[sonar-security-rating-badge]:
86-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=security_rating&template=FLAT
86+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=security_rating&template=FLAT
8787
[sonar-security-rating-url]:
88-
https://sonarcloud.io/component_measures?id=data-loss-signatures-gitlab&metric=security_rating
88+
https://sonarcloud.io/component_measures?id=parse-numeric-gitlab&metric=security_rating
8989
[sonar-sqale-index-badge]:
90-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=sqale_index&template=FLAT
90+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=sqale_index&template=FLAT
9191
[sonar-sqale-index-url]:
92-
https://sonarcloud.io/component_measures?id=data-loss-signatures-gitlab&metric=sqale_index
92+
https://sonarcloud.io/component_measures?id=parse-numeric-gitlab&metric=sqale_index
9393
[sonar-sqale-rating-badge]:
94-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=sqale_rating&template=FLAT
94+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=sqale_rating&template=FLAT
9595
[sonar-sqale-rating-url]:
96-
https://sonarcloud.io/component_measures?id=data-loss-signatures-gitlab&metric=sqale_rating
96+
https://sonarcloud.io/component_measures?id=parse-numeric-gitlab&metric=sqale_rating
9797
[sonar-vulnerabilities-badge]:
98-
https://sonarcloud.io/api/project_badges/measure?project=data-loss-signatures-gitlab&metric=vulnerabilities&template=FLAT
98+
https://sonarcloud.io/api/project_badges/measure?project=parse-numeric-gitlab&metric=vulnerabilities&template=FLAT
9999
[sonar-vulnerabilities-url]:
100-
https://sonarcloud.io/component_measures?id=data-loss-signatures-gitlab&metric=vulnerabilities
100+
https://sonarcloud.io/component_measures?id=parse-numeric-gitlab&metric=vulnerabilities
101101

102102
<!-- ⛔️ Badge references ⛔️ -->
103103

@@ -115,10 +115,10 @@ $ npm test
115115
[standardjs-logo]: https://cdn.rawgit.com/feross/standard/master/badge.svg
116116
[standardjs-url]: https://github.com/feross/standard
117117
[eslint-logo]:
118-
https://gitlab.com/gregswindle/data-loss-signatures/raw/master/docs/img/logos/logo-eslint.png
118+
https://gitlab.com/gregswindle/parse-numeric/raw/master/docs/img/logos/logo-eslint.png
119119
[eslint-url]: https://eslint.org/docs/user-guide/getting-started
120120
[jest-logo]:
121-
https://gitlab.com/gregswindle/data-loss-signatures/raw/master/docs/img/logo-jest.png
121+
https://gitlab.com/gregswindle/parse-numeric/raw/master/docs/img/logo-jest.png
122122
[jest-url]: https://facebook.github.io/jest/docs/en/getting-started.html
123123

124124
<!-- ⛔️ Octicon img references ⛔️ -->

.github/ci/legal/fossa-init.sh

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/bin/sh
2+
3+
verify_fossa_cli() {
4+
if test -n "$(fossa -v)"
5+
then
6+
echo "[fossa-init]: OK: fossa-cli installed"
7+
return 0
8+
else
9+
echo "[fossa-init]: ERR: fossa-cli not found."
10+
return 1
11+
fi
12+
}
13+
14+
verify_fossa_api_key() {
15+
if test -n "$FOSSA_API_KEY"
16+
then
17+
echo "[fossa-init]: OK: Found FOSSA_API_KEY."
18+
return 0
19+
else
20+
echo "[fossa-init]: ERR: ENVVAR FOSSA_API_KEY not found."
21+
return 1
22+
fi
23+
}
24+
25+
install_fossa_cli() {
26+
echo "[fossa-init]: INSTALL: installing the fossa-cli"
27+
curl https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | bash
28+
}
29+
30+
run_fossa_analysis() {
31+
echo "[fossa-init]: analyzing your dependencies' legal licenses"
32+
fossa analyze
33+
}
34+
35+
run_fossa_test() {
36+
echo "[fossa-init]: testing for legal use compliance risks"
37+
fossa test
38+
}
39+
40+
main() {
41+
if verify_fossa_cli && verify_fossa_api_key
42+
then
43+
fossa
44+
else
45+
install_fossa_cli
46+
init_fossa
47+
run_fossa_analysis
48+
run_fossa_test
49+
fi
50+
exit 0
51+
}
52+
53+
main

.github/ci/qa/code-climate-init.sh

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/bash
2+
3+
get_cc_test_reporter_url() {
4+
if [[ "$TRAVIS_OS_NAME" == "osx" ]]
5+
then
6+
echo "https://codeclimate.com/downloads/test-reporter/test-reporter-latest-darwin-amd64"
7+
else
8+
echo "https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64"
9+
fi
10+
}
11+
12+
dl_cc_test_reporter() {
13+
CC_URL=$(get_cc_test_reporter_url)
14+
curl -L "$CC_URL" > "$TRAVIS_BUILD_DIR/cc-test-reporter"
15+
echo "[code-climate-init]: OK: Dowloaded script to $TRAVIS_BUILD_DIR/cc-test-reporter"
16+
}
17+
18+
init_cc_test_reporter() {
19+
chmod +x "$TRAVIS_BUILD_DIR/cc-test-reporter"
20+
echo "[code-climate-init]: OK: Apply exec to $TRAVIS_BUILD_DIR/cc-test-reporter"
21+
}
22+
23+
main() {
24+
dl_cc_test_reporter
25+
init_cc_test_reporter
26+
echo "[code-climate-init]: OK: $TRAVIS_BUILD_DIR/cc-test-reporter is ready for use."
27+
exit 0
28+
}
29+
30+
main

.remarkrc.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
exports.plugins = [
2+
require('remark-frontmatter'),
3+
[
4+
require('remark-retext'),
5+
require('unified')().use({
6+
plugins: [
7+
require('retext-english'),
8+
require('retext-syntax-urls'),
9+
[require('retext-spell'), require('dictionary-en-us')],
10+
[require('retext-sentence-spacing'), { preferred: 1 }],
11+
require('retext-repeated-words'),
12+
require('retext-usage'),
13+
],
14+
}),
15+
],
16+
require('remark-preset-lint-consistent'),
17+
require('remark-preset-lint-recommended'),
18+
require('remark-preset-lint-markdown-style-guide'),
19+
]

0 commit comments

Comments
 (0)