@internetarchive/user-service v0.1.3
IAUX User Service
This is a Typescript library to interact with the Internet Archive's User Service.
Usage
import { UserService } from '@internetarchive/user-service';
// instantiate a UserService object
const userService = new UserService();
// get the result
const result = await userService.getLoggedInUser();
// if the user is logged in, the User object will be in `result.success`
const user = result.success;
if (user) {
console.debug(
'User:', user.username, user.itemname, user.screenanme, user.privs
)
return;
}
// if the user is not logged in or you an error occurred,
// you'll get a `result.error` and can inspect `result.error.type`:
switch (result.error?.type) {
case UserServiceErrorType.userNotLoggedIn:
console.info('User not logged in');
break;
case UserServiceErrorType.networkError:
console.error('There was a network error fetching the user');
break;
case UserServiceErrorType.decodingError:
console.error('There was an error decoding the user service response');
break;
default:
console.error('An unknown error occurred fetching the user');
}Advanced Usage
Caching
You can pass in a cache handler that implements UserServiceCacheInterface and the results will be cached:
import { LocalCache } from '@internetarchive/local-cache';
const cache = new LocalCache();
const service = new UserService({
cache,
cacheTTL: 15 * 60 // seconds, optional
})
const result = await service.getLoggedInUser();
// subsequent calls will be cachedLocal Demo with web-dev-server
yarn startTo run a local development server that serves the basic demo located in demo/index.html
Testing with Web Test Runner
To run the suite of Web Test Runner tests, run
yarn run testTo run the tests in watch mode (for <abbr title="test driven development">TDD</abbr>, for example), run
yarn run test:watchLinting with ESLint, Prettier, and Types
To scan the project for linting errors, run
yarn run lintYou can lint with ESLint and Prettier individually as well
yarn run lint:eslintyarn run lint:prettierTo automatically fix many linting errors, run
yarn run formatYou can format using ESLint and Prettier individually as well
yarn run format:eslintyarn run format:prettierTooling configs
For most of the tools, the configuration is in the package.json to reduce the amount of files in your project.
If you customize the configuration a lot, you can consider moving them to individual files.
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago