Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: TossPayments browser-sdk V2 #94

Merged
merged 26 commits into from
Jun 27, 2024
Merged

Conversation

moresoo
Copy link
Contributor

@moresoo moresoo commented Jun 27, 2024

  • browser 에서 사용되는 javascript SDK V2를 추가합니다.
  • yarn berry 버전을 변경합니다 v3.1.1 -> v3.6.4
  • 모든 패키지의 typescript 버전을 변경합니다 up to v5.2.2
  • 테스트 도구를 jest에서 vitest로 변경합니다

@@ -0,0 +1,7 @@
# Toss Payments PaymentWidget SDK

토스페이먼츠 결제위젯을 위한 JavaScript SDK 입니다.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

README 내용이 갱신 안된 것 같아요!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다~ 감사해요! chore: readme 수정

@tosspayments tosspayments deleted a comment from joi0104 Jun 27, 2024
@moresoo moresoo merged commit 7dd7e6c into staging/sdk-v2-bc Jun 27, 2024
1 check passed
@moresoo moresoo deleted the feat/tosspayment-sdk-v2 branch June 27, 2024 08:46
{
"name": "@tosspayments/tosspayments-sdk",
"description": "TossPayments.js Tosspayments SDK.",
"version": "0.1.1-alpha.0",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

main 들어가기 전에 버전이 수정되어야 할 것 같습니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

github ci 에서 아래와 같은 스크립트가 있는데요. --conventional-commits 이라는 lerna 옵션이 커밋 메시지 내용에 따라 major, minor, patch를 결정해 버전을 올려준다고 합니다.

https://github.com/lerna/lerna/tree/main/libs/commands/version#--conventional-commits

run: |
  yarn lerna version --conventional-commits --exclude-dependents --yes --git-remote origin
  yarn lerna publish from-git --yes --concurrency=2

conventional-commit 컨벤션에 따라 커밋 메시지에 BREAKING CHANGE 가 포함돼 있으면 major 버전 업을 해줄 것으로 예상돼요.

moresoo added a commit that referenced this pull request Jul 1, 2024
* feat: TossPayments browser-sdk V2 (#94)

* feat: tosspayment browser sdk v2 스캐폴딩

* chore: public-interface를 import 하기 위해 npm 개발망 바라보게 수정

* chore: typescript version up to 5.2.2

* chore: yarn version 3.6.4 & yarn dlx update

* chore: TossPayment namespace type declare

* rename

* chore: package json update

* chore(release): publish [skip ci]

 - @tosspayments/[email protected]

* rename

* chore: 불필요한 dependency dev로 옮기기

* rename

* rename

* feat: ANONYMOUS PI에 정의한 상수로 내보내기

* test: 테스트 추가

* chore: ANONYMOUS 내보내야 해서 dependecy로 승격

* chore: ANONYMOUS는 SDK에서 내보내주고 있어서 browser-sdk에서 내보내줄 필요 없음

* chore: typescript version up to 5.2.2 all packages

* chore: TossPayments 글로벌 타입 하드코딩 제거

* chore: @ts-ignore

* chore: readme 수정

* test: 테스트 삭제 (vitest로 교체 예정)

* chore: 테스트 도구 jest -> vitest로 변경

* test: v2 tosspayment sdk 테스트 작성

* chore: v1 payment 테스트 수정

* chore: test CI 깨지는 곳 수정

* chore: CI의 node version을 변경합니다

* BREAKING CHANGE(sdk-loader): loadScript v2 (#95)

* chore: typescript version up

* chore: ts가 __dirname 못 읽는 이슈

* feat: 테스트 요구사항 작성

* test: script 로드가 완료되면, 주어진 namespace에 생성된 인스턴스와 동일한 인스턴스를 resolve 해야한다

* test: script.onload가 안돼서, 이벤트리스너를 mocking 합니다

* test: SDK가 인스턴스를 생성하고 -> script 로드 가 알맞은 순서

* feat: script 로드가 완료되면, 주어진 namespace에 생성된 인스턴스와 동일한 인스턴스를 resolve 해야한다

* test: script 로드를 실패하면, Promise를 초기화하고 에러를 throw 해야한다

* feat: script 로드를 실패하면, Promise를 초기화하고 에러를 throw 해야한다

* test: script 로드를 성공했지만 namespace에 인스턴스가 존재하지 않으면, 에러를 throw 해야한다

* feat: script 로드를 성공했지만 namespace에 인스턴스가 존재하지 않으면, 에러를 throw 해야한다

* chore: test namespace 변경

* feat: document.head.appendChild 추가하고 테스트에선 동작 안하게 모킹

* test: 캐시된 script 로더 Promise가 존재하면, 해당 Promise를 반환해야 한다

* feat: 캐시된 script 로더 Promise가 존재하면, 해당 Promise를 반환해야 한다

* refactor: 공통 테스트 모킹 로직 beforeEach로 뺌

* test: 캐시된 script 로더 Promise가 존재하지 않으면, SSR 환경이면 null을 resolve 해야한다

* faet: 캐시된 script 로더 Promise가 존재하지 않으면, SSR 환경이면 null을 resolve 해야한다

* tset: 주어진 namespace에 인스턴스가 존재하면, 해당 인스턴스를 resolve 해야한다

* feat: 주어진 namespace에 인스턴스가 존재하면, 해당 인스턴스를 resolve 해야한다

* chore: edit gitignore

* chore: given when then

* test: priority 옵션을 설정하면, script element의 fetchPriority 속성이 설정되어야 한다

* feat: priority 옵션을 설정하면, script element의 fetchPriority 속성이 설정되어야 한다

* refactor: 코드 가독성

* feat: Promise가 reject 됐을때 cachedPromise가 null로 reset 되도록 합니다

* feat: 기존 src를 가진 script가 존재하면, 기존 script의 이벤트를 모두 제거하고 스크립트도 제거한 후 새로 만들어야 한다

* BREAKING CHANGE: 기존 코드 삭제

* chore(release): publish [skip ci]

 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]

* chore(release): publish [skip ci]

 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]

* yarn

* chore: typescript 5.5.2 -> 5.2.2 (오타)

* test: 테스트 꺠지는 곳 수정

* feat: script-loader에서 발생하는 예외 에러들 추상화하고 테스트에서 활용

* test: v1 브랜드페이, v1 위젯에도 테스트 추가

* choree: script-loader 분기마다 주석 추가

* chore

* chore: 테스트 유틸을 export 하는 걸 제거하고, 관련된 test를 임시로 skip 합니다. (#96)

* chore: browser SDK의 패키지들을 지정한 버전으로 배포되도록 합니다 (#97)

* chore(release): publish [skip ci]

 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]

* chore: browser-sdk test with alpha 3.0

* chore: 각 패키지 manual version up

* chore: 변경사항이 없더라고 지정된 버전으로 강제로 version up 하도록 ci 설정을 변경합니다

* chore: standard-public-interface update

* chore: ci에서 버전업 하는 스크립트를 제거하고, package에 명시된 버전으로 publish 하도록 임시로 설정

* chore: 주석 추가

* test: skip 처리한 테스트를 복원합니다 (#98)

* test: skip 처리한 테스트를 복원합니다

* test: 테스트 복원 누락

* fix: 중복 코드 제거

* refactor: 테스트 리팩토링 (#99)

* refactor: script element mock 유틸 활용

* refactor: SDK load 테스트에서 NamespaceNotAvailableError 에러 관련 검증을 하지 않는다

* chore: end of line

* chore: end of line

* chore: Public Interface version up (#100)

* chore: public interface versino up

* chore: export convention

* refactor: 테스트 리팩토링 (#102)

* refactor: addEventListener를 목킹하는 대신, dispatchEvent 메소드를 사용

* refactor: document.createElement mocking은 유틸 내에서 공통으로 처리한다

* chore: 누락
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants