Skip to content
This repository was archived by the owner on Nov 8, 2024. It is now read-only.

Commit bc90950

Browse files
authored
Merge pull request #1 from apiaryio/kylef/package
Initial package
2 parents ab843a0 + a87c03c commit bc90950

File tree

6 files changed

+126
-1
lines changed

6 files changed

+126
-1
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
node_modules/
2+
package-lock.json

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# API Elements (JavaScript) CHANGELOG
2+
3+
## 0.1.0
4+
5+
Initial Release.

README.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,32 @@
1-
# api-elements.js
1+
# API Elements JavaScript
2+
3+
This library provides an interface to [API Elements](http://apielements.org) in JavaScript.
4+
5+
## Install
6+
7+
```shell
8+
$ npm install api-elements
9+
```
10+
11+
## Usage
12+
13+
### Node
14+
15+
```javascript
16+
const apiElements = require('api-elements');
17+
const namespace = new apiElements.Namespace();
18+
19+
20+
// Parsing a JSON Representation of API Elements tree
21+
const parseResult = namespace.serialiser.deserialise({
22+
element: 'parseResult',
23+
content: []
24+
});
25+
26+
console.log(parseResult);
27+
28+
29+
// Creating API Elements directly
30+
const parseResult = new namespace.elements.ParseResult();
31+
console.log(parseResult);
32+
```

lib/api-elements.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const minim = require('minim');
2+
const minimParseResult = require('minim-parse-result');
3+
4+
5+
class Namespace extends minim.Namespace {
6+
constructor() {
7+
super();
8+
this.use(minimParseResult);
9+
}
10+
}
11+
12+
13+
const namespace = new Namespace();
14+
15+
16+
module.exports = namespace;
17+
module.exports.Namespace = Namespace;

package.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"name": "api-elements",
3+
"version": "0.1.0",
4+
"description": "API Elements JavaScript",
5+
"main": "lib/api-elements.js",
6+
"repository": {
7+
"type": "git",
8+
"url": "https://github.com/apiaryio/api-elements.js.git"
9+
},
10+
"scripts": {
11+
"test": "mocha"
12+
},
13+
"author": "Apiary",
14+
"license": "MIT",
15+
"dependencies": {
16+
"minim": "^0.20.4",
17+
"minim-parse-result": "^0.10.0"
18+
},
19+
"devDependencies": {
20+
"chai": "^4.1.2",
21+
"mocha": "^5.0.0"
22+
},
23+
"engines": {
24+
"node": ">=4"
25+
},
26+
"author": "Apiary.io <[email protected]>",
27+
"license": "MIT"
28+
}

test/test_api_elements.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
const { expect } = require('chai');
2+
3+
const apiElements = require('../lib/api-elements');
4+
5+
6+
describe('API Elements', () => {
7+
context('provides a default namespace', () => {
8+
let namespace;
9+
10+
before(() => {
11+
namespace = apiElements;
12+
});
13+
14+
context('which provides elements', () => {
15+
it('contains ParseResult', () => {
16+
expect(namespace.elements.ParseResult).to.not.be.null;
17+
});
18+
19+
it('contains Category', () => {
20+
expect(namespace.elements.Category).to.not.be.null;
21+
});
22+
});
23+
});
24+
25+
context('provides a namespace class', () => {
26+
let namespace;
27+
28+
before(() => {
29+
namespace = new apiElements.Namespace();
30+
});
31+
32+
context('which provides elements', () => {
33+
it('contains ParseResult', () => {
34+
expect(namespace.elements.ParseResult).to.not.be.null;
35+
});
36+
37+
it('contains Category', () => {
38+
expect(namespace.elements.Category).to.not.be.null;
39+
});
40+
});
41+
});
42+
});

0 commit comments

Comments
 (0)