Skip to content

Commit d2163a1

Browse files
committed
feat(v3-sdk): separate esm / cjs builds
1 parent 6f2cb5b commit d2163a1

19 files changed

+1823
-1512
lines changed

sdks/sdk-core/.eslintrc.json

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"parser": "@typescript-eslint/parser",
3+
"parserOptions": {
4+
"ecmaVersion": 2018,
5+
"sourceType": "module"
6+
},
7+
"extends": [
8+
"prettier",
9+
"prettier/@typescript-eslint"
10+
],
11+
"ignorePatterns": ["dist/**"]
12+
}

sdks/sdk-core/jest.config.js

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
2+
module.exports = {
3+
preset: 'ts-jest',
4+
testEnvironment: 'node',
5+
rootDir: 'src',
6+
globals: {
7+
'ts-jest': {
8+
tsconfig: 'tsconfig.base.json',
9+
},
10+
},
11+
}

sdks/sdk-core/package.json

+26-9
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,24 @@
77
"ethereum"
88
],
99
"license": "MIT",
10-
"main": "dist/index.js",
11-
"typings": "dist/index.d.ts",
12-
"module": "dist/sdk-core.esm.js",
10+
"main": "./dist/cjs/src/index.js",
11+
"module": "./dist/esm/src/index.js",
12+
"types": "./dist/types/src/index.d.ts",
1313
"files": [
1414
"dist"
1515
],
1616
"engines": {
1717
"node": ">=10"
1818
},
1919
"scripts": {
20-
"build": "tsdx build",
21-
"lint": "tsdx lint src",
22-
"release": "semantic-release",
23-
"start": "tsdx watch",
24-
"test": "tsdx test"
20+
"clean": "rm -rf dist",
21+
"build": "yarn clean && yarn build:cjs && yarn build:esm && yarn build:types",
22+
"build:cjs": "tsc -p tsconfig.cjs.json",
23+
"build:esm": "tsc -p tsconfig.esm.json",
24+
"build:types": "tsc -p tsconfig.types.json",
25+
"lint": "eslint src --ext .ts",
26+
"lint:fix": "eslint src --ext .ts --fix",
27+
"test": "jest"
2528
},
2629
"dependencies": {
2730
"@ethersproject/address": "^5.0.2",
@@ -37,7 +40,21 @@
3740
"devDependencies": {
3841
"@types/big.js": "^4.0.5",
3942
"@types/jest": "^24.0.25",
40-
"tsdx": "^0.14.1"
43+
"eslint": "^7.8.0",
44+
"eslint-config-prettier": "^6.11.0",
45+
"eslint-plugin-eslint-comments": "^3.2.0",
46+
"eslint-plugin-functional": "^3.0.2",
47+
"eslint-plugin-import": "^2.22.0",
48+
"jest": "25.5.0",
49+
"prettier": "^2.4.1",
50+
"typescript": "^4.3.3"
51+
},
52+
"exports": {
53+
".": {
54+
"types": "./dist/types/src/index.d.ts",
55+
"import": "./dist/esm/src/index.js",
56+
"require": "./dist/cjs/src/index.js"
57+
}
4158
},
4259
"prettier": {
4360
"printWidth": 120,

sdks/sdk-core/toformat.d.ts

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
declare module 'toformat' {
2+
export default function toFormat(Big: any): any
3+
}

sdks/sdk-core/tsconfig.base.json

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"include": ["src"],
3+
"compilerOptions": {
4+
"rootDir": ".",
5+
"baseUrl": ".",
6+
"target": "es6",
7+
"module": "esnext",
8+
"importHelpers": true,
9+
"declaration": true,
10+
"sourceMap": true,
11+
"strict": true,
12+
"moduleResolution": "node",
13+
"resolveJsonModule": true,
14+
"esModuleInterop": true,
15+
"skipLibCheck": true
16+
}
17+
}

sdks/sdk-core/tsconfig.cjs.json

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"extends": "./tsconfig.base.json",
3+
"compilerOptions": {
4+
"module": "commonjs",
5+
"outDir": "dist/cjs"
6+
}
7+
}

sdks/sdk-core/tsconfig.esm.json

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"extends": "./tsconfig.base.json",
3+
"compilerOptions": {
4+
"module": "esnext",
5+
"outDir": "dist/esm"
6+
}
7+
}

sdks/sdk-core/tsconfig.json

-23
This file was deleted.

sdks/sdk-core/tsconfig.types.json

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"extends": "./tsconfig.base.json",
3+
"compilerOptions": {
4+
"declaration": true,
5+
"emitDeclarationOnly": true,
6+
"outDir": "dist/types"
7+
}
8+
}

sdks/v3-sdk/.eslintrc.json

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"parser": "@typescript-eslint/parser",
3+
"parserOptions": {
4+
"ecmaVersion": 2018,
5+
"sourceType": "module"
6+
},
7+
"extends": [
8+
"prettier",
9+
"prettier/@typescript-eslint"
10+
],
11+
"ignorePatterns": ["dist/**"]
12+
}

