diff --git a/color.d.ts b/color.d.ts new file mode 100644 index 0000000..a5a6b93 --- /dev/null +++ b/color.d.ts @@ -0,0 +1,229 @@ +/** + * @packageDocumentation + * @module @kurkle/color + */ +export type RGBA = { + /** + * - red [0..255] + */ + r: number; + /** + * - green [0..255] + */ + g: number; + /** + * - blue [0..255] + */ + b: number; + /** + * - alpha [0..1] + */ + a: number; +}; + /** + * Parse HEX to color + * @param {string} str - the string + */ +export function hexParse(str: string): { + r: number; + g: number; + b: number; + a: number; +}; +/** + * Return HEX string from color + * @param {RGBA} v - the color + */ +export function hexString(v: import("./index.js").RGBA): string | import("./index.js").RGBA; +/** + * Rounds to decimal to nearest integer + * @param {number} v - the number to round + */ +export function round(v: number): number; +/** + * convert percent to byte 0..255 + * @param {number} v - 0..100 + */ +export function p2b(v: number): number; +/** + * convert byte to percet 0..100 + * @param {number} v - 0..255 + */ +export function b2p(v: number): number; +/** + * convert normalized to byte 0..255 + * @param {number} v - 0..1 + */ +export function n2b(v: number): number; +/** + * convert byte to normalized 0..1 + * @param {number} v - 0..255 + */ +export function b2n(v: number): number; +/** + * convert normalized to percent 0..100 + * @param {number} v - 0..1 + */ +export function n2p(v: number): number; +/** + * Convert rgb to hsl + * @param {RGBA} v - the color + * @returns {number[]} - [h, s, l] + */ +export function rgb2hsl(v: import(".").RGBA): number[]; +/** + * Convert hsl to rgb + * @param {number|number[]} h - hue | [h, s, l] + * @param {number} [s] - saturation + * @param {number} [l] - lightness + * @returns {number[]} + */ +export function hsl2rgb(h: number | number[], s?: number, l?: number): number[]; +/** + * Convert hwb to rgb + * @param {number|number[]} h - hue | [h, s, l] + * @param {number} [w] - whiteness + * @param {number} [b] - blackness + * @returns {number[]} + */ +export function hwb2rgb(h: number | number[], w?: number, b?: number): number[]; +/** + * Convert hsv to rgb + * @param {number|number[]} h - hue | [h, s, l] + * @param {number} [s] - saturation + * @param {number} [v] - value + * @returns {number[]} + */ +export function hsv2rgb(h: number | number[], s?: number, v?: number): number[]; +/** + * Parse hsl/hsv/hwb color string + * @param {string} str - hsl/hsv/hwb color string + * @returns {RGBA} - the parsed color components + */ +export function hueParse(str: string): import(".").RGBA; +/** + * Rotate the `v` color by `deg` degrees + * @param {RGBA} v - the color + * @param {number} deg - degrees to rotate + */ +export function rotate(v: import(".").RGBA, deg: number): void; +/** + * Return hsl(a) string from color components + * @param {RGBA} v - the color + * @return {string|undefined} + */ +export function hslString(v: import(".").RGBA): string; +/** + * Parse color name + * @param {string} str - the color name + * @return {RGBA} - the color + */ +export function nameParse(str: string): import(".").RGBA; +/** + * Parse rgb(a) string to RGBA + * @param {string} str - the rgb string + * @returns {RGBA} - the parsed color + */ +export function rgbParse(str: string): import(".").RGBA; +/** + * Return rgb(a) string from color + * @param {RGBA} v - the color + */ +export function rgbString(v: import(".").RGBA): string; + +export class Color { + /** + * constructor + * @param {Color|RGBA|string|number[]} input + */ + constructor(input: string | number[] | Color | import(".").RGBA); + /** @type {RGBA} */ + _rgb: RGBA; + /** @type {boolean} */ + _valid: boolean; + /** + * `true` if this is a valid color + * @returns {boolean} + */ + get valid(): boolean; + /** + * @param {RGBA} obj - the color + */ + set rgb(arg: import(".").RGBA); + /** + * @returns {RGBA} - the color + */ + get rgb(): import(".").RGBA; + /** + * rgb(a) string + */ + rgbString(): string; + /** + * hex string + */ + hexString(): string | import(".").RGBA; + /** + * hsl(a) string + */ + hslString(): string; + /** + * Mix another color to this color. + * @param {Color} color - Color to mix in + * @param {number} weight - 0..1 + */ + mix(color: Color, weight: number): Color; + /** + * Clone + */ + clone(): Color; + /** + * Set aplha + * @param {number} a - the alpha [0..1] + */ + alpha(a: number): Color; + /** + * Make clearer + * @param {number} ratio - ratio [0..1] + */ + clearer(ratio: number): Color; + /** + * Convert to grayscale + */ + greyscale(): Color; + /** + * Opaquer + * @param {number} ratio - ratio [0..1] + */ + opaquer(ratio: number): Color; + negate(): Color; + /** + * Lighten + * @param {number} ratio - ratio [0..1] + */ + lighten(ratio: number): Color; + /** + * Darken + * @param {number} ratio - ratio [0..1] + */ + darken(ratio: number): Color; + /** + * Saturate + * @param {number} ratio - ratio [0..1] + */ + saturate(ratio: number): Color; + /** + * Desaturate + * @param {number} ratio - ratio [0..1] + */ + desaturate(ratio: number): Color; + /** + * Rotate + * @param {number} deg - degrees to rotate + */ + rotate(deg: number): Color; +} +/** + * Construct new Color instance + * @param {Color|RGBA|string|number[]} input + */ +export default function _default(input: string | number[] | Color | RGBA): Color; diff --git a/gulpfile.js b/gulpfile.js index c9458d8..2d7aad9 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -23,6 +23,7 @@ function run(bin, args) { function buildTask() { pack(); + gulp.src('./color.d.ts').pipe(gulp.dest('./dist/')); return run('rollup/dist/bin/rollup', ['-c']); } diff --git a/package-lock.json b/package-lock.json index 746bf27..ac06219 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@kurkle/color", - "version": "0.1.1", + "version": "0.1.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -161,6 +161,44 @@ } } }, + "@rollup/plugin-typescript": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-3.0.0.tgz", + "integrity": "sha512-O6915Ril3+Q0B4P898PULAcPFZfPuatEB/4nox7bnK48ekGrmamMYhMB5tOqWjihEWrw4oz/NL+c+/kS3Fk95g==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.1", + "resolve": "^1.14.1" + }, + "dependencies": { + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "@rollup/pluginutils": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.8.tgz", + "integrity": "sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==", + "dev": true, + "requires": { + "estree-walker": "^1.0.1" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -195,9 +233,9 @@ } }, "acorn": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", "dev": true }, "acorn-jsx": { @@ -3628,6 +3666,17 @@ "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==", "dev": true }, + "js-cleanup": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-cleanup/-/js-cleanup-1.0.1.tgz", + "integrity": "sha512-wyHeWKqbcQV78/tiMJ6pgJrkG7p2u3b2xX9IJFvvurpJL9/++89dHfkUebhWvSMS84LG0uQ7BnG5GGyAzY21Ag==", + "dev": true, + "requires": { + "magic-string": "^0.25.1", + "perf-regexes": "^1.0.1", + "skip-regex": "^1.0.2" + } + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4414,6 +4463,12 @@ "pify": "^2.0.0" } }, + "perf-regexes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/perf-regexes/-/perf-regexes-1.0.1.tgz", + "integrity": "sha512-L7MXxUDtqr4PUaLFCDCXBfGV/6KLIuSEccizDI7JxT+c9x1G1v04BQ4+4oag84SHaCdrBgQAIs/Cqn+flwFPng==", + "dev": true + }, "perf_hooks": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/perf_hooks/-/perf_hooks-0.0.1.tgz", @@ -4804,14 +4859,24 @@ } }, "rollup": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.19.4.tgz", - "integrity": "sha512-G24w409GNj7i/Yam2cQla6qV2k6Nug8bD2DZg9v63QX/cH/dEdbNJg8H4lUm5M1bRpPKRUC465Rm9H51JTKOfQ==", + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.31.1.tgz", + "integrity": "sha512-2JREN1YdrS/kpPzEd33ZjtuNbOuBC3ePfuZBdKEybvqcEcszW1ckyVqzcEiEe0nE8sqHK+pbJg+PsAgRJ8+1dg==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/node": "*", + "acorn": "^7.1.0" + } + }, + "rollup-plugin-cleanup": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-cleanup/-/rollup-plugin-cleanup-3.1.1.tgz", + "integrity": "sha512-wMS9JQm4ShvlMqno1pOfqvh0yYgNLO2ZgmzDsVvKuDt4XCn+9DcMoUwRQ5t9p9b113dR5FhPFFUHnvvQ/yuEtA==", "dev": true, "requires": { - "@types/estree": "0.0.39", - "@types/node": "^12.6.9", - "acorn": "^6.2.1" + "js-cleanup": "^1.0.1", + "rollup-pluginutils": "^2.3.3" } }, "rollup-plugin-commonjs": { @@ -5247,6 +5312,12 @@ } } }, + "skip-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/skip-regex/-/skip-regex-1.0.2.tgz", + "integrity": "sha512-pEjMUbwJ5Pl/6Vn6FsamXHXItJXSRftcibixDmNCWbWhic0hzHrwkMZo0IZ7fMRH9KxcWDFSkzhccB4285PutA==", + "dev": true + }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", @@ -5864,9 +5935,9 @@ "dev": true }, "typedoc": { - "version": "0.16.9", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.16.9.tgz", - "integrity": "sha512-UvOGoy76yqwCXwxPgatwgXWfsQ3FczyZ6ZNLjhCPK+TsDir6LiU3YB6N9XZmPv36E+7LA860mnc8a0v6YADKFw==", + "version": "0.16.10", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.16.10.tgz", + "integrity": "sha512-Eo1+K+XTiqSi4lz5cPrV4RncLv6abjCd/jfL5tTueNZGO2p8x2yDIrXkxL9C+SoLjJm2xpMs3CXYmTnilxk1cA==", "dev": true, "requires": { "@types/minimatch": "3.0.3", @@ -5880,6 +5951,14 @@ "shelljs": "^0.8.3", "typedoc-default-themes": "^0.7.2", "typescript": "3.7.x" + }, + "dependencies": { + "typescript": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", + "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", + "dev": true + } } }, "typedoc-default-themes": { @@ -5913,15 +5992,15 @@ } }, "typescript": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", - "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.2.tgz", + "integrity": "sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ==", "dev": true }, "uglify-js": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.7.tgz", - "integrity": "sha512-FeSU+hi7ULYy6mn8PKio/tXsdSXN35lm4KgV2asx00kzrLU9Pi3oAslcJT70Jdj7PHX29gGUPOT6+lXGBbemhA==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.0.tgz", + "integrity": "sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ==", "dev": true, "optional": true, "requires": { diff --git a/package.json b/package.json index f99dc6d..4ec93ec 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,10 @@ { "name": "@kurkle/color", - "version": "0.1.3", + "version": "0.1.4", "description": "css color parsing, manupulation and conversion", "main": "dist/color.js", "module": "dist/color.esm.js", + "types": "dist/color.d.ts", "scripts": { "test": "node test/index.js" }, @@ -34,6 +35,7 @@ "homepage": "https://github.com/kurkle/color#readme", "dependencies": {}, "devDependencies": { + "@rollup/plugin-typescript": "^3.0.0", "assert": "^2.0.0", "babel-eslint": "^10.0.2", "benchmark": "^2.1.4", @@ -56,15 +58,17 @@ "gulp": "^4.0.2", "gulp-eslint": "^6.0.0", "perf_hooks": "0.0.1", - "rollup": "^1.19.4", + "rollup": "^1.31.1", + "rollup-plugin-cleanup": "^3.1.1", "rollup-plugin-commonjs": "^10.0.2", "rollup-plugin-istanbul": "^2.0.1", "rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-terser": "^5.1.1", "rollup-plugin-visualizer": "^3.3.1", "tinycolor2": "^1.4.1", - "typedoc": "^0.16.9", + "typedoc": "^0.16.10", "typedoc-plugin-external-module-name": "^3.0.0", + "typescript": "^3.8.2", "util": "^0.12.1" } } diff --git a/rollup.config.js b/rollup.config.js index 823b662..349ecb4 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,5 +1,6 @@ /* eslint-env es6 */ +import cleanup from 'rollup-plugin-cleanup'; import {terser} from 'rollup-plugin-terser'; import visualizer from 'rollup-plugin-visualizer'; import {version, homepage} from './package.json'; @@ -15,6 +16,11 @@ const banner = `/*! export default [ { input: input, + plugins: [ + cleanup({ + sourcemap: true + }) + ], output: { name: '@kurkle/color', file: 'dist/color.js', @@ -48,6 +54,11 @@ export default [ }, { input: input, + plugins: [ + cleanup({ + sourcemap: true + }) + ], output: { name: '@kurkle/color', file: 'dist/color.esm.js', diff --git a/src/byte.js b/src/byte.js index 3eba49c..27f4fd6 100644 --- a/src/byte.js +++ b/src/byte.js @@ -1,6 +1,6 @@ /** * @packageDocumentation - * @module Index + * @module helpers */ /** diff --git a/src/color.js b/src/color.js index 138be88..8263366 100644 --- a/src/color.js +++ b/src/color.js @@ -1,6 +1,6 @@ /** * @packageDocumentation - * @module Index + * @module index */ import {hexParse, hexString} from './hex'; @@ -14,12 +14,12 @@ import {b2n, n2b, round} from './byte'; */ /** - * Modify HSL properties - * @param {RGBA} v - the color - * @param {number} i - index [0=h, 1=s, 2=l] - * @param {number} ratio - ratio [0..1] - * @private - */ + * Modify HSL properties + * @param {RGBA} v - the color + * @param {number} i - index [0=h, 1=s, 2=l] + * @param {number} ratio - ratio [0..1] + * @hidden + */ function modHSL(v, i, ratio) { if (v) { let tmp = rgb2hsl(v); @@ -35,14 +35,15 @@ function modHSL(v, i, ratio) { * Clone color * @param {RGBA} v - the color * @param {object} [proto] - prototype + * @hidden */ function clone(v, proto) { return v ? Object.assign(proto || {}, v) : v; } /** - * * @param {RGBA|number[]} input + * @hidden */ function fromObject(input) { var v = {r: 0, g: 0, b: 0, a: 255}; @@ -62,6 +63,7 @@ function fromObject(input) { /** * @param {string} str + * @hidden */ function functionParse(str) { if (str.charAt(0) === 'r') { diff --git a/src/hex.js b/src/hex.js index 3b7966d..8b53361 100644 --- a/src/hex.js +++ b/src/hex.js @@ -1,6 +1,6 @@ /** * @packageDocumentation - * @module Index + * @module helpers */ /** @@ -8,35 +8,36 @@ */ /** - * @private - */ + * @hidden + */ const map = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15}; + /** - * @private + * @hidden */ const hex = '0123456789ABCDEF'; /** * @param {number} b - byte - * @private + * @hidden */ const h1 = (b) => hex[b & 0xF]; /** * @param {number} b - byte - * @private + * @hidden */ const h2 = (b) => hex[(b & 0xF0) >> 4] + hex[b & 0xF]; /** * @param {number} b - byte - * @private + * @hidden */ const eq = (b) => (((b & 0xF0) >> 4) === (b & 0xF)); /** * @param {RGBA} v - the color - * @private + * @hidden */ function isShort(v) { return eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a); diff --git a/src/hue.js b/src/hue.js index 540af1a..dc5a201 100644 --- a/src/hue.js +++ b/src/hue.js @@ -1,6 +1,6 @@ /** * @packageDocumentation - * @module Index + * @module helpers */ import {b2n, n2p, n2b, p2b} from './byte'; @@ -10,7 +10,7 @@ import {b2n, n2p, n2b, p2b} from './byte'; */ /** - * @private + * @hidden */ const HUE_RE = /^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/; @@ -21,6 +21,7 @@ const HUE_RE = /^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+ * @param {number} s - saturation [0..1] * @param {number} l - lightness [0..1] * @returns {number[]} - [r, g, b] each normalized to [0..1] + * @hidden */ function hsl2rgbn(h, s, l) { const a = s * Math.min(l, 1 - l); @@ -38,6 +39,7 @@ function hsl2rgbn(h, s, l) { * @param {number} s - saturation [0..1] * @param {number} v - value [0..1] * @returns {number[]} - [r, g, b] each normalized to [0..1] + * @hidden */ function hsv2rgbn(h, s, v) { /** @@ -53,6 +55,7 @@ function hsv2rgbn(h, s, v) { * @param {number} w - whiteness [0..1] * @param {number} b - blackness [0..1] * @returns {number[]} - [r, g, b] each normalized to [0..1] + * @hidden */ function hwb2rgbn(h, w, b) { const rgb = hsl2rgbn(h, 1, 0.5); @@ -102,6 +105,7 @@ export function rgb2hsl(v) { * @param {number} b * @param {number} c * @private + * @hidden */ function calln(f, a, b, c) { return ( @@ -146,7 +150,7 @@ export function hsv2rgb(h, s, v) { /** * @param {number} h - the angle - * @private + * @hidden */ function hue(h) { return (h % 360 + 360) % 360; diff --git a/src/index.js b/src/index.js index 4647003..ac69343 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,7 @@ + /** * @packageDocumentation - * @module Index + * @module index */ import Color from './color'; @@ -13,7 +14,6 @@ import Color from './color'; * @property {number} a - alpha [0..1] */ - /** * Construct new Color instance * @param {Color|RGBA|string|number[]} input diff --git a/src/names.js b/src/names.js index 7745916..ae01482 100644 --- a/src/names.js +++ b/src/names.js @@ -1,6 +1,6 @@ /** * @packageDocumentation - * @module Index + * @module helpers */ import {names} from '../packed'; diff --git a/src/rgb.js b/src/rgb.js index 948fe48..2dfa2e5 100644 --- a/src/rgb.js +++ b/src/rgb.js @@ -1,6 +1,6 @@ /** * @packageDocumentation - * @module Index + * @module helpers */ import {p2b, b2n} from './byte'; @@ -10,7 +10,7 @@ import {p2b, b2n} from './byte'; */ /** - * @private + * @hidden */ const RGB_RE = /^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/; diff --git a/tsconfig.json b/tsconfig.json index 41fa1ee..bdc013c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,22 +1,31 @@ { "compilerOptions": { - "target": "ES6", - "moduleResolution": "Node", - "allowSyntheticDefaultImports": true, - "allowJs": true, - "checkJs": true, - "noEmit": true + "target": "es6", + "module": "es6", + "moduleResolution": "Node", + "allowJs": true, + "checkJs": true, + "noEmit": true, + "strict": false, + "alwaysStrict": true, + "esModuleInterop": true, + "noImplicitThis": true }, + "include": [ + "./src/index.js" + ], "typedocOptions": { - "name": "@kurkle/color", - "mode": "modules", - "target": "ES2018", - "template": "minimal", - "inputFiles": ["./src"], - "plugin": ["typedoc-plugin-external-module-name"], - "out": "./docs" + "name": "@kurkle/color", + "mode": "modules", + "excludeExternals": true, + "target": "ES6", + "template": "minimal", + "includes": [ + "./src" + ], + "plugins": [ + "typedoc-plugin-external-module-name", + ], + "out": "./docs" }, - "include": [ - "./src/*.js" - ] - } \ No newline at end of file +} \ No newline at end of file