airtable
Version:
The official Airtable JavaScript library.
73 lines • 2.94 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var base_1 = __importDefault(require("./base"));
var record_1 = __importDefault(require("./record"));
var table_1 = __importDefault(require("./table"));
var airtable_error_1 = __importDefault(require("./airtable_error"));
var Airtable = /** @class */ (function () {
function Airtable(opts) {
if (opts === void 0) { opts = {}; }
var defaultConfig = Airtable.default_config();
var apiVersion = opts.apiVersion || Airtable.apiVersion || defaultConfig.apiVersion;
Object.defineProperties(this, {
_apiKey: {
value: opts.apiKey || Airtable.apiKey || defaultConfig.apiKey,
},
_apiVersion: {
value: apiVersion,
},
_apiVersionMajor: {
value: apiVersion.split('.')[0],
},
_customHeaders: {
value: opts.customHeaders || {},
},
_endpointUrl: {
value: opts.endpointUrl || Airtable.endpointUrl || defaultConfig.endpointUrl,
},
_noRetryIfRateLimited: {
value: opts.noRetryIfRateLimited ||
Airtable.noRetryIfRateLimited ||
defaultConfig.noRetryIfRateLimited,
},
_requestTimeout: {
value: opts.requestTimeout || Airtable.requestTimeout || defaultConfig.requestTimeout,
},
});
if (!this._apiKey) {
throw new Error('An API key is required to connect to Airtable');
}
}
Airtable.prototype.base = function (baseId) {
return base_1.default.createFunctor(this, baseId);
};
Airtable.default_config = function () {
return {
endpointUrl: process.env.AIRTABLE_ENDPOINT_URL || 'https://api.airtable.com',
apiVersion: '0.1.0',
apiKey: process.env.AIRTABLE_API_KEY,
noRetryIfRateLimited: false,
requestTimeout: 300 * 1000,
};
};
Airtable.configure = function (_a) {
var apiKey = _a.apiKey, endpointUrl = _a.endpointUrl, apiVersion = _a.apiVersion, noRetryIfRateLimited = _a.noRetryIfRateLimited, requestTimeout = _a.requestTimeout;
Airtable.apiKey = apiKey;
Airtable.endpointUrl = endpointUrl;
Airtable.apiVersion = apiVersion;
Airtable.noRetryIfRateLimited = noRetryIfRateLimited;
Airtable.requestTimeout = requestTimeout;
};
Airtable.base = function (baseId) {
return new Airtable().base(baseId);
};
Airtable.Base = base_1.default;
Airtable.Record = record_1.default;
Airtable.Table = table_1.default;
Airtable.Error = airtable_error_1.default;
return Airtable;
}());
module.exports = Airtable;
//# sourceMappingURL=airtable.js.map