Skip to content

johan-perso/teable-to-json

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Version française ici.

TeableToJSON

A CLI designed to export one or more tables from a Teable base to a JSON file, to use in a project as a CMS.

Recording.at.2024-03-18.18.52.44.mp4

Installation

TeableToJSON only supports recent versions of NodeJS (v20+).

# With npm
npm i -g teablejson

# Or with pnpm
pnpm i -g teablejson
$ teablejson --version
$ teablejson --help

Configuration

To access one of your bases, you will need to configure a .env file in the folder where you execute TeableToJSON. Example:

# Authentification, required
TEABLE_AUTH_TOKEN=teable_xxx
TEABLE_BASE_ID=xxx

# Option, facultative
TEABLE_FILENAME=nomdefichier

If no .env file is found when running the command, TeableToJSON will help you create one.

User script

If you need your exported base to be checked or modified before being saved, you can create a file named .teablescript.js in the folder where you run TeableToJSON.

  • Your script must export a function that takes a JSON object as a parameter, the one of the exported base.
  • If a string is returned, the JSON file will not be saved and the content of the string will be displayed in the console.
  • If an object is returned, the JSON file will be saved with the content of the object.
  • If nothing is returned, the JSON file will be saved as is.

Exemple :

module.exports = async function(json){
	// Check that the base contains a table named "issues"
	if(!json.issues) return "The base doesn't contain any table named 'issues'"

	// Remove objects that are marked as "archived"
	json.issues = json.issues.filter(issue => !issue.archived)

	// Return the modified JSON
	return json
}

License

MIT © Johan. Support this project via Ko-Fi or PayPal if you want to help me 💙