1.2.14 • Published 4 days ago

@ryanforever/airtable v1.2.14

Weekly downloads
-
License
ISC
Repository
github
Last release
4 days ago

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)
1.2.13

4 days ago

1.2.14

4 days ago

1.2.12

5 days ago

1.2.11

12 days ago

1.2.9

12 days ago

1.2.10

12 days ago

1.2.8

18 days ago

1.2.7

18 days ago

1.2.6

21 days ago

1.2.5

21 days ago

1.2.4

1 month ago

1.2.3

2 months ago

1.2.2

2 months ago

1.2.0

3 months ago

1.2.1

3 months ago

1.1.19

3 months ago

1.1.21

3 months ago

1.1.20

3 months ago

1.1.18

3 months ago

1.1.17

4 months ago

1.1.16

4 months ago

1.1.15

5 months ago

1.1.0

7 months ago

1.1.9

6 months ago

1.1.8

6 months ago

1.1.5

6 months ago

1.1.4

6 months ago

1.0.5

8 months ago

1.1.3

6 months ago

1.0.4

8 months ago

1.1.12

6 months ago

1.1.11

6 months ago

1.1.10

6 months ago

1.1.14

5 months ago

1.1.13

6 months ago

1.0.3

1 year ago

1.0.1

1 year ago

1.0.0

2 years ago