azure-table-storage-async

1.3.0 • Public • Published

azure-table-storage-async

Azure table storage API's that return promises to support async/await syntax. This package was born primarily out of my desire to have an Azure Storage API for TableStorage that supported async/await syntax to avoid callback hell.

Getting Started

Install

npm install azure-table-storage-async

Usage

var azureTS = require('azure-table-storage-async');

Many of the methods provided in the azure-storage npm package have been wrapped in this package to provide methods that may be called using async/await syntax. Many methods are named just like their counterparts in azure-storage and in general they simply execute that method and return a promise (exceptions are noted). There are additional methods provided that build upon the azure-storage methods for additional capabilities.

Methods

queryAllAsync(tableSvc, tableName)

Queries all entities from a table. This is done by calling queryEntitiesAsync repeatedly with no partition until no continuation token is returned.

Parameter Description
tableSvc table service object created using azure-storage.createTableService
tableName name of the table to query

Example

var azure = require('azure-storage');
var azureTS = require('azure-table-storage-async');
var accountname = 'Your azure account name goes here';
var accountkey = 'Your azure account key goes here';
var mytable = 'The table you want to query goes here';
var tableSvc = azure.createTableService(accountname, accountkey);
const result = await azureTS.queryAllAsync(tableSvc, mytable);
// loop through results log the partition key and rowkey
for (let r of result) {
  console.log('PartitionKey = ' + r.PartitionKey._ + ' RowKey = ' + r.RowKey._);
}

queryPartitionAsync(tableSvc, tableName, partitionName)

Queries all entities from a partition. This is done by calling queryEntitiesAsync repeatedly for the specified partition until no continuation token is returned.

Parameter Description
tableSvc table service object created using azure-storage.createTableService
tableName name of the table to query
partitionName name of the partition to be queried

Example

var azure = require('azure-storage');
var azureTS = require('azure-table-storage-async');
var accountname = 'Your azure account name goes here';
var accountkey = 'Your azure account key goes here';
var mytable = 'The table you want to query goes here';
var mypartition = 'The PartitionKey you want to query goes here';
var tableSvc = azure.createTableService(accountname, accountkey);
const result = await azureTS.queryPartitionAsync(tableSvc, mytable, mypartition);
// loop through results log the row key
for (let r of result) {
  console.log('RowKey = ' + r.RowKey._);
}

queryCustomAsync(tableSvc, tableName, query)

Executes a custom query defined in an azure-storage TableQuery. This is done by calling queryEntitiesAsync repeatedly wiht the specified query until no continuation token is returned.

Parameter Description
tableSvc table service object created using azure-storage.createTableService
tableName name of the table to query
query an azure table query object created with a custom where clause, etc.

Example

var azure = require('azure-storage');
var azureTS = require('azure-table-storage-async');
var accountname = 'Your azure account name goes here';
var accountkey = 'Your azure account key goes here';
var mytable = 'The table you want to query goes here';
var mypartition = 'The PartitionKey you want to query goes here';
var myattr1 = 'The value of attr1 to look for goes here';
var tableSvc = azure.createTableService(accountname, accountkey);
// create a query to get entities from partition mypartition with attr1 = myattr1
const query = new azure.TableQuery().where('PartitionKey eq ? and attr1 == ?)', mypartition, myattr1);
const result = await azureTS.queryPartitionAsync(tableSvc, mytable, mypartition);
// loop through results log the row key and attr1
for (let r of result) {
  console.log('RowKey = ' + r.RowKey._ + ' attr1 = ' + r.attr1._);
}

queryEntitiesAsync(tableSvc, table, query, cont)

Executes the azure-storage queryEntities method.

Parameter Description
tableSvc table service object created using azure-storage.createTableService
table name of the table to query
query query object
cont continuation token

retrieveEntityAsync(tableSvc, table, partition, rowkey)

Executes the azure-storage retrieveEntity method

Parameter Description
tableSvc table service object created using azure-storage.createTableService
table name of the table to query
partition name of the partition to query
rowkey RowKey of entity to be queried

Example

