Membership JS API
Square Enix Membership is a service that provides authentication for users of Square Enix products. This library makes it easy to interact with.
#### Example usage
yarn add @square-enix-west/membership-js-api
import Membership, { User } from '@square-enix-west/membership-js-api'
Membership.init({
clientId: 'your-apps-id',
service: 'membership'
}).then(() => {
if (User.isLoggedIn) {
alert(`Hi, ${User.name}`)
}
})
Full documentation can be found here
Examples can be found in the examples directory
Contributing
### Setting Up The Project
git clone git@bitbucket.org:squareenixoid/onlinedev-membership-js-api.git
cd onlinedev-membership-js-api
nvm install && nvm use
npm install
Working On The Code
Testing
Any changes/feature additions should use TDD. The project uses jest. Running npm run test
will start watching the project and re-run tests on changes
Including In Local Projects During Development
To include a local membership-js-api in a project while working on it, you can use npm link
cd ~/Projects/onlinedev-membership-js-api
npm link
npm run develop
cd ~/Project/an-app-using-the-api
npm link @square-enix-west/membership-js-api
After invoking those commands, any javascript files requiring/importing @square-enix-west/membership-js-api
should get the most up to date version, as it is in your local repo
Working On The Documentation
Running npm run docs:watch
will start a watch task and a local server to view the docs. Go to http://localhost:4000 to view them. Any changes to the documentation should reflect instantly-ish
Releasing
The release process is fairly manual
Publishing To NPM
You can use the irish-pub npm package to perform a "dry run"
Deploying Updated Documentation
Pushing to master should result in the documentation being rebuilt and deployed to https://onlinedev-membership-js-api-prod.stage.sqexeu.com/quick-start-guide.html
Any problems speak to Malet. He'll probably sort you out.
Project goals
Provide a simple library for
✅ Registering Square Enix Membership accounts
✅ Logging a user in using a username and password
✅ Logging a user out
The API should
✅ Hide as much complexity as possible
✅ Provide consumable feedback on validation errors
The library should
✅ Have clear documentation
✅ Be easy to install and implement
✅ Should be worked on in isolation, and as such should
✅ Have a comprehensive test suite
✅ Should be consumable for modern application (use npm to import via private bitbucket repo)
✅ Should be consumable for legacy applications (provide a built version and publish to CDN for each revision)