You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
React Native Directory is a website where you can browse through all the libraries that are compatible with React Native.
16
-
17
-
## Library fields description
18
-
19
-
### ⚙️ General
20
-
21
-
- #### ❗ \`githubUrl\` **(required)**
22
-
23
-
**(string)** - URL to the package GitHub repository (currently other Git hosts are not supported).
24
-
25
-
> [!WARNING]
26
-
> Package also needs to be published to the NPM registry, because it is a source of crucial data for the directory.
27
-
28
-
- #### \`npmPkg\`
29
-
30
-
**(string)** - npm package name, by default GitHub repository name will be used. Example: \`"@expo/react-native-action-sheet"\`.
31
-
32
-
> [!TIP]
33
-
> Fill \`npmPkg\` only when the GitHub repository name is different from the name of package published to npm, or the package is a part of monorepo.
34
-
35
-
- #### \`examples\`
36
-
**(array of strings)** - URLs to example projects or Snacks which demonstrates the library.
37
-
- #### \`images\`
38
-
39
-
**(array of strings)** - URLs to static images or GIFs that shows the library functionality.
40
-
41
-
> [!TIP]
42
-
> Please do not add logotypes or other branding materials to the \`images\` array, and please avoid linking multiple assets which shows the same feature.
43
-
44
-
### 📱 Platforms
18
+
React Native Directory is a website where you can browse through all the libraries that are compatible with React Native.`;
45
19
46
-
- #### \`android\`
47
-
**(boolean)** - works on Android device.
48
-
- #### \`ios\`
49
-
**(boolean)** - works on iOS device.
50
-
- #### \`web\`
51
-
**(boolean)** - can be used with [\`react-native-web\`](https://github.com/necolas/react-native-web).
52
-
53
-
### 🖥️ Out-of-tree Platforms
54
-
55
-
> [!IMPORTANT]
56
-
> Adding out-of-tree platforms support requires an example or link to the app which uses the library on the given platform.
57
-
58
-
- #### \`windows\`
59
-
**(boolean)** - can be used with [\`react-native-windows\`](https://github.com/microsoft/react-native-windows).
60
-
- #### \`macos\`
61
-
**(boolean)** - can be used with [\`react-native-macos\`](https://github.com/microsoft/react-native-macos).
62
-
- #### \`tvos\`
63
-
**(boolean)** - can be used with [\`react-native-tvos\`](https://github.com/react-native-tvos/react-native-tvos).
64
-
- #### \`visionos\`
65
-
**(boolean)** - can be used with [\`react-native-visionos\`](https://github.com/callstack/react-native-visionos).
66
-
67
-
### ✅ Compatibility
68
-
69
-
> [!TIP]
70
-
> **Any** library can be used with Expo, if you use dev clients or prebuild.
71
-
72
-
- #### \`expoGo\`
73
-
**(boolean)** - works with [Expo Go](https://docs.expo.dev/get-started/expo-go/) — an open-source sandbox app, without using [dev clients](https://docs.expo.dev/develop/development-builds/introduction/) or [prebuild](https://docs.expo.dev/workflow/continuous-native-generation/).
74
-
- #### \`fireos\`
75
-
**(boolean)** - works on Amazon Fire OS.
76
-
- #### \`horizon\`
77
-
**(boolean)** - works on Meta Horizon OS.
78
-
- #### \`vegaos\`
79
-
**(boolean|string)** - works with [Vega OS](https://developer.amazon.com/apps-and-games/vega). It can also be a string containing npm package name, if a separate/additional package is required for full support.
80
-
81
-
### 🏷️ Tags
20
+
functionnormalizeNewlines(text: string){
21
+
returntext.replace(/\r\n/g,'\n');
22
+
}
82
23
83
-
- #### \`unmaintained\`
84
-
**(boolean)** - signify that a library is no longer maintained. You can provide alternative or replacement libraries with the \`alternatives\` field, if needed.
85
-
- #### \`dev\`
86
-
**(boolean)** - signify that a library is a development tool or is only a part of development process.
87
-
- #### \`template\`
88
-
**(boolean)** - signify that a library is a new project template.
89
-
- #### \`configPlugin\`
90
-
**(boolean \\| string \\[URL to third-party config plugin\\])** - Indicates if the library includes an [Expo config plugin](https://docs.expo.dev/config-plugins/introduction/). If the plugin is provided by a third party, supply the URL as a string. This field is optional and will be detected automatically if omitted.
91
-
- #### \`newArchitecture\`
92
-
**(boolean|'new-arch-only')** - signify that a library supports both, or not, the New Architecture and the Old Architecture or only the New Architecture. Skipping the field will result in "untested" status, unless automatic support detection returned a result. You can provide additional context with the \`newArchitectureNote\` field, if needed.
24
+
functionextractReadmeSection(heading: string){
25
+
constmd=normalizeNewlines(README_MARKDOWN);
93
26
94
-
> [!TIP]
95
-
> Set \`newArchitecture\` field only when automatic architecture detection fails for your package, despite it supports the New Architecture.
27
+
constheadingToFind=`## ${heading}`;
28
+
conststartIndex=md.indexOf(headingToFind);
96
29
97
-
### 📝 Additional context for tags
30
+
if(startIndex===-1){
31
+
thrownewError(`Could not find section heading in README.md: ${headingToFind}`);
32
+
}
98
33
99
-
- #### \`newArchitectureNote\`
100
-
**(string)** - provide a note for the New Architecture support status, if a boolean \`"true"\` or \`"false"\` is not sufficient to describe the state of New Architecture support.
**(array of strings)** - provide a list of alternatives to the library. eg: \`["expo-camera", "react-native-vision-camera"]\`. This is used to provide a list of alternatives to a library if it is unmaintained or does not support the New Architecture.`;
0 commit comments