Upgrade Evernote SDK versions and migrate between API versions.
Use when upgrading SDK, handling breaking changes,
or migrating to newer API patterns.
Trigger with phrases like "upgrade evernote sdk", "evernote migration",
"update evernote", "evernote breaking changes".
Instrucciones de origen · Vista previa de solo lectura
name
evernote-upgrade-migration
description
Upgrade Evernote SDK versions and migrate between API versions.
Use when upgrading SDK, handling breaking changes,
or migrating to newer API patterns.
Trigger with phrases like "upgrade evernote sdk", "evernote migration",
"update evernote", "evernote breaking changes".
allowed-tools
Read, Write, Edit, Bash(npm:*), Grep
version
1.0.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
Evernote Upgrade & Migration
Overview
Guide for upgrading Evernote SDK versions, handling breaking changes, and migrating legacy integrations to current API patterns.
Prerequisites
Existing Evernote integration
Test environment for validation
Understanding of current implementation
SDK Version History
Version
Node.js
Key Changes
2.0.x
10+
Promise-based API, ES6 modules
1.25.x
8+
Legacy callback pattern
1.x
6+
Original SDK
Instructions
Step 1: Check Current Version
# Check installed version
npm list evernote
# Check available versions
npm view evernote versions
# Check for outdated packages
npm outdated evernote
Step 2: Review Breaking Changes
// SDK 1.x -> 2.x Breaking Changes// 1. Client initialization changed// OLD (1.x):varEvernote = require('evernote').Evernote;
var client = newEvernote.Client({
consumerKey: 'key',
consumerSecret: 'secret',
sandbox: true
});
// NEW (2.x):constEvernote = require('evernote');
const client = newEvernote.Client({
consumerKey: 'key',
consumerSecret: 'secret',
sandbox: true
});
// 2. API calls return Promises (not callbacks)// OLD (1.x):
noteStore.listNotebooks(function(err, notebooks) {
if (err) console.error(err);
elseconsole.log(notebooks);
});
// NEW (2.x):
noteStore.listNotebooks()
.then(notebooks =>console.log(notebooks))
.catch(err =>console.error(err));
// Or with async/await:const notebooks = await noteStore.listNotebooks();
// 3. Type constructors// OLD (1.x):var note = newEvernote.Note();
// NEW (2.x):const note = newEvernote.Types.Note();
// utils/promisify-legacy.js/**
* Wrapper for legacy callback-based code
*/functionpromisifyNoteStore(noteStore) {
const promisified = {};
// List of methods that need promisificationconst methods = [
'listNotebooks',
'getNotebook',
'createNotebook',
'updateNotebook',
'listTags',
'getTag',
'createTag',
'getNote',
'createNote',
'updateNote',
'deleteNote',
'findNotesMetadata',
'getNoteContent',
'getResource'
];
for (const method of methods) {
promisified[method] = (...args) => {
returnnewPromise((resolve, reject) => {
noteStore[method](...args, (err, result) => {
if (err) reject(err);
elseresolve(result);
});
});
};
}
return promisified;
}
module.exports = { promisifyNoteStore };
Step 5: Upgrade Dependencies
# Update to latest version
npm install evernote@latest
# If using TypeScript, update types
npm install @types/evernote@latest --save-dev
# Update related dependencies
npm update