delta icon indicating copy to clipboard operation
delta copied to clipboard

build: switch to vite, vitest and api-extractor; add esm output

Open fnlctrl opened this issue 2 years ago • 1 comments

Build tools simpification

  • Use vite for bundling cjs and esm ouput
  • Use vitest for testing & coverage report
    • TS is supported out of the box so ts-node is no longer necessary
    • Native v8 instrumentation is used for coverage, so nyc is no longer necessary
  • Use api-extractor for .d.ts rollup

Minor changes

  • Replace TS namespace as plain object TS it self is migrating away from namespaces. Since it's considered a legacy feature and not part of ES spec, it's better to migrate away too.
  • Change require to import

fnlctrl avatar Jul 03 '23 23:07 fnlctrl

@luin I added esm output despite potential dual package hazard because there're no instanceof checks, and Delta is small enough to not cause perf issues even if loaded twice.

The only issue now is usage in node would become

const Delta = require('quill-delta').default

I was wondering if it would be better to remove the default export, so it's simply

const { Delta } = require('quill-delta')

which would mirror normal esm import

import { Delta } from 'quill-delta'

fnlctrl avatar Jul 03 '23 23:07 fnlctrl