Skip to content

Commit 9e4360b

Browse files
committed
add libraries.json schema
1 parent abcd254 commit 9e4360b

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

libraries.schema.json

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-06/schema#",
3+
"type": "object",
4+
"additionalProperties": {
5+
"$ref": "#/definitions/LibraryDefinition"
6+
},
7+
"definitions": {
8+
"LibraryDefinition": {
9+
"type": "object",
10+
"additionalProperties": false,
11+
"properties": {
12+
"description": {
13+
"type": "string",
14+
"description": "General description of the library just to know what the library does.",
15+
"examples": [
16+
"A React Native library to display fancy animations",
17+
"A <Video /> component for React Native"
18+
]
19+
},
20+
"installCommand": {
21+
"type": "string",
22+
"description": "Command used to install packages in the test project. It will be prepended with 'npm install' command. If your library publishes nightlies or betas, please use the '@nightly' and '@beta' suffix, so we’ll test against the latest version. If your library has multiple NPM package that requires testing, please include all of them as space separated string.",
23+
"examples": [
24+
"react-native-gesture-handler",
25+
"react-native-reanimated@nightly react-native-worklets@nightly"
26+
]
27+
},
28+
"android": {
29+
"type": "boolean",
30+
"description": "Boolean toggle if the test on Android should be executed."
31+
},
32+
"ios": {
33+
"type": "boolean",
34+
"description": "Boolean toggle if the test on iOS should be executed."
35+
},
36+
"maintainersUsernames": {
37+
"type": "array",
38+
"items": {
39+
"type": "string"
40+
},
41+
"description": "Array of GitHub usernames. We will use it in the future to communicate with library maintainers (e.g. ping for build failures).",
42+
"examples": [
43+
["frodo", "bilbo", "pippin", "merry", "sam"]
44+
]
45+
},
46+
"notes": {
47+
"type": "string",
48+
"description": "Notes about the state of the library or reason why it has been added.",
49+
"examples": [
50+
"Build currently broken due to X reason.",
51+
"One of top most used libraries according to the npm stats."
52+
]
53+
}
54+
},
55+
"required": [
56+
"description",
57+
"installCommand",
58+
"maintainersUsernames",
59+
"notes"
60+
],
61+
"title": "LibraryDefinition"
62+
}
63+
}
64+
}

0 commit comments

Comments
 (0)