- Add
recordMetadata
param totable.select(params)
in order to fetch comment counts, available asrecord.commentCount
.
- Remove behavior of including
AIRTABLE_API_KEY
in airtable.browser.js via envify - Add web worker compatibility
- Update select() and list() to support to use POST endpoint when GET url length would exceed Airtable's 16k character limit
- Update select() and list() to explicitly choose to use GET or POST endpoint via new 'method' arg
- Add support for returnFieldsByFieldId param.
- Add a UMD build to use for browser-targeted builds. This fixes an issue where other apps that use airtable.js as a dependency were bundling code that expects to run in a node environment when building for a browser enviornment.
- Bump NPM package versions (#276, #281, #293, #296, #297, #298)
- Bump NPM package versions (#250, #253, #266, #267, #268)
- Add support for custom headers
- Allow requestTimeout to be configured like other AirtableOptions
- Fix type warnings
- Fix error handler in updating an array (#223)
- Fix binding fetch to window (#235)
- Update lodash and node-fetch dependencies
- Widen @types/node dependency
- Convert to TypeScript. The project now comes with .d.ts typescript definition files.
- Remove Promise polyfill (#195)
- Replace deprecated
request
library withnode-fetch
(#191) - Increase test coverage of library to 100% (#190, #188, #187, #186, #185, #184, #183 #182, #181, #178, #177, #176, #175)
- Enable CI (#173, #190)
- Improve README (#164)
- Remove support for Safari 10.0
- Require Node 8 or above (down from Node 10)
- Require Node 10 or above
- Add Promise polyfill (#147)
- Remove
allowUnauthorizedSsl
option
- Properly reject unauthorized SSL certificates (#140)
- Minor tweaks to formatting in README (#136)
- Update Lodash to 4.17.15 (#141)
- 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.