Files
hanzi-writer/rollup.config.js
David Chanin 48f5037606 feat(types): Typescript rewrite (#211)
BREAKING CHANGE: Full rewrite in typescript, deprecated constructor args are removed

* [ts-migrate][src] Init tsconfig.json file

Co-authored-by: ts-migrate <>

* [ts-migrate][src] Rename files from JS/JSX to TS/TSX

Co-authored-by: ts-migrate <>

* [ts-migrate][src] Run TS Migrate

Co-authored-by: ts-migrate <>

* Convert project in to typescript

* update(UserStrokeRenderer) add typings

* update(jest-setup) replace (deprecated) lolex with "@sinonjs/fake-timers"

* move tsconfig to root dir

* Type additions, fixes, test updates

* Update typings

* Configure rollup for deployment

* fix tests & linting

* Include declaration types in build

* update(Mutation) Implement type checks for provided mutation values based on the RenderState class/object
- This makes the mutation a bit more verbose as it gets rid of the _inflate() call
- There's no longer a need to provide a scope (unless you'd like to manually cancel mutations)
- Optimise the cancelAll() function

* update(utils) remove inflate() function as it's no longer needed

* update(typings) allow users to import typedefs from "hanzi-writer"

* chore: bump package versions

* update(demo) fix default "showCharacter" state

* Strengthen typings

* Update lint config

* update(Mutation) edge case for handling "isAlreadyAtEnd" where startValue may be undefined

* update(HanziWriter) handle edge case where "_withDataPromise" may not be set

* update(HanziWriter) add "resetDisplay" in cancelQuiz to allow users to reset their show/hide" character/outline options when manually cancelling.

* update(tests) add "quiz.cancelTest({ resetDisplay: bool })" tests

* update(HanziWriter) write tests for "_loadingManager" singleton

* Remove webpack config

* update(Quiz) add "onHighlightComplete" to quiz options
This allows UI updates after the highlight has finished.

* Add example using react (with typescript)
Move vanilla js example from "demo" in to "examples" dir

* update(Positioner) Require options with non-null values

* update(Quiz & strokeMatches) apply cleanups, move default export to top of file

* update(HanziWriter) don't return mutations

* General file cleanups

* update(project) Configure ts plugin to use babel transpiler
- add filesize plugin
- remove babel 6 packages
- remove webpack

* update(types) Loosen type requirement of CharacterJson to avoid type assertions.

* fix(mutations) Quiz highlight complete color should now work correctly.

Seems to be two sources of truth for display stroke colors in RenderStateObject: "character[xxx].strokeColor" & "options.xxxxColor". The former never was never used so this has now been removed from the render state object.

* Update quiz tests

* Update using-react example

* fix(CharacterActions) race condition between highlightStroke & showStroke where highlight opacity doesn't reset

* update(tests) add svg/RenderTarget tests

* fix typo

* update(tests) Add more RenderTarget tests
bump packages

* bump packages

* remove unused types package

* Update snapshots

* fix(geometry) stack overflow executing the frechetDist function on complex paths

Had some error logs that involve stack overflows originating from `recursiveCalc`. Rather opt for an O(n^2) algo.

* update(circleci/config.yml) node version to v14 LTS

* singlequote prettier style

* recreating old tests to ensure functionality has not changed

* removing examples to reduce scope of changes

* adding back demo from master branch

* fixing up imports and revertin cancelQuiz style to match master

* reverting closer to master

* reverting closer to master

* changing cov target to 96

* fixing types

* minor reversions

* updating package.json version

Co-authored-by: James <jamsch18@student.wintec.ac.nz>
Co-authored-by: James S <jschafli@hotmail.com>
2021-01-18 22:16:57 +00:00

59 lines
1.3 KiB
JavaScript

import { terser } from 'rollup-plugin-terser';
import ts from '@wessberg/rollup-plugin-ts';
import resolve from '@rollup/plugin-node-resolve';
import babel from '@rollup/plugin-babel';
import pkg from './package.json';
import license from 'rollup-plugin-license';
import filesize from 'rollup-plugin-filesize';
const extensions = ['.js', '.ts'];
export default [
{
input: 'src/HanziWriter.ts',
output: [
{
file: pkg.main,
format: 'cjs',
sourcemap: true,
exports: 'auto',
},
{
file: 'dist/hanzi-writer.min.js',
format: 'iife',
name: 'HanziWriter',
sourcemap: true,
plugins: [terser()],
exports: 'default',
},
{
file: 'dist/hanzi-writer.js',
format: 'iife',
name: 'HanziWriter',
exports: 'default',
},
{
file: pkg.module,
format: 'es',
sourcemap: true,
exports: 'default',
},
],
plugins: [
filesize(),
ts({
transpiler: 'babel',
}),
resolve({ extensions }),
babel({
exclude: 'node_modules/**',
extensions,
babelHelpers: 'bundled',
}),
license({
banner: `Hanzi Writer v<%= pkg.version %> | https://chanind.github.io/hanzi-writer`,
}),
],
},
];