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

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

Merged
merged 37 commits into from
Jun 28, 2024

Conversation

moresoo
Copy link
Contributor

@moresoo moresoo commented Jun 28, 2024

  • loadScript의 SDK 인스턴스 할당이 완료되었다는 판단을 SDK에서 dispatch 한 이벤트로 부터가 아닌, loadScript 자체적으로 수행하게 합니다.

moresoo added 30 commits June 28, 2024 02:45
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
 - @tosspayments/[email protected]
@moresoo moresoo merged commit cd2443b into staging/sdk-v2-bc Jun 28, 2024
1 check passed
@moresoo moresoo deleted the feat/script-loader-v2 branch June 28, 2024 05:06
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.

2 participants