Skip to content

Commit

Permalink
feat(payments): upgrade Web Payments SDK to v1 (#10)
Browse files Browse the repository at this point in the history
BREAKING CHANGE: general availability release

* chore: use node v16 for development

* fix: exporting types

* docs: tsdx example

showcases importing types

* chore(deps): upgrade @square/web-payments-sdk-types
  • Loading branch information
maxbeatty authored Jun 16, 2021
1 parent 2c91acc commit 757a72b
Show file tree
Hide file tree
Showing 24 changed files with 36,342 additions and 44 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: Set up Node
uses: actions/setup-node@v2
with:
node-version: '15' # keep in sync w/ .nvmrc
node-version: '16' # keep in sync w/ .nvmrc

- name: Get npm cache directory
id: npm-cache
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v15.8
v16
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

### Getting Started

This project uses Node v15 as defined by `.nvmrc` to take advantage of npm@7. You can use [nvm](https://github.com/nvm-sh/nvm) to install the correct version:
This project uses Node v16 as defined by `.nvmrc` to take advantage of npm@7. You can use [nvm](https://github.com/nvm-sh/nvm) to install the correct version:

```sh
nvm install $(cat .nvmrc)
Expand Down
3 changes: 1 addition & 2 deletions examples/snowpack/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions examples/tsdx/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dist
91 changes: 91 additions & 0 deletions examples/tsdx/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# TSDX

Use [TSDX](https://tsdx.io/), "zero-config CLI for TypeScript package development", to build a simple payment form library with Square Web SDK.

## How to use

Clone, install, and start:

```sh
# clone from github
git clone https://github.com/square/web-sdk.git
# go to example
cd examples/tsdx
# install dependencies
npm install
# start development server
npm start
```

This builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.

---

## TSDX User Guide

Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.

> This TSDX setup is meant for developing libraries (not apps!) that can be published to NPM. If you’re looking to build a Node app, you could use `ts-node-dev`, plain `ts-node`, or simple `tsc`.
> If you’re new to TypeScript, checkout [this handy cheatsheet](https://devhints.io/typescript)
### Commands

TSDX scaffolds your new library inside `/src`.

To run TSDX, use:

```bash
npm start # or yarn start
```

This builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.

To do a one-off build, use `npm run build` or `yarn build`.

To run tests, use `npm test` or `yarn test`.

### Configuration

Code quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.

#### Jest

Jest tests are set up to run with `npm test` or `yarn test`.

#### Bundle Analysis

[`size-limit`](https://github.com/ai/size-limit) is set up to calculate the real cost of your library with `npm run size` and visualize the bundle with `npm run analyze`.

##### Setup Files

This is the folder structure we set up for you:

```txt
/src
index.tsx # EDIT THIS
/test
blah.test.tsx # EDIT THIS
.gitignore
package.json
README.md # EDIT THIS
tsconfig.json
```

#### Rollup

TSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.

#### TypeScript

`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.

## Module Formats

CJS, ESModules, and UMD module formats are supported.

The appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.

## Named Exports

Per Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.
Loading

0 comments on commit 757a72b

Please sign in to comment.