@ryanforever/airtable
v1.2.30
Published
airtable API
Downloads
14
Readme
airtable
Airtable API wrapper with some extra methods
usage
const Airtable = require("@ryanforever/airtable")
const airtable = new Airtable({
key: process.env.AIRTABLE_KEY,
baseId: process.env.DOLLARSONG_BASE_ID,
})
airtable.create("Users", {
name: "hello world",
age: 25
})
methods
// with table name in config
const Airtable = require("@ryanforever/airtable")
const airtable = new Airtable({
key: process.env.AIRTABLE_KEY,
baseId: process.env.AIRTABLE_BASE_ID
})
upsert records
Will create if record does not exist, and update if does exist, based on the fields specified as fields
await airtable.upsert({
table: "My Table", // name of table you want to upsert in
fields: ["id"], // field(s) to match
records: [
{ id: "abc123", name: "ryan forever" }
]
})
update records
await airtable.update("My Table", [
{
id: "recxVksa5oZdLKPTY",
fields: {
name: "ryan forever",
age: 21
}
}
])
create a schema of your entire base
.createBaseSchema()
Automatically creates a comprehensive overview of all the tables/fields/relationships in a base. This method will create a new table in your base.
await airtable.createBaseSchema()
// with options
await airtable.createBaseSchema({
tableName: "Base Schema", // name of the table you want to create. default is base_schema
description: "This is the schema of this base" // description will be added to this table
})
create fields in a table programatically
you can use .inferFieldTypesFromObj()
to get the airtable field names of a given object
// you have an object which you want to get the field types for
let obj = {
name: "ryan forever",
age: 23,
birthday: "1991-08-23T07:00:00.000Z",
likes: ["apples", "cats", "sushi"],
active: true
}
let fields = airtable.inferFieldTypesFromObj(obj)
/*
outputs an array with formatted airtable field schemas
[
{ name: 'name', type: 'singleLineText' },
{ name: 'age', type: 'number' },
{ name: 'birthday', type: 'dateTime' },
{ name: 'likes', type: 'multipleSelects' },
{ name: 'active', type: 'checkbox' }
]
*/
// create the fields in airtable
await airtable.createFields("My Table", fields)