airtable-plusplus
Advanced tools
@@ -1,3 +0,3 @@ | ||
| import type Base from 'airtable/lib/base'; | ||
| import type { QueryParams } from 'airtable/lib/query_params'; | ||
| import type Table from 'airtable/lib/table'; | ||
| /** | ||
@@ -14,3 +14,3 @@ * Module configuration object | ||
| */ | ||
| baseID: string; | ||
| baseId: string; | ||
| /** | ||
@@ -52,4 +52,3 @@ * The name fo the table you want to interact with. **Not the ID, the name** | ||
| declare class AirtablePlusPlus<IFields extends Record<string, unknown>> { | ||
| base: Base; | ||
| private config; | ||
| table: Table; | ||
| /** | ||
@@ -81,3 +80,3 @@ * Creates an AirtablePlusPlus instance, representing a table. | ||
| */ | ||
| create(data: Partial<Omit<IFields, 'id'>>, config?: string | Partial<AirtablePlusPlusOptions>): Promise<AirtablePlusPlusRecord<IFields>>; | ||
| create(data: Partial<IFields>): Promise<AirtablePlusPlusRecord<IFields>>; | ||
| /** | ||
@@ -93,7 +92,6 @@ * Read all data from a table. Can be passed api options | ||
| * | ||
| * @param params - If string: sets Airtable table name, If object: Airtable api parameters | ||
| * @param config - Optional configuration override | ||
| * @param params Airtable api parameters | ||
| * @returns Array of record objects | ||
| */ | ||
| read(params?: QueryParams | string, config?: AirtablePlusPlusOptions | string): Promise<AirtablePlusPlusRecord<IFields>[]>; | ||
| read(params?: QueryParams): Promise<AirtablePlusPlusRecord<IFields>[]>; | ||
| /** | ||
@@ -106,6 +104,5 @@ * Get data for a specific row on Airtable | ||
| * @param rowID - Airtable Row ID to query data from | ||
| * @param config - Optional config override | ||
| * @returns Record object | ||
| */ | ||
| find(rowID: string, config?: Partial<AirtablePlusPlusOptions>): Promise<AirtablePlusPlusRecord<IFields>>; | ||
| find(rowID: string): Promise<AirtablePlusPlusRecord<IFields>>; | ||
| /** | ||
@@ -122,6 +119,5 @@ * Updates a row in Airtable. Unlike the replace method anything | ||
| * @param data - row data with keys that you'd like to update | ||
| * @param config - Optional config override | ||
| * @returns Array of record objects | ||
| */ | ||
| update(rowID: string, data: Partial<IFields>, config?: Partial<AirtablePlusPlusOptions>): Promise<AirtablePlusPlusRecord<IFields>>; | ||
| update(rowID: string, data: Partial<IFields>): Promise<AirtablePlusPlusRecord<IFields>>; | ||
| /** | ||
@@ -136,6 +132,5 @@ * Performs a bulk update based on a search criteria. The criteria must | ||
| * @param data - Data to update if where condition is met | ||
| * @param config - Optional configuration override | ||
| * @returns Array of record objects | ||
| */ | ||
| updateWhere(where: string, data: Partial<IFields>, config: Partial<AirtablePlusPlusOptions>): Promise<Promise<AirtablePlusPlusRecord<IFields>>[]>; | ||
| updateWhere(where: string, data: Partial<IFields>): Promise<Promise<AirtablePlusPlusRecord<IFields>>[]>; | ||
| /** | ||
@@ -151,6 +146,5 @@ * Replaces a given row in airtable. Similar to the update function, | ||
| * @param data - row data with keys that you'd like to replace | ||
| * @param config - Optional config override | ||
| * @returns Record object | ||
| */ | ||
| replace(rowID: string, data: IFields, config?: Partial<AirtablePlusPlusOptions>): Promise<AirtablePlusPlusRecord<IFields>>; | ||
| replace(rowID: string, data: IFields): Promise<AirtablePlusPlusRecord<IFields>>; | ||
| /** | ||
@@ -165,6 +159,5 @@ * Performs a bulk replace based on a given search criteria. The criteria must | ||
| * @param data - Data to replace if where condition is met | ||
| * @param config - Optional configuration override | ||
| * @returns Array of record objects | ||
| */ | ||
| replaceWhere(where: string, data: IFields, config: Partial<AirtablePlusPlusOptions>): Promise<Promise<AirtablePlusPlusRecord<IFields>>[]>; | ||
| replaceWhere(where: string, data: IFields): Promise<Promise<AirtablePlusPlusRecord<IFields>>[]>; | ||
| /** | ||
@@ -177,10 +170,5 @@ * Deletes a row in the provided table | ||
| * @param rowID - Airtable Row ID to delete | ||
| * @param {Object} data - row data with keys that you'd like to delete | ||
| * @param {Object} [config] - Optional config override | ||
| * @param {string} [config.tableName] - Airtable table name | ||
| * @param {boolean} [config.complex] - Flag to return full Airtable record object with helper methods attached | ||
| * @param {function} [config.base] - Airtable sdk base instance | ||
| * @returns {Promise} Record object | ||
| * @returns Record object | ||
| */ | ||
| delete(rowID: string | string[], config?: Partial<AirtablePlusPlusOptions>): Promise<{ | ||
| delete(rowID: string | string[]): Promise<{ | ||
| id: string; | ||
@@ -201,14 +189,7 @@ fields: {}; | ||
| * | ||
| * @param {string} where - filterByFormula string to filter table data by | ||
| * @param {Object} data - Data to delete if where condition is met | ||
| * @param {Object} [config] - Optional configuration override | ||
| * @param {string} [config.baseID] - Airtable base ID | ||
| * @param {string} [config.tableName] - Airtable table name | ||
| * @param {string} [config.camelCase] - Converts column name object keys to camel case in JSON response | ||
| * @param {string} [config.concurrency] - Sets concurrency for async iteration functions | ||
| * @param {boolean} [config.complex] - Flag to return full Airtable record object with helper methods attached | ||
| * @param {function} [config.transform] - Optional global transform function for reads | ||
| * @param where - filterByFormula string to filter table data by | ||
| * @param data - Data to delete if where condition is met | ||
| * @returns {Promise} Array of record objects | ||
| */ | ||
| deleteWhere(where: string, config?: Partial<AirtablePlusPlusOptions>): Promise<Promise<{ | ||
| deleteWhere(where: string): Promise<Promise<{ | ||
| id: string; | ||
@@ -229,22 +210,8 @@ fields: {}; | ||
| * | ||
| * @param {string} key - Primary key to compare value in passed in data object with dest row | ||
| * @param {Object} data - Updated data | ||
| * @param {Object} [config] - Optional config override | ||
| * @param {string} [config.tableName] - Airtable table name | ||
| * @param {boolean} [config.complex] - Flag to return full Airtable record object with helper methods attached | ||
| * @param {string} [config.baseID] - Airtable base id | ||
| * @returns {Promise} Array of record objects | ||
| * @param key - Primary key to compare value in passed in data object with dest row | ||
| * @param data - Updated data | ||
| * @returns Array of record objects | ||
| */ | ||
| upsert(key: string, data: Partial<IFields>, config?: Partial<AirtablePlusPlusOptions>): Promise<AirtablePlusPlusRecord<IFields> | Promise<AirtablePlusPlusRecord<IFields>>[]>; | ||
| upsert(key: string, data: Partial<IFields>): Promise<AirtablePlusPlusRecord<IFields> | Promise<AirtablePlusPlusRecord<IFields>>[]>; | ||
| /** | ||
| * Performs validations on object for current function run | ||
| * Allows the package user to pass in an override config | ||
| * object to change table name, apiKey, etc. at any time | ||
| * | ||
| * @ignore | ||
| * @param {Object} config - override config object | ||
| * @returns {Object} - local configuration object | ||
| */ | ||
| protected _mergeConfig(config: string | Partial<AirtablePlusPlusOptions>): AirtablePlusPlusOptions; | ||
| /** | ||
| * Determines if a Column name is multiple words, which results in being | ||
@@ -256,4 +223,4 @@ * wrapped in curly braces. Useful for Airtable filterByFormula queries. | ||
| * @ignore | ||
| * @param {string} columnName - Airtable Column name being used in a filter | ||
| * @returns {string} - formatted column name | ||
| * @param columnName - Airtable Column name being used in a filter | ||
| * @returns formatted column name | ||
| */ | ||
@@ -260,0 +227,0 @@ protected _formatColumnFilter(columnName?: string): string; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"AirtablePlusPlus.d.ts","sourceRoot":"","sources":["../src/AirtablePlusPlus.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"AirtablePlusPlus.d.ts","sourceRoot":"","sources":["../src/AirtablePlusPlus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB,CAAC,SAAS;IAChD;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACpB;AACD;;;GAGG;AACH,cAAM,gBAAgB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,KAAK,EAAE,KAAK,CAAC;IACpB;;;;;;;;;;;;OAYG;gBACgB,MAAM,EAAE,uBAAuB;IAIlD;;;;;;;;;;;OAWG;IACU,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;IAO1C;;;;;;;;;;;;OAYG;IACU,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW;IActC;;;;;;;;OAQG;IACU,IAAI,CAAC,KAAK,EAAE,MAAM;IAK/B;;;;;;;;;;;;OAYG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;IAKzD;;;;;;;;;;OAUG;IACU,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;IAK9D;;;;;;;;;;;OAWG;IACU,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;IAKjD;;;;;;;;;;OAUG;IACU,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;IAKtD;;;;;;;;OAQG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;;;;;;;;;IAS5C;;;;;;;;;;OAUG;IACU,WAAW,CAAC,KAAK,EAAE,MAAM;;;;;;;;;IAQtC;;;;;;;;;;OAUG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;IAQvD;;;;;;;;;OASG;IACH,SAAS,CAAC,mBAAmB,CAAC,UAAU,SAAK;CAI7C;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"} |
+38
-104
@@ -25,3 +25,3 @@ "use strict"; | ||
| constructor(config) { | ||
| Object.defineProperty(this, "base", { | ||
| Object.defineProperty(this, "table", { | ||
| enumerable: true, | ||
@@ -32,10 +32,3 @@ configurable: true, | ||
| }); | ||
| Object.defineProperty(this, "config", { | ||
| enumerable: true, | ||
| configurable: true, | ||
| writable: true, | ||
| value: void 0 | ||
| }); | ||
| this.config = config; | ||
| this.base = new airtable_1.default({ apiKey: config.apiKey }).base(config.baseID)._base; | ||
| this.table = new airtable_1.default({ apiKey: config.apiKey }).base(config.baseId)(config.tableName); | ||
| } | ||
@@ -54,7 +47,6 @@ /** | ||
| */ | ||
| async create(data, config) { | ||
| async create(data) { | ||
| if (!data) | ||
| throw new Error('No data provided'); | ||
| const { tableName } = this._mergeConfig(config !== null && config !== void 0 ? config : {}); | ||
| const record = await this.base.table(tableName).create(data); | ||
| const record = await this.table.create(data); | ||
| return record._rawJson; | ||
@@ -72,15 +64,8 @@ } | ||
| * | ||
| * @param params - If string: sets Airtable table name, If object: Airtable api parameters | ||
| * @param config - Optional configuration override | ||
| * @param params Airtable api parameters | ||
| * @returns Array of record objects | ||
| */ | ||
| async read(params, config) { | ||
| let { tableName } = this._mergeConfig(config !== null && config !== void 0 ? config : {}); | ||
| if (typeof params === 'string') { | ||
| tableName = params; | ||
| params = {}; | ||
| } | ||
| async read(params) { | ||
| let data = []; | ||
| await this.base | ||
| .table(tableName) | ||
| await this.table | ||
| .select(params) | ||
@@ -90,6 +75,5 @@ .eachPage((records, next) => { | ||
| next(); | ||
| }, (err) => { | ||
| if (err) | ||
| throw err; | ||
| data = data.filter((rows) => Boolean(rows)); | ||
| }) | ||
| .catch((err) => { | ||
| throw err; | ||
| }); | ||
@@ -105,8 +89,6 @@ return data; | ||
| * @param rowID - Airtable Row ID to query data from | ||
| * @param config - Optional config override | ||
| * @returns Record object | ||
| */ | ||
| async find(rowID, config) { | ||
| const { tableName } = this._mergeConfig(config !== null && config !== void 0 ? config : {}); | ||
| const record = await this.base.table(tableName).find(rowID); | ||
| async find(rowID) { | ||
| const record = await this.table.find(rowID); | ||
| return record._rawJson; | ||
@@ -125,8 +107,6 @@ } | ||
| * @param data - row data with keys that you'd like to update | ||
| * @param config - Optional config override | ||
| * @returns Array of record objects | ||
| */ | ||
| async update(rowID, data, config) { | ||
| const { tableName } = this._mergeConfig(config !== null && config !== void 0 ? config : {}); | ||
| const record = await this.base.table(tableName).update(rowID, data); | ||
| async update(rowID, data) { | ||
| const record = await this.table.update(rowID, data); | ||
| return record._rawJson; | ||
@@ -143,9 +123,7 @@ } | ||
| * @param data - Data to update if where condition is met | ||
| * @param config - Optional configuration override | ||
| * @returns Array of record objects | ||
| */ | ||
| async updateWhere(where, data, config) { | ||
| const cfg = this._mergeConfig(config !== null && config !== void 0 ? config : {}); | ||
| const rows = await this.read({ filterByFormula: where }, cfg); | ||
| return rows.map((row) => this.update(row.id, data, cfg)); | ||
| async updateWhere(where, data) { | ||
| const rows = await this.read({ filterByFormula: where }); | ||
| return rows.map((row) => this.update(row.id, data)); | ||
| } | ||
@@ -162,8 +140,6 @@ /** | ||
| * @param data - row data with keys that you'd like to replace | ||
| * @param config - Optional config override | ||
| * @returns Record object | ||
| */ | ||
| async replace(rowID, data, config) { | ||
| const { tableName } = this._mergeConfig(config !== null && config !== void 0 ? config : {}); | ||
| const record = await this.base.table(tableName).replace(rowID, data); | ||
| async replace(rowID, data) { | ||
| const record = await this.table.replace(rowID, data); | ||
| return record._rawJson; | ||
@@ -180,9 +156,7 @@ } | ||
| * @param data - Data to replace if where condition is met | ||
| * @param config - Optional configuration override | ||
| * @returns Array of record objects | ||
| */ | ||
| async replaceWhere(where, data, config) { | ||
| const cfg = this._mergeConfig(config); | ||
| const rows = await this.read({ filterByFormula: where }, cfg); | ||
| return rows.map((row) => this.replace(row.id, data, cfg)); | ||
| async replaceWhere(where, data) { | ||
| const rows = await this.read({ filterByFormula: where }); | ||
| return rows.map((row) => this.replace(row.id, data)); | ||
| } | ||
@@ -196,13 +170,7 @@ /** | ||
| * @param rowID - Airtable Row ID to delete | ||
| * @param {Object} data - row data with keys that you'd like to delete | ||
| * @param {Object} [config] - Optional config override | ||
| * @param {string} [config.tableName] - Airtable table name | ||
| * @param {boolean} [config.complex] - Flag to return full Airtable record object with helper methods attached | ||
| * @param {function} [config.base] - Airtable sdk base instance | ||
| * @returns {Promise} Record object | ||
| * @returns Record object | ||
| */ | ||
| async delete(rowID, config) { | ||
| const { tableName } = this._mergeConfig(config !== null && config !== void 0 ? config : {}); | ||
| async delete(rowID) { | ||
| // even if its a single string, it will be fine. | ||
| const record = await this.base.table(tableName).destroy(rowID); | ||
| const record = await this.table.destroy(rowID); | ||
| return Array.isArray(record) | ||
@@ -219,18 +187,10 @@ ? record.map((rec) => ({ id: rec.id, fields: {}, createdTime: null })) | ||
| * | ||
| * @param {string} where - filterByFormula string to filter table data by | ||
| * @param {Object} data - Data to delete if where condition is met | ||
| * @param {Object} [config] - Optional configuration override | ||
| * @param {string} [config.baseID] - Airtable base ID | ||
| * @param {string} [config.tableName] - Airtable table name | ||
| * @param {string} [config.camelCase] - Converts column name object keys to camel case in JSON response | ||
| * @param {string} [config.concurrency] - Sets concurrency for async iteration functions | ||
| * @param {boolean} [config.complex] - Flag to return full Airtable record object with helper methods attached | ||
| * @param {function} [config.transform] - Optional global transform function for reads | ||
| * @param where - filterByFormula string to filter table data by | ||
| * @param data - Data to delete if where condition is met | ||
| * @returns {Promise} Array of record objects | ||
| */ | ||
| async deleteWhere(where, config) { | ||
| const cfg = this._mergeConfig(config !== null && config !== void 0 ? config : {}); | ||
| const rows = (await this.read({ filterByFormula: where }, cfg)); | ||
| async deleteWhere(where) { | ||
| const rows = (await this.read({ filterByFormula: where })); | ||
| return rows.map((row) => { | ||
| return this.delete(row.id, cfg); | ||
| return this.delete(row.id); | ||
| }); | ||
@@ -245,39 +205,13 @@ } | ||
| * | ||
| * @param {string} key - Primary key to compare value in passed in data object with dest row | ||
| * @param {Object} data - Updated data | ||
| * @param {Object} [config] - Optional config override | ||
| * @param {string} [config.tableName] - Airtable table name | ||
| * @param {boolean} [config.complex] - Flag to return full Airtable record object with helper methods attached | ||
| * @param {string} [config.baseID] - Airtable base id | ||
| * @returns {Promise} Array of record objects | ||
| * @param key - Primary key to compare value in passed in data object with dest row | ||
| * @param data - Updated data | ||
| * @returns Array of record objects | ||
| */ | ||
| async upsert(key, data, config) { | ||
| async upsert(key, data) { | ||
| if (!key || !data) | ||
| throw new Error('Key and data are required, but not provided'); | ||
| const cfg = this._mergeConfig(config !== null && config !== void 0 ? config : {}); | ||
| const rows = (await this.read({ filterByFormula: `${this._formatColumnFilter(key)} = ${data[key]}` }, cfg)); | ||
| return rows.length === 0 ? this.create(data, cfg) : rows.map((row) => this.update(row.id, data, cfg)); | ||
| const rows = (await this.read({ filterByFormula: `${this._formatColumnFilter(key)} = ${data[key]}` })); | ||
| return rows.length === 0 ? this.create(data) : rows.map((row) => this.update(row.id, data)); | ||
| } | ||
| /** | ||
| * Performs validations on object for current function run | ||
| * Allows the package user to pass in an override config | ||
| * object to change table name, apiKey, etc. at any time | ||
| * | ||
| * @ignore | ||
| * @param {Object} config - override config object | ||
| * @returns {Object} - local configuration object | ||
| */ | ||
| _mergeConfig(config) { | ||
| if (!config) | ||
| return this.config; | ||
| let override = {}; | ||
| if (typeof config === 'string') | ||
| override.tableName = config; | ||
| if (typeof config === 'object') { | ||
| override = config; | ||
| } | ||
| const cfg = { ...this.config, ...override }; | ||
| return cfg; | ||
| } | ||
| /** | ||
| * Determines if a Column name is multiple words, which results in being | ||
@@ -289,4 +223,4 @@ * wrapped in curly braces. Useful for Airtable filterByFormula queries. | ||
| * @ignore | ||
| * @param {string} columnName - Airtable Column name being used in a filter | ||
| * @returns {string} - formatted column name | ||
| * @param columnName - Airtable Column name being used in a filter | ||
| * @returns formatted column name | ||
| */ | ||
@@ -293,0 +227,0 @@ _formatColumnFilter(columnName = '') { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"AirtablePlusPlus.js","sourceRoot":"","sources":["../src/AirtablePlusPlus.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"AirtablePlusPlus.js","sourceRoot":"","sources":["../src/AirtablePlusPlus.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "airtable-plusplus", | ||
| "version": "0.1.0", | ||
| "version": "0.2.0", | ||
| "description": "A TypeScript fork of `airtable-plus`, the Airtable Node library designed for async/await.", | ||
@@ -5,0 +5,0 @@ "main": "./dist/AirtablePlusPlus.js", |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
0
-100%24677
-26.63%434
-18.57%