Skip to content

Commit 3cfe03d

Browse files
feat: add proper wrapping for esm and Deno by updating dependencies
- add esm test to npm run script - run full tests from esm Co-authored-by: Momtchil Momtchev <[email protected]>
1 parent af3145d commit 3cfe03d

12 files changed

+549
-599
lines changed

.github/workflows/ci.yaml

-9
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,6 @@ jobs:
4545
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true
4646
- run: npm test
4747
- run: npm run coverage
48-
esm:
49-
runs-on: ubuntu-latest
50-
steps:
51-
- uses: actions/checkout@v2
52-
- uses: actions/setup-node@v1
53-
with:
54-
node-version: 14
55-
- run: npm install
56-
- run: npm run test:esm
5748
deno:
5849
runs-on: ubuntu-latest
5950
steps:

deno.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
// Bootstrap cliui with CommonJS dependencies:
22
import { cliui, UI } from './build/lib/index.js'
33
import type { UIOptions } from './build/lib/index.d.ts'
4-
import { wrap, stripAnsi } from './build/lib/string-utils.js'
4+
import wrap from 'wrap-ansi'
5+
import stripAnsi from 'strip-ansi'
6+
import stringWidth from 'string-width'
57

68
export default function ui (opts: UIOptions): UI {
79
return cliui(opts, {
8-
stringWidth: (str: string) => {
9-
return [...str].length
10-
},
10+
stringWidth,
1111
stripAnsi,
1212
wrap
1313
})

index.mjs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// Bootstrap cliui with CommonJS dependencies:
22
import { cliui } from './build/lib/index.js'
3-
import { wrap, stripAnsi } from './build/lib/string-utils.js'
3+
import wrap from 'wrap-ansi'
4+
import stripAnsi from 'strip-ansi'
5+
import stringWidth from 'string-width'
46

57
export default function ui (opts) {
68
return cliui(opts, {
7-
stringWidth: (str) => {
8-
return [...str].length
9-
},
9+
stringWidth,
1010
stripAnsi,
1111
wrap
1212
})

lib/cjs.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
// Bootstrap cliui with CommonJS dependencies:
22
import { cliui, UIOptions } from './index.js'
3-
const stringWidth = require('string-width')
4-
const stripAnsi = require('strip-ansi')
5-
const wrap = require('wrap-ansi')
3+
import stringWidth from 'string-width'
4+
import wrap from 'wrap-ansi'
5+
import stripAnsi from 'strip-ansi'
6+
67
export default function ui (opts: UIOptions) {
78
return cliui(opts, {
89
stringWidth,

lib/string-utils.ts

-30
This file was deleted.

package.json

+9-7
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818
"check": "standardx '**/*.ts' && standardx '**/*.js' && standardx '**/*.cjs'",
1919
"fix": "standardx --fix '**/*.ts' && standardx --fix '**/*.js' && standardx --fix '**/*.cjs'",
2020
"pretest": "rimraf build && tsc -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs",
21-
"test": "c8 mocha ./test/*.cjs",
22-
"test:esm": "c8 mocha ./test/esm/cliui-test.mjs",
21+
"test": "c8 mocha ./test/cjs/*.cjs ./test/esm/*.mjs",
2322
"postest": "check",
2423
"coverage": "c8 report --check-coverage",
2524
"precompile": "rimraf build",
@@ -49,12 +48,15 @@
4948
"author": "Ben Coe <[email protected]>",
5049
"license": "ISC",
5150
"dependencies": {
52-
"string-width": "^4.2.0",
53-
"strip-ansi": "^6.0.1",
54-
"wrap-ansi": "^7.0.0"
51+
"string-width": "^5.1.2",
52+
"strip-ansi": "^7.0.1",
53+
"wrap-ansi": "^8.1.0"
5554
},
5655
"devDependencies": {
56+
"@rollup/plugin-commonjs": "^25.0.0",
57+
"@rollup/plugin-node-resolve": "^15.0.2",
5758
"@types/node": "^14.0.27",
59+
"@types/wrap-ansi": "^8.0.1",
5860
"@typescript-eslint/eslint-plugin": "^4.0.0",
5961
"@typescript-eslint/parser": "^4.0.0",
6062
"c8": "^7.3.0",
@@ -67,8 +69,8 @@
6769
"gts": "^3.0.0",
6870
"mocha": "^10.0.0",
6971
"rimraf": "^3.0.2",
70-
"rollup": "^2.23.1",
71-
"rollup-plugin-ts": "^3.0.2",
72+
"rollup": "^2.79.1",
73+
"rollup-plugin-ts": "^3.2.0",
7274
"standardx": "^7.0.0",
7375
"typescript": "^4.0.0"
7476
},

rollup.config.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
import ts from 'rollup-plugin-ts'
2+
import nodeResolve from '@rollup/plugin-node-resolve'
3+
import commonjs from '@rollup/plugin-commonjs'
4+
5+
// These two transient dependencies are still CommonJS:
6+
// 'node_modules/emoji-regex/index.js',
7+
// 'node_modules/eastasianwidth/eastasianwidth.js'
28

39
const output = {
410
format: 'cjs',
@@ -12,6 +18,8 @@ export default {
1218
input: './lib/cjs.ts',
1319
output,
1420
plugins: [
15-
ts({ /* options */ })
21+
ts({ /* options */ }),
22+
nodeResolve(),
23+
commonjs()
1624
]
1725
}

test/cjs/cliui-test.cjs

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
const { runTests } = require('../shared-tests.cjs')
2+
const cliui = require('../../build/index.cjs')
3+
4+
runTests(cliui, 'CJS')

0 commit comments

Comments
 (0)