@smile-io/smile-js
v1.2.0
Published
Smile.io Javascript SDK (Smile.js)
Downloads
1,407
Readme
Smile.io JavaScript SDK (Smile.js)
This package allows you to load Smile.io's JavaScript SDK (Smile.js) as a CommonJS or ES module, and provides TypeScript declarations for autocomplete and type checking.
Full SDK documentation and reference →
Installation
Use npm to install the package:
npm install @smile-io/smile-jsUsage
loadSmile()
This function returns a Promise that resolves with an instance of the JavaScript SDK. It loads the SDK by inserting a script tag into the DOM. Calling loadSmile() in a server environment will resolve to null and the SDK will not be loaded.
import { loadSmile } from '@smile-io/smile-js';
const Smile = await loadSmile();
if (Smile) {
// The SDK was successfully loaded and
// is ready to be initialized
}For more information on how to initialize and use the JavaScript SDK, refer to the JavaScript SDK documentation.
Versioning
Calling loadSmile() always fetches the latest version of the JavaScript SDK for the major version of @smile-io/smile-js that you have installed. For example, any package version in the 1.x.x range will load the latest release of Smile.js v1 from Smile's CDN. This ensures that you always get the latest non-breaking improvements and bug fixes, regardless of which version of the package you're using.
While we still recommend keeping up to date with the latest version of the @smile-io/smile-js package, minor and patch version bumps will only represent changes to:
- TypeScript type updates (new fields, methods, or resources)
- Improvements or bug fixes to the code that loads the SDK from Smile’s CDN
To learn more, refer to the SDK versioning explainer.
TypeScript support
This package includes TypeScript declarations for the JavaScript SDK. Import and use them like you would any other types.
import { loadSmile } from '@smile-io/smile-js';
import type { Smile, Customer, PointsProduct } from '@smile-io/smile-js';We may occasionally release minor and patch versions of @smile-io/smile-js with small but backwards-incompatible changes to the type declarations. These changes will not affect the behavior of the SDK itself.
