PayPal SDK Client
A shared client for PayPal/Braintree client sdk modules. Featuring:
- Shared configuration between modules:
- Client-side merchant passed options
- Shared module to module config
- Server-side inlined configuration
- Inlinable into multiple client modules/components
- Modules can tree-shake anything they don't need (e.g. config fetching)
- Decoupled client modules
- All communication and sharing between components happens via the client
- Synchronous client
- Individual modules/components can choose to render synchronously or asynchronously
- Easy for dev to create client in single place and pass it around
Installing
npm install --save paypal-braintree-sdk-client
Integration
As an end user
Example of what merchants integrating with different modules in the SDK might call:
// Add required modules// Shared config can be modified at script load time <script src=".../checkout.button.js" /><script src=".../hosted.fields.js" /> // Initialize an instance of the client// Shared config is immutable at client instance creation try var client = paypal catcherr console; // TODO: client == undefined at thsi point, blowing up the rest of the code. // TODO: maybe delaying all errors to `render` is the best option.); // Render PayPal Button clientButton; // Render Hosted FieldsclientHostedFields;
As a module owner
Example of how hosted.fields.js
might look:
; // Register hosted fields as taking care of rendering card fields, in shared config// (to prevent smart-payment-buttons from rendering card buttons)sdkconfig ; sdk;
Quick Start
Getting Started
- Fork the module
- Run setup:
npm run setup
- Start editing code in
./src
and writing tests in./tests
npm run build
Building
npm run build
Tests
-
Edit tests in
./test/tests
-
Run the tests:
npm run test