airtable-ts-codegen
Autogenerate TypeScript definitions for your Airtable base
Usage
Run with:
AIRTABLE_API_KEY=pat1234.abcd AIRTABLE_BASE_ID=app1234 npx airtable-ts-codegen
This will output a file app1234.ts
that exports all the table definitions
Example generated file
import { Item, Table } from 'airtable-ts';
export interface Task extends Item {
id: string,
name: string,
status: string,
dueAt: number,
isOptional: boolean,
}
export const tasksTable: Table<Task> = {
name: 'Tasks',
baseId: 'app1234',
tableId: 'tbl5678',
mappings: {
name: 'fld9012',
status: 'fld3456',
dueAt: 'fld7890',
isOptional: 'fld1234',
},
schema: {
name: 'string',
status: 'string',
dueAt: 'number',
isOptional: 'boolean',
},
};
You can then easily use this with airtable-ts, for example:
import { AirtableTs } from 'airtable-ts';
import { tasksTable } from './generated/app1234';
const db = new AirtableTs({ apiKey: 'pat1234.abcdef' });
const allTasks = await db.scan(tasksTable);
Contributing
Pull requests are welcomed on GitHub! To get started:
- Install Git and Node.js
- Clone the repository
- Install dependencies with
npm install
- Run
npm run test
to run tests - Build with
npm run build
- Run the local version with
npm start
Releases
Versions follow the semantic versioning spec.
To release:
- Use
npm version <major | minor | patch>
to bump the version - Run
git push --follow-tags
to push with tags - Wait for GitHub Actions to publish to the NPM registry.