v0.28.0
Updating
$ npm install [email protected]
⚠️ Breaking Changes
BigQuery: table.insert
method no longer generated an insertId
for each row
Previously, when inserting a row into a table, we generated an insertId
automatically as a way to prevent duplication of entries. This value is not always necessary and can cause unintended side effects. A better option was found (thanks @vladmiller!), which is not defaulting a value, but providing a way to set an insertId
manually.
Note that your code won't break with this change; only what is happening behind the scenes. You likely won't notice a difference, but it might be worth reading #1066 and #1068 to be certain.
Before
var row = {
INSTNM: 'Motion Picture Institute of Michigan',
CITY: 'Troy',
STABBR: 'MI'
};
table.insert(row, function(err) {});
After
var row = {
insertId: 1,
json: {
INSTNM: 'Motion Picture Institute of Michigan',
CITY: 'Troy',
STABBR: 'MI'
}
};
var options = {
raw: true
};
table.insert(row, options, function(err) {});
Datastore: Setting a descending order on a query is now an option
Issue: #1061 (Thanks, @krisnye!)
PR: #1069
Before
var query = dataset.createQuery('Person');
var descendingQuery = query.order('-name');
After
var query = dataset.createQuery('Person');
var descendingQuery = query.order('name', {
descending: true
});
Datastore: A query's filter operator is now a separate argument
Issue: #1062 (Thanks again, @krisnye!)
PR: #1069
Before
var query = dataset.createQuery('Company');
var googleFilter = query.filter('name =', 'Google');
var sizeFilter = query.filter('size <', 400);
After
var query = dataset.createQuery('Company');
var googleFilter = query.filter('name', 'Google');
var sizeFilter = query.filter('size', '<', 400);
Storage: File#createResumableUpload separates metadata from options
Issue: #818 (comment), googleapis/gcs-resumable-upload#6, #1099
PR: #1100
Before
var metadata = {
contentType: 'image/png'
};
file.createResumableUpload(metadata, function(err, uri) {});
After
var options = {
origin: 'http://my-site.com',
metadata: {
contentType: 'image/png'
}
};
file.createResumableUpload(options, function(err, uri) {});
Hello, Translate!
Translate text between thousands of languages. See the complete API documentation for more examples.
An API key is required for this API. See Identifying your application to Google.
var gcloud = require('gcloud');
var translate = gcloud.translate({
key: 'API Key' // See https://cloud.google.com/translate/v2/using_rest#auth
});
// Translate a string of text.
translate.translate('Hello', 'es', function(err, translation) {
if (!err) {
// translation = 'Hola'
}
});
// Detect a language from a string of text.
translate.detect('Hello', function(err, results) {
if (!err) {
// results = {
// language: 'en',
// confidence: 1,
// input: 'Hello'
// }
}
});
// Get a list of supported languages.
translate.getLanguages(function(err, languages) {
if (!err) {
// languages = [
// 'af',
// 'ar',
// 'az',
// ...
// ]
}
});
Features
- Core (#1030, #1048): Provide more detailed API error messages.
- Datastore (#1040, #1043): Recognize
DATASTORE_DATASET
environment variable to define the name of your dataset. - Storage (#1099, #1100): Set an origin for a resumable upload URI.
Fixes
- BigQuery (#1114, #1116): Correctly instantiate Table objects from
dataset#getTables
. (Thanks, @nikhilbobb!) - Datastore (#1092, #1093): Inherit previously-set options from the
gcloud
module into aDataset
object. (Thanks, @thesandlord!) - Storage (#1058): Set a
generation
onfile#getSignedUrl
. (Thanks, @simonfan!)
Thank you!
If you catch any regressions, please open an issue. See the Contributing guide for how to get started.