- Fix a User-Agent bug in Node (#132)
- Stop publishing non-essential files to npm (#128)
- Remove custom class library, shrinking the file size and improving debugging (#123)
- Improve an error message (#115)
- Update Lodash to 4.17.14 (#124)
- Add support for beta of batch record operations (#86, #88, #92)
- Add backoff when rate limited (#110)
- Shrink browser build by removing
assert
module (#101) - Fix bug when calling some functions with callbacks (#103)
- Make API key less likely to be logged (#82, #83)
- Update
lodash
dependency (#80)
- Remove
async
dependency (#76) - Shrink size of browser build by about half (#76)
- Support dotenv for loading config (#59)
- Improve error message is select() is called without args (#70)
- Update dependencies (#73)
- Fix crash when specifying sort direction or cellFormat options
- Upgrade
lodash
package from 2.4.1 to 4.17.10
- Upgrade
request
package to 2.85.0
- Fix User-Agent header warnings when running Chrome (#52)
- Fix JSON imports so webpack can bundle
- Support for the
cellFormat
,userLocale
, andtimeZone
parameters
- Improved handling of unexpected server errors
- Exports AirtableError class as Airtable.Error for use in
instanceof
checks.
-
Optional Promise-based API: if you call any method that takes a callback without providing a callback, it will return a Promise:
table.find(recordId).then(record => { // Process record. }).catch(err => { // Handle error. })
-
Added an
all()
method for automatically fetching all records across all pages when selecting from a table:table.select({view: 'Main View'}).all().then(records => { // records array will contain every record in Main View. }).catch(err => { // Handle error. })
-
The default timeout for requests is increased from 30 seconds to 5 minutes. You can set a custom timeout by passing
requestTimeout
in milliseconds to the Airtable constructor or Airtable.configure:Airtable.configure({requestTimeout: 30 * 1000}); // 30 seconds
- airtable.browser.js no longer implicitly depends on jQuery being available on the page.
- Upgraded dependency: request 2.79.0 (removes tough-cookie vulnerability warning).
- Fixed issue that prevented callback from being called with error when running in the browser and servers are unreachable.
- Upgraded dependencies: async 1.5.2, request 2.73.0
-
Fixed a bug that prevented records returned from select queries from being deleted.
-
Fixed the demo page (test/test_files/index.html)
-
Added
Table.select
for querying records in a table. It takes the following optional parameters for sorting and filtering records:fields: only include the specified fields in results. filterByFormula: only include records that satisfy the formula. maxRecords: at most, return this many records in total. pageSize: at most, return this many records in each request. sort: specify fields to use for sorting the records. view: return records from a specific view, using the view order.
-
Deprecated
Table.list
andTable.forEach
. UseTable.select
instead.
- Renamed Application to Base. This is a breaking change for the client, no changes in the API.
- Added ability to listRecords according to view (filters and order) and sort by a field.