https://github.com/johan-perso/teable-to-json
A CLI made to export tables from a Teable base to a JSON file
https://github.com/johan-perso/teable-to-json
cli cms node-cli teable tui
Last synced: about 1 year ago
JSON representation
A CLI made to export tables from a Teable base to a JSON file
- Host: GitHub
- URL: https://github.com/johan-perso/teable-to-json
- Owner: johan-perso
- License: mit
- Created: 2024-03-18T19:35:30.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-18T09:02:42.000Z (almost 2 years ago)
- Last Synced: 2025-02-24T04:18:05.320Z (about 1 year ago)
- Topics: cli, cms, node-cli, teable, tui
- Language: JavaScript
- Homepage:
- Size: 11.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.fr.md
- License: LICENSE
Awesome Lists containing this project
README
###### English version [here](https://github.com/johan-perso/teable-to-json/blob/main/README.md).
# TeableToJSON
Un CLI conçu pour exporter une ou plusieurs tables d'une base Teable vers un fichier JSON, pour l'utiliser dans un projet comme si c'était un CMS.
https://github.com/johan-perso/teable-to-json/assets/41506568/d5cf0847-fdbd-4397-87ba-1cae05907482
## Installation
> TeableToJSON ne supporte que les versions récentes de NodeJS (v20+).
```bash
# Avec npm
npm i -g teablejson
# Ou avec pnpm
pnpm i -g teablejson
```
```bash
$ teablejson --version
$ teablejson --help
```
## Configuration
Pour accéder à une de vos bases, vous devrez configurer un fichier `.env` dans le dossier où vous exécutez TeableToJSON. Voici un exemple :
```env
# Authentification, requis
TEABLE_AUTH_TOKEN=teable_xxx
TEABLE_BASE_ID=xxx
# Option, facultatif
TEABLE_FILENAME=nomdefichier
```
Si aucun fichier .env n'est trouvé lors de l'exécution de la commande, TeableToJSON vous aidera à en créer un.
## Script utilisateur
Si vous avez besoin que votre base exporté soit vérifiée ou modifiée avant d'être enregistré, vous pouvez créer un fichier nommé `.teablescript.js` dans le dossier auquel vous exécutez TeableToJSON.
* Votre script doit exporter une fonction qui prend en paramètre un objet JSON, celui de la base exportée.
* Si un string est retourné, le fichier JSON ne sera pas enregistré et le contenu du string sera affiché dans la console.
* Si un objet est retourné, le fichier JSON sera enregistré avec le contenu de l'objet.
* Si rien n'est retourné, le fichier JSON sera enregistré tel quel.
Exemple :
```js
module.exports = async function(json){
// Vérifier que la base contienne une table nommée "issues"
if(!json.issues) return "La base ne contient pas de table nommée 'issues'"
// Supprimer les objets qui sont marqués comme "archivés"
json.issues = json.issues.filter(issue => !issue.archived)
// Retourner le JSON modifié
return json
}
```
## Licence
MIT © [Johan](https://johanstick.fr). Soutenez ce projet via [Ko-Fi](https://ko-fi.com/johan_stickman) ou [PayPal](https://paypal.me/moipastoii) si vous souhaitez m'aider 💙