var azure = require('azure-storage');
var azureTS = require('azure-table-storage-async');
var accountname = 'Your azure account name goes here';
var accountkey = 'Your azure account key goes here';
var mytable = 'The table you want to query goes here';
var mypartition = 'The PartitionKey you want to query goes here';
var myrowkey = 'The RowKey you want to query goes here';
var tableSvc = azure.createTableService(accountname, accountkey);
const result = await azureTS.retrieveEntityAsync(tableSvc, mytable, mypartition, myrowkey);
// log attr1 from entity (any attribute from the entity)
console.log('attr1 = ' + result.attr1._);

insertEntityAsync(tableSvc, table, entity)

Executes the azure-storage insertEntity method

Parameter Description
tableSvc table service object created using azure-storage.createTableService
table name of the table to insert into
entity the entity to be inserted

Example

var azure = require('azure-storage');
var azureTS = require('azure-table-storage-async');
var accountname = 'Your azure account name goes here';
var accountkey = 'Your azure account key goes here';
var mytable = 'The table you want to query goes here';
var mypartition = 'The PartitionKey goes here';
var myrowkey = 'The RowKey goes here';
var myattr1 = 'The value of attr1 goes here';
var tableSvc = azure.createTableService(accountname, accountkey);
var entGen = azure.TableUtilities.entityGenerator;
var myentity = {
      PartitionKey: entGen.String(mypartition),
      RowKey: entGen.String(myrowkey),
      attr1: entGen.String(myattr1)
    };
await azureTS.insertEntityAsync(tableSvc, mytable, myentity);

insertOrReplaceEntityAsync(tableSvc, table, entity)

Executes the azure-storage insertOrReplaceEntity method

Parameter Description
tableSvc table service object created using azure-storage.createTableService
table name of the table to insert/replace in
entity the entity to be inserted or replaced

Example

var azure = require('azure-storage');
var azureTS = require('azure-table-storage-async');
var accountname = 'Your azure account name goes here';
var accountkey = 'Your azure account key goes here';
var mytable = 'The table you want to query goes here';
var mypartition = 'The PartitionKey goes here';
var myrowkey = 'The RowKey goes here';
var myattr1 = 'The value of attr1 goes here';
var tableSvc = azure.createTableService(accountname, accountkey);
var entGen = azure.TableUtilities.entityGenerator;
var myentity = {
      PartitionKey: entGen.String(mypartition),
      RowKey: entGen.String(myrowkey),
      attr1: entGen.String(myattr1)
    };
await azureTS.insertOrReplaceEntityAsync(tableSvc, mytable, myentity);

replaceEntityAsync(tableSvc, table, entity)

Executes the azure-storage replaceEntity method

Parameter Description
tableSvc table service object created using azure-storage.createTableService
table name of the table to update
entity the entity to be replaced

Example

var azure = require('azure-storage');
var azureTS = require('azure-table-storage-async');
var accountname = 'Your azure account name goes here';
var accountkey = 'Your azure account key goes here';
var mytable = 'The table you want to query goes here';
var mypartition = 'The PartitionKey goes here';
var myrowkey = 'The RowKey goes here';
var myattr1 = 'The value of attr1 goes here';
var tableSvc = azure.createTableService(accountname, accountkey);
var entGen = azure.TableUtilities.entityGenerator;
var myentity = {
      PartitionKey: entGen.String(mypartition),
      RowKey: entGen.String(myrowkey),
      attr1: entGen.String(myattr1)
    };
await azureTS.replaceEntityAsync(tableSvc, mytable, myentity);

deleteEntityAsync(tableSvc, table, entity)

Executes the azure-storage deleteEntity method

Parameter Description
tableSvc table service object created using azure-storage.createTableService
table name of the table to delete from
entity the entity to be deleted

Example

var azure = require('azure-storage');
var azureTS = require('azure-table-storage-async');
var accountname = 'Your azure account name goes here';
var accountkey = 'Your azure account key goes here';
var mytable = 'The table you want to query goes here';
var mypartition = 'The PartitionKey goes here';
var myrowkey = 'The RowKey goes here';
var tableSvc = azure.createTableService(accountname, accountkey);
var entGen = azure.TableUtilities.entityGenerator;
var myentity = {
      PartitionKey: entGen.String(mypartition),
      RowKey: entGen.String(myrowkey)
    };
