This is an (unofficial) implementation for the JSBin.com API.
Load the client and configure the connection:
var Client = require('jsbin-client');
var client = new Client({
token: '<your-jsbin-api-token>',
// [optional] use a custom endpoint
// endpoint: 'https://jsbin.com/api/',
});
client.list().then(function(data) {
console.log("listing", data.slice(0, 5));
}, function(error) {
console.error('listing failed', error);
});
/*
returns [
{
title: 'Some Bin',
url: 'aabbcc',
last_updated: '2015-10-31T12:29:07.000Z',
pretty_last_updated: '4 days ago',
snapshot: 2,
history: [
{
title: 'Some Bin',
url: 'aabbcc',
last_updated: '2015-10-30T12:25:07.000Z',
pretty_last_updated: '5 days ago',
snapshot: 1
},
…
]
},
…
]
*/
client.read('aabbcc'/*, snapshot */).then(function(data) {
console.log("read", data);
}, function(error) {
console.error('reading failed', error);
});
/*
returns {
javascript: 'content of JavaScript view',
html: 'content of HTML view',
css: 'content of CSS view',
settings: {
title: 'bin title'
},
last_updated: '2015-10-31T12:29:07.000Z',
url: 'aabbcc',
snapshot: 2
}
*/
var newBin = {
html: '<p>new bin via api</p>',
javascript: '// new bin via api',
css: '/* new bin via api */',
title: 'new bin via api',
};
client.create(newBin).then(function(data) {
console.log("create", data);
}, function(error) {
console.error('creating failed', error);
});
/*
returns {
url: 'aabbcc',
snapshot: 1,
summary: '<string>'
}
*/
var changedBin = {
html: '<p>changed bin via api</p>',
javascript: '// changed bin via api',
css: '/* changed bin via api */',
title: 'changed bin via api',
};
client.update('aabbcc', changedBin).then(function(data) {
console.log("update", data);
}, function(error) {
console.error('updating failed', error);
});
/*
returns {
url: 'aabbcc',
snapshot: 2,
summary: '<string>'
}
*/
You can use client.save(binData)
if you you provide the binId (aabbcc
) in binData.url
.
client.remove('aabbcc'/*, snapshot */).then(function(data) {
console.log("removed", data);
}, function(error) {
console.error('removing failed', error);
});
/*
returns {
url: 'aabbcc',
snapshot: 1,
deleted: true
}
*/
- fixing client.save() to properly store
css
- initial release
jsbin-client is published under the MIT License.