Skip to content

Commit c442ea5

Browse files
authored
Merge pull request #7 from detectlanguage/v3
Update to v3 API
2 parents 6ff98b2 + 0fe2cdf commit c442ea5

File tree

17 files changed

+531
-223
lines changed

17 files changed

+531
-223
lines changed

.eslintrc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
"parser": "babel-eslint",
33
"extends": "airbnb/base",
44
"env": {
5-
"mocha": true
5+
"mocha": true,
6+
"browser": true
7+
},
8+
"rules": {
9+
"no-unused-expressions": "off"
610
}
711
}

.github/workflows/main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ jobs:
66
strategy:
77
matrix:
88
node-version:
9+
- 24
10+
- 22
11+
- 20
912
- 18
10-
- 14
11-
- 12
12-
- 10
1313
name: Node ${{ matrix.node-version }} sample
1414
steps:
1515
- uses: actions/checkout@v3

.github/workflows/publish.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Publish package to npmjs
2+
on:
3+
release:
4+
types: [published]
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v4
10+
- uses: actions/setup-node@v4
11+
with:
12+
node-version: 20
13+
registry-url: 'https://registry.npmjs.org'
14+
- run: yarn install
15+
- run: yarn build
16+
- run: yarn publish
17+
env:
18+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
19+
DETECTLANGUAGE_API_KEY: ${{ secrets.DETECTLANGUAGE_API_KEY }}

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.env.local
2+
13
# Logs
24
logs
35
*.log

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
9+
## v3.0.0
10+
11+
### Added
12+
- `detectBatch()` for batch detections
13+
14+
### Changed
15+
- Switched to v3 API which uses updated language detection model
16+
- ⚠️ `detect()` result fields are `language` and `score`
17+
- Switched to the native `fetch` API. Minimum supported Node version 8.
18+
19+
### Deprecated
20+
- Calling `detect()` with array argument. Use `detectBatch` instead.
21+
- `userStatus()` - Use `accountStatus()` instead.
22+
23+
### Removed
24+
- `axios` dependency