sdks/v3-sdk/jest.config.js

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
2+
module.exports = {
3+
preset: 'ts-jest',
4+
testEnvironment: 'node',
5+
rootDir: 'src',
6+
globals: {
7+
'ts-jest': {
8+
tsconfig: 'tsconfig.base.json',
9+
},
10+
},
11+
}

sdks/v3-sdk/package.json

+26-16
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,32 @@
77
"ethereum"
88
],
99
"license": "MIT",
10-
"main": "dist/index.js",
11-
"typings": "dist/index.d.ts",
12-
"module": "dist/v3-sdk.esm.js",
10+
"main": "./dist/cjs/src/index.js",
11+
"module": "./dist/esm/src/index.js",
12+
"types": "./dist/types/src/index.d.ts",
1313
"files": [
1414
"dist"
1515
],
1616
"engines": {
1717
"node": ">=10"
1818
},
1919
"scripts": {
20-
"build": "tsdx build",
21-
"lint": "tsdx lint src",
22-
"release": "semantic-release",
23-
"start": "tsdx watch",
24-
"test": "tsdx test"
20+
"clean": "rm -rf dist",
21+
"build": "yarn clean && yarn build:cjs && yarn build:esm && yarn build:types",
22+
"build:cjs": "tsc -p tsconfig.cjs.json",
23+
"build:esm": "tsc -p tsconfig.esm.json",
24+
"build:types": "tsc -p tsconfig.types.json",
25+
"lint": "eslint src --ext .ts",
26+
"test": "jest"
2527
},
28+
"exports": {
29+
".": {
30+
"types": "./dist/types/src/index.d.ts",
31+
"import": "./dist/esm/src/index.js",
32+
"require": "./dist/cjs/src/index.js"
33+
}
34+
},
35+
"sideEffects": false,
2636
"dependencies": {
2737
"@ethersproject/abi": "^5.5.0",
2838
"@ethersproject/solidity": "^5.0.9",
@@ -36,14 +46,14 @@
3646
"devDependencies": {
3747
"@types/jest": "^24.0.25",
3848
"@uniswap/v3-core": "1.0.0",
39-
"babel-jest": "25.5.1",
40-
"tsdx": "^0.14.1"
41-
},
42-
"resolutions": {
43-
"regenerator-runtime": "^0.14.1"
44-
},
45-
"resolutionsComments": {
46-
"regenerator-runtime": "Fixes https://github.com/facebook/regenerator/pull/480. It can be removed when `tsdx` updates their dependencies."
49+
"eslint": "^7.8.0",
50+
"eslint-config-prettier": "^6.11.0",
51+
"eslint-plugin-eslint-comments": "^3.2.0",
52+
"eslint-plugin-functional": "^3.0.2",
53+
"eslint-plugin-import": "^2.22.0",
54+
"jest": "25.5.0",
55+
"prettier": "^2.4.1",
56+
"typescript": "^4.3.3"
4757
},
4858
"prettier": {
4959
"printWidth": 120,

sdks/v3-sdk/tsconfig.base.json

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"include": ["src"],
3+
"compilerOptions": {
4+
"rootDir": ".",
5+
"baseUrl": ".",
6+
"target": "es2018",
7+
"module": "esnext",
8+
"importHelpers": true,
9+
"declaration": true,
10+
"sourceMap": true,
11+
"strict": true,
12+
"moduleResolution": "node",
13+
"resolveJsonModule": true,
14+
"esModuleInterop": true,
15+
"skipLibCheck": true,
16+
"isolatedModules": true
17+
}
18+
}

sdks/v3-sdk/tsconfig.cjs.json

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"extends": "./tsconfig.base.json",
3+
"compilerOptions": {
4+
"module": "commonjs",
5+
"outDir": "dist/cjs"
6+
}
7+
}

sdks/v3-sdk/tsconfig.esm.json

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"extends": "./tsconfig.base.json",
3+
"compilerOptions": {
4+
"module": "esnext",
5+
"outDir": "dist/esm"
6+
}
7+
}

sdks/v3-sdk/tsconfig.json

-24
This file was deleted.

sdks/v3-sdk/tsconfig.test.json

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"extends": "./tsconfig.base.json",
3+
"compilerOptions": {
4+
"moduleResolution": "node",
5+
"types": ["jest", "node"]
6+
},
7+
"include": ["src/**/*.ts", "src/**/*.test.ts"]
8+
}

sdks/v3-sdk/tsconfig.types.json

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"extends": "./tsconfig.base.json",
3+
"compilerOptions": {
4+
"declaration": true,
5+
"emitDeclarationOnly": true,
6+
"outDir": "dist/types"
7+
}
8+
}

0 commit comments

Comments
 (0)