await azureTS.deleteEntityAsync(tableSvc, mytable, myentity);

createTableAsync(tableSvc, table)

Executes the azure-storage createTable method

Parameter Description
tableSvc table service object created using azure-storage.createTableService
table name of the table to create

Example

var azure = require('azure-storage');
var azureTS = require('azure-table-storage-async');
var accountname = 'Your azure account name goes here';
var accountkey = 'Your azure account key goes here';
var mytable = 'The table you want to query goes here';
var tableSvc = azure.createTableService(accountname, accountkey);
await azureTS.createTableAsync(tableSvc, mytable);

createTableIfNotExistsAsync(tableSvc, table)

Executes the azure-storage createTableIfNotExists method

Parameter Description
tableSvc table service object created using azure-storage.createTableService
table name of the table to check existence of and create if necessary

Example

var azure = require('azure-storage');
var azureTS = require('azure-table-storage-async');
var accountname = 'Your azure account name goes here';
var accountkey = 'Your azure account key goes here';
var mytable = 'The table you want to query goes here';
var tableSvc = azure.createTableService(accountname, accountkey);
await azureTS.createTableIfNotExistsAsync(tableSvc, mytable);

doesTableExistAsync(tableSvc, table)

Executes the azure-storage doesTableExist method

Parameter Description
tableSvc table service object created using azure-storage.createTableService
table name of the table to check existence of

Example

var azure = require('azure-storage');
var azureTS = require('azure-table-storage-async');
var accountname = 'Your azure account name goes here';
var accountkey = 'Your azure account key goes here';
var mytable = 'The table you want to query goes here';
var tableSvc = azure.createTableService(accountname, accountkey);
await azureTS.doesTableExistAsync(tableSvc, mytable);

executeBatchAsync(tableSvc, table, batch)

Executes the azure-storage executeBatch method

Parameter Description
tableSvc table service object created using azure-storage.createTableService
table name of the table the batch will operate against
batch a batch object created using azure-storage.TableBatch

batchMerge(tableSvc, table, list)

Perform a batch merge on an array of entites. The array may be as large as you would like as it will create batches of 100 as the azure-storage batch operations only support 100 entites at a time.

Parameter Description
tableSvc table service object created using azure-storage.createTableService
table name of the table the batch will operate against
list an array of entities to be merged into the table

Example

var azure = require('azure-storage');
var azureTS = require('azure-table-storage-async');
var accountname = 'Your azure account name goes here';
var accountkey = 'Your azure account key goes here';
var mytable = 'The table you want to query goes here';
var mypartition = 'The PartitionKey goes here';
var tableSvc = azure.createTableService(accountname, accountkey);
var entGen = azure.TableUtilities.entityGenerator;
// create 10 records to insert/merge in a batch
var mylist = [];
for (var i=0; i<10; i++) {
  mylist.push({
    PartitionKey: entGen.String(mypartition),
    RowKey: entGen.String(i)
  });
};
await azureTS.batchMerge(tableSvc, mytable, mylist);

batchDelete(tableSvc, table, list)

Perform a batch delete on an array of entites. The array may be as large as you would like as it will create batches of 100 as the azure-storage batch operations only support 100 entites at a time.

Parameter Description
tableSvc table service object created using azure-storage.createTableService
table name of the table the batch will operate against
list an array of entities to be deleted from the table

Example

var azure = require('azure-storage');
var azureTS = require('azure-table-storage-async');
var accountname = 'Your azure account name goes here';
var accountkey = 'Your azure account key goes here';
var mytable = 'The table you want to query goes here';
var mypartition = 'The PartitionKey goes here';
var tableSvc = azure.createTableService(accountname, accountkey);
// query a partition and then delete all records queried in a batch
var result = await azureTS.queryPartitionAsync(tableSvc, mytable, mypartition);
await azureTS.batchDelete(tableSvc, mytable, result);

Package Sidebar

Install

npm i azure-table-storage-async

Weekly Downloads

49

Version

1.3.0

License

MIT

Unpacked Size

23.7 kB

Total Files

4

Last publish

Collaborators

  • halioris