README.md

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,18 @@ Detect Language API Node.js Client
44
[![npm version](https://badge.fury.io/js/detectlanguage.svg)](https://badge.fury.io/js/detectlanguage)
55
[![Build Status](https://github.com/detectlanguage/detectlanguage-node/actions/workflows/main.yml/badge.svg)](https://github.com/detectlanguage/detectlanguage-node/actions)
66

7-
Node.js wrapper for the [Detect Language API](https://detectlanguage.com/).
7+
Node.js client for the [Detect Language API](https://detectlanguage.com/).
88

99
## Installation
1010

1111
```
1212
npm install detectlanguage [--save]
1313
```
1414

15+
### Upgrading
16+
17+
When upgrading please check [changelog](CHANGELOG.md) for breaking changes.
18+
1519
## Configuration
1620

1721
Before using Detect Language API client you have to setup your personal API key.
@@ -40,13 +44,7 @@ detectlanguage.detect(text).then(function(result) {
4044
#### Response
4145

4246
```javascript
43-
[
44-
{
45-
"language": "en",
46-
"isReliable": true,
47-
"confidence": 18.2
48-
}
49-
]
47+
[{"language":"en","score":0.9955}]
5048
```
5149

5250
### Batch Detection (recommended)
@@ -57,7 +55,7 @@ It is much faster than doing request for each text individually.
5755
```javascript
5856
var texts = ['šešios žąsys', 'Strč prst skrz krk'];
5957

60-
detectlanguage.detect(texts).then(function(result) {
58+
detectlanguage.detectBatch(texts).then(function(result) {
6159
console.log(JSON.stringify(result));
6260
});
6361
```
@@ -69,22 +67,20 @@ detectlanguage.detect(texts).then(function(result) {
6967
[
7068
{
7169
"language": "lt",
72-
"isReliable": true,
73-
"confidence": 5.5
70+
"score": 0.8696
7471
}
7572
],
7673
[
7774
{
7875
"language": "cs",
79-
"isReliable": true,
80-
"confidence": 3.645
76+
"score": 0.3653
8177
},
8278
...
8379
]
8480
]
8581
```
8682

87-
### Language Code Detection
83+
### Language Code Detection
8884

8985
Returns first detected language code.
9086

@@ -117,27 +113,23 @@ detectlanguage.languages().then(function(result) {
117113
```javascript
118114
[
119115
{
120-
code: "aa",
121-
name: "AFAR"
116+
"code": "aa",
117+
"name": "Afar"
122118
},
123119
{
124-
code: "ab",
125-
name: "ABKHAZIAN"
120+
"code": "ab",
121+
"name": "Abkhazian"
126122
},
127-
{
128-
code: "af",
129-
name: "AFRIKAANS"
130-
}
131123
...
132124
]
133125
```
134126

135-
### User Status
127+
### Account Status
136128

137129
Returns information about your account and it's status.
138130

139131
```javascript
140-
detectlanguage.userStatus().then(function(result) {
132+
detectlanguage.accountStatus().then(function(result) {
141133
console.log(JSON.stringify(result));
142134
});
143135
```

examples/userStatus.js renamed to examples/accountStatus.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ var DetectLanguage = require('../lib/');
22

33
var detectlanguage = new DetectLanguage(process.env.DETECTLANGUAGE_API_KEY);
44

5-
detectlanguage.userStatus().then(function(result) {
5+
detectlanguage.accountStatus().then(function(result) {
66
console.log(JSON.stringify(result, null, 2));
77
});

examples/detectBatch.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ var detectlanguage = new DetectLanguage(process.env.DETECTLANGUAGE_API_KEY);
44

55
var texts = ['šešios žąsys', 'Strč prst skrz krk'];
66

7-
detectlanguage.detect(texts).then(function(result) {
7+
detectlanguage.detectBatch(texts).then(function(result) {
88
console.log(JSON.stringify(result, null, 2));
99
});

mise.toml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
[tools]
2+
node = "20"
3+
4+
[env]
5+
_.file = ".env.local"
6+
7+
[tasks]
8+
test = "yarn test"
9+
build = "yarn build"
10+
11+
[tasks.examples]
12+
depends = ["build"]
13+
run = [
14+
"node examples/detect.js",
15+
"node examples/detectBatch.js",
16+
"node examples/detectCode.js",
17+
"node examples/languages.js",
18+
"node examples/accountStatus.js"
19+
]
20+
21+
[tasks.console]
22+
depends = ["build"]
23+
run = '''
24+
node -i -e "\
25+
var DetectLanguage = require('./lib');\
26+
var detectlanguage = new DetectLanguage(process.env.DETECTLANGUAGE_API_KEY);\
27+
"
28+
'''

package.json

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "detectlanguage",
3-
"version": "2.1.0",
3+
"version": "3.0.0",
44
"description": "Detect Language API Node.js Client",
55
"main": "./lib/index.js",
66
"types": "./src/index.d.ts",
@@ -35,9 +35,6 @@
3535
"url": "https://github.com/detectlanguage/detectlanguage-node/issues"
3636
},
3737
"homepage": "https://github.com/detectlanguage/detectlanguage-node",
38-
"dependencies": {
39-
"axios": "^0.21.1"
40-
},
4138
"devDependencies": {
4239
"@babel/cli": "^7.11.6",
4340
"@babel/core": "^7.11.6",
@@ -52,6 +49,7 @@
5249
"eslint-plugin-import": "^2.22.0",
5350
"mocha": "^8.1.3",
5451
"nyc": "^15.1.0",
55-
"rimraf": "^3.0.2"
52+
"rimraf": "^3.0.2",
53+
"sinon": "^20.0.0"
5654
}
5755
}

0 commit comments

Comments
 (0)