coh-content-db 1.4.1 → 2.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +25 -0
- package/.github/workflows/build.yml +38 -0
- package/.github/workflows/pull-request.yml +32 -0
- package/.github/workflows/release.yml +52 -0
- package/LICENSE +24 -674
- package/README.md +74 -17
- package/dist/coh-content-db.d.ts +584 -22
- package/dist/coh-content-db.js +587 -2
- package/dist/coh-content-db.js.map +1 -0
- package/dist/coh-content-db.mjs +568 -0
- package/dist/coh-content-db.mjs.map +1 -0
- package/eslint.config.mjs +30 -0
- package/jest.config.mjs +7 -0
- package/package.json +31 -23
- package/rollup.config.mjs +27 -0
- package/src/main/api/alignment.ts +3 -0
- package/src/main/api/alternate-data.ts +22 -0
- package/src/main/api/archetype-data.ts +5 -0
- package/src/main/api/badge-data.ts +109 -0
- package/src/main/api/badge-partial-data.ts +65 -0
- package/src/main/api/badge-partial-type.ts +8 -0
- package/src/main/api/badge-type.ts +19 -0
- package/src/main/api/change.ts +14 -0
- package/src/main/api/enhancement-category.ts +30 -0
- package/src/main/api/game-map-data.ts +26 -0
- package/src/main/api/link.ts +4 -0
- package/src/main/api/plaque-type.ts +6 -0
- package/src/main/api/server-group-data.ts +65 -0
- package/src/main/api/sex.ts +3 -0
- package/src/main/api/vidiot-map-data.ts +18 -0
- package/src/main/api/vidiot-map-point-of-interest-data.ts +30 -0
- package/src/main/changelog.ts +20 -0
- package/src/main/db/alternates.ts +81 -0
- package/src/main/db/archetype.ts +14 -0
- package/src/main/db/badge-partial.ts +35 -0
- package/src/main/db/badge.ts +141 -0
- package/src/main/db/coh-content-database.ts +29 -0
- package/src/main/db/game-map.ts +33 -0
- package/src/main/db/key.ts +18 -0
- package/src/main/db/server-group.ts +112 -0
- package/src/main/db/vidiot-map-point-of-interest.ts +40 -0
- package/src/main/db/vidiot-map.ts +25 -0
- package/src/main/index.ts +33 -0
- package/src/main/util.ts +17 -0
- package/src/test/api/alignment.test.ts +31 -0
- package/src/test/api/archetype-data.fixture.ts +8 -0
- package/src/test/api/badge-data.fixture.ts +22 -0
- package/src/test/api/badge-data.test.ts +15 -0
- package/src/test/api/badge-partial-data.fixture.ts +17 -0
- package/src/test/api/badge-partial-type.test.ts +31 -0
- package/src/test/api/badge-type.test.ts +35 -0
- package/src/test/api/enhancement-category.test.ts +35 -0
- package/src/test/api/game-map-data.fixture.ts +10 -0
- package/src/test/api/plaque-type.test.ts +31 -0
- package/src/test/api/server-group-data.fixture.ts +23 -0
- package/src/test/api/server-group-data.test.ts +15 -0
- package/src/test/api/sex.test.ts +31 -0
- package/src/test/api/vidiot-map-point-of-interest.fixture.ts +10 -0
- package/src/test/api/vidiot-map.fixture.ts +9 -0
- package/src/test/changelog.test.ts +36 -0
- package/src/test/db/alternates.test.ts +223 -0
- package/src/test/db/archetype.test.ts +38 -0
- package/src/test/db/badge.test.ts +41 -0
- package/src/test/db/coh-content-database.test.ts +42 -0
- package/src/test/db/key.test.ts +22 -0
- package/src/test/db/server-group.test.ts +124 -0
- package/src/test/index.test.ts +10 -0
- package/src/test/util.test.ts +39 -0
- package/tsconfig.json +117 -0
- package/dist/_changelog.d.ts +0 -3
- package/dist/coh-content-db.nomin.js +0 -635
- package/dist/content-refence-utils.d.ts +0 -4
- package/dist/index.d.ts +0 -8
- package/dist/internal/_common.d.ts +0 -4
- package/dist/internal/archetype.d.ts +0 -10
- package/dist/internal/badge.d.ts +0 -44
- package/dist/internal/game-map.d.ts +0 -33
- package/dist/internal/server-group.d.ts +0 -24
- package/dist/types/archetype.d.ts +0 -9
- package/dist/types/badge.d.ts +0 -192
- package/dist/types/enhancement.d.ts +0 -28
- package/dist/types/game-map.d.ts +0 -47
- package/dist/types/link.d.ts +0 -4
- package/dist/types/server-group.d.ts +0 -75
package/README.md
CHANGED
|
@@ -1,36 +1,93 @@
|
|
|
1
1
|
# coh-content-db
|
|
2
|
+
|
|
3
|
+
[](https://github.com/n15g/coh-content-db/actions)
|
|
4
|
+
[](https://app.codecov.io/gh/n15g/coh-content-db)
|
|
5
|
+
[](https://github.com/n15g/coh-content-db/tags)
|
|
6
|
+
[](https://www.npmjs.com/package/coh-content-db)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
|
|
2
9
|
City of Heroes Content Database
|
|
3
10
|
|
|
4
|
-
|
|
11
|
+
# Installation
|
|
12
|
+
|
|
5
13
|
```
|
|
6
14
|
npm install coh-content-db
|
|
7
15
|
```
|
|
8
16
|
|
|
9
|
-
|
|
17
|
+
# Usage
|
|
10
18
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
19
|
+
There are two ways to use this package; As a data provider, or a db consumer.
|
|
20
|
+
|
|
21
|
+
## As a data provider
|
|
22
|
+
|
|
23
|
+
Data providers utilize the various `-Data` interfaces provided in this package to construct server group data packages
|
|
24
|
+
that can be loaded into the db for consumption by DB consumers such as [Badger](https://github.com/n15g/badger).
|
|
15
25
|
|
|
16
|
-
|
|
17
|
-
|
|
26
|
+
For an example data package, see the [coh-content-db-homecoming](https://github.com/n15g/coh-content-db-homecoming) project.
|
|
27
|
+
|
|
28
|
+
### Defining archetypes, map, badges, etc.
|
|
29
|
+
|
|
30
|
+
To define content, create a new instance using the appropriate `Data` interface and provide values for the required fields:
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
///test-badge.ts
|
|
34
|
+
import {BadgeData} from 'coh-content-db'
|
|
35
|
+
|
|
36
|
+
export const TEST_BADGE: BadgeData = {
|
|
37
|
+
key: 'test-badge',
|
|
38
|
+
type: 'ACHIEVEMENT',
|
|
39
|
+
name: [{value: 'Test Badge'}, {alignment: 'P', value: 'My Badge for Praetorians'}],
|
|
40
|
+
alignment: ['H', 'V', 'P'],
|
|
41
|
+
}
|
|
18
42
|
```
|
|
19
43
|
|
|
20
|
-
|
|
44
|
+
Then, create a `ServerGroupData` instance and load your content into the appropriate field.
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
import {ServerGroupData} from 'coh-content-db'
|
|
48
|
+
import {TEST_BADGE} from './test-badge'
|
|
21
49
|
|
|
22
|
-
|
|
50
|
+
export const TEST_SERVER_GROUP: ServerGroupData = {
|
|
51
|
+
key: 'my-server-group',
|
|
52
|
+
name: 'My Server Group',
|
|
53
|
+
badges: [TEST_BADGE],
|
|
54
|
+
}
|
|
23
55
|
```
|
|
24
|
-
|
|
56
|
+
|
|
57
|
+
## As a DB consumer
|
|
58
|
+
|
|
59
|
+
Create a new database instance, then load a server-group data pack, such as [coh-content-db-homecoming](https://github.com/n15g/coh-content-db-homecoming):
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
import {CohContentDatabase} from 'coh-content-db';
|
|
63
|
+
import {Homecoming} from 'coh-content-db-homecoming';
|
|
64
|
+
|
|
65
|
+
const db = new CohContentDatabase();
|
|
66
|
+
db.loadServerGroupData(new Homecoming());
|
|
25
67
|
```
|
|
26
68
|
|
|
27
|
-
|
|
69
|
+
Once loaded, you can start retrieving the loaded data using the keys associated with the various content:
|
|
70
|
+
|
|
71
|
+
#### List loaded server groups:
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
db.listServerGroups();
|
|
28
75
|
```
|
|
29
|
-
|
|
76
|
+
|
|
77
|
+
#### Get a server group by key and list the badges:
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
const sg = db.getServerGroup("server-group-key");
|
|
81
|
+
for (const badge of sg.badges) {
|
|
82
|
+
console.log(badge.key)
|
|
83
|
+
}
|
|
30
84
|
```
|
|
31
85
|
|
|
32
|
-
|
|
33
|
-
`npm run build`
|
|
86
|
+
## Publish
|
|
34
87
|
|
|
35
|
-
|
|
36
|
-
|
|
88
|
+
Tags matching the pattern `v<X>.<Y>.<Z>` will attempt to publish to npm (this can only be achieved by the package manager (n15g).
|
|
89
|
+
|
|
90
|
+
```shell
|
|
91
|
+
npm version 1.4.x
|
|
92
|
+
npm run push
|
|
93
|
+
```
|