1.2.30 • Published 11 months ago

@ryanforever/airtable v1.2.30

Weekly downloads
-
License
ISC
Repository
github
Last release
11 months 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.16

1 year ago

1.2.17

1 year ago

1.2.15

1 year ago

1.2.18

1 year ago

1.2.19

1 year ago

1.2.20

1 year ago

1.2.23

12 months ago

1.2.24

12 months ago

1.2.21

1 year ago

1.2.22

1 year ago

1.2.27

12 months ago

1.2.28

12 months ago

1.2.25

12 months ago

1.2.26

12 months ago

1.2.29

11 months ago

1.2.30

11 months ago

1.2.13

1 year ago

1.2.14

1 year ago

1.2.12

1 year ago

1.2.11

1 year ago

1.2.9

1 year ago

1.2.10

1 year ago

1.2.8

1 year ago

1.2.7

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.0

1 year ago

1.2.1

1 year ago

1.1.19

1 year ago

1.1.21

1 year ago

1.1.20

1 year ago

1.1.18

1 year ago

1.1.17

1 year ago

1.1.16

1 year ago

1.1.15

2 years ago

1.1.0

2 years ago

1.1.9

2 years ago

1.1.8

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.0.5

2 years ago

1.1.3

2 years ago

1.0.4

2 years ago

1.1.12

2 years ago

1.1.11

2 years ago

1.1.10

2 years ago

1.1.14

2 years ago

1.1.13

2 years ago

1.0.3

2 years ago

1.0.1

3 years ago

1.0.0

3 years ago