diff --git a/.eslintrc.js b/.eslintrc.js index 846d80475..25dce0423 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -6,7 +6,7 @@ module.exports = { 'plugin:prettier/recommended', ], parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint', 'simple-import-sort'], + plugins: ['@typescript-eslint', 'prettier', 'simple-import-sort'], root: true, rules: { camelcase: 'off', diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 675e2ced8..66dcbe6af 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,21 +9,21 @@ on: release: types: [released] jobs: - # TODO: Re-enable after releasing core - # test: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v2 - # - uses: actions/setup-node@v1 - # with: - # node-version: '16' - # - run: npm install - # - run: npm run test --workspaces - # - run: npm run coverage - # - uses: coverallsapp/github-action@master - # with: - # github-token: ${{ secrets.GITHUB_TOKEN }} - # path-to-lcov: ./coverage/lcov.info + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: '16' + # TODO: Find better way to set up packages + - run: npm run setup + - run: npm run test --workspaces + - run: npm run coverage + - uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + path-to-lcov: ./coverage/lcov.info deploy: needs: test if: startsWith(github.ref, 'refs/tags/') diff --git a/package.json b/package.json index 14772732a..dd02fd015 100644 --- a/package.json +++ b/package.json @@ -10,14 +10,22 @@ ], "scripts": { "clean": "rimraf .nyc_output test", - "coverage": "run-s coverage:prepare coverage:merge coverage:report", + "coverage": "run-s coverage:prepare coverage:package coverage:merge coverage:report", "coverage:merge": "run-s coverage:merge:*", "coverage:merge:core": "nyc merge packages/core/.nyc_output .nyc_output/core.json", "coverage:merge:tweakpane": "nyc merge packages/tweakpane/.nyc_output .nyc_output/tweakpane.json", + "coverage:package": "run-s coverage:package:*", + "coverage:package:core": "(cd packages/core && npm install && npm run coverage)", + "coverage:package:tweakpane": "(cd packages/tweakpane && npm install && npm run coverage)", "coverage:prepare": "mkdirp .nyc_output", - "coverage:report": "nyc report --reporter=lcov" + "coverage:report": "nyc report --reporter=lcov", + "setup": "(cd packages/core && npm install) && (cd packages/tweakpane && npm install) && npm install" }, "devDependencies": { + "@typescript-eslint/eslint-plugin": "^4.23.0", + "eslint-config-prettier": "^8.1.0", + "eslint-plugin-prettier": "^3.3.1", + "eslint-plugin-simple-import-sort": "^7.0.0", "mkdirp": "^1.0.4", "npm-run-all": "^4.1.5", "nyc": "^15.1.0", diff --git a/packages/core/package.json b/packages/core/package.json index 35dcfd6dd..299c592b2 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -32,14 +32,10 @@ "@types/jsdom": "^16.2.10", "@types/mocha": "^8.2.1", "@types/node": "^10.12.18", - "@typescript-eslint/eslint-plugin": "^4.16.1", "@typescript-eslint/parser": "^4.16.1", "assert": "^2.0.0", "autoprefixer": "^9.1.5", - "eslint": "^7.21.0", - "eslint-config-prettier": "^8.1.0", - "eslint-plugin-prettier": "^3.3.1", - "eslint-plugin-simple-import-sort": "^7.0.0", + "eslint": "^7.26.0", "jsdom": "^16.5.3", "mocha": "^8.3.0", "npm-run-all": "^4.1.5", diff --git a/packages/core/src/blade/button/api/button-test.ts b/packages/core/src/blade/button/api/button-test.ts index 3c35a369c..804d7df91 100644 --- a/packages/core/src/blade/button/api/button-test.ts +++ b/packages/core/src/blade/button/api/button-test.ts @@ -86,7 +86,7 @@ describe(ButtonApi.name, () => { const win = createTestWindow(); const doc = win.document; const api = createApi(doc); - api.on('click', function(this: any) { + api.on('click', function (this: any) { assert.strictEqual(this, api); done(); }); diff --git a/packages/core/src/blade/common/controller/value-blade.ts b/packages/core/src/blade/common/controller/value-blade.ts index bc5553d45..9ade4693c 100644 --- a/packages/core/src/blade/common/controller/value-blade.ts +++ b/packages/core/src/blade/common/controller/value-blade.ts @@ -11,9 +11,10 @@ interface Config { viewProps: ViewProps; } -export class ValueBladeController extends BladeController< - V -> { +export class ValueBladeController< + T, + V extends View, +> extends BladeController { public readonly value: Value; constructor(config: Config) { diff --git a/packages/core/src/blade/common/model/blade-rack.ts b/packages/core/src/blade/common/model/blade-rack.ts index f21f21ddb..22e92fe63 100644 --- a/packages/core/src/blade/common/model/blade-rack.ts +++ b/packages/core/src/blade/common/model/blade-rack.ts @@ -124,9 +124,8 @@ export class BladeRack { this.onChildViewPropsChange_ = this.onChildViewPropsChange_.bind(this); this.onDescendantLayout_ = this.onDescendantLayout_.bind(this); this.onDescendantInputChange_ = this.onDescendantInputChange_.bind(this); - this.onDescendantMonitorUpdate_ = this.onDescendantMonitorUpdate_.bind( - this, - ); + this.onDescendantMonitorUpdate_ = + this.onDescendantMonitorUpdate_.bind(this); this.emitter = new Emitter(); diff --git a/packages/core/src/blade/folder/api/folder-test.ts b/packages/core/src/blade/folder/api/folder-test.ts index 454a7b285..182d1c455 100644 --- a/packages/core/src/blade/folder/api/folder-test.ts +++ b/packages/core/src/blade/folder/api/folder-test.ts @@ -108,7 +108,7 @@ describe(FolderApi.name, () => { it('should bind `this` within handler to pane', (done) => { const PARAMS = {foo: 1}; const pane = createApi(); - pane.on('change', function(this: any) { + pane.on('change', function (this: any) { assert.strictEqual(this, pane); done(); }); @@ -148,7 +148,7 @@ describe(FolderApi.name, () => { it('should bind `this` within handler to folder', (done) => { const PARAMS = {foo: 1}; const api = createApi(); - api.on('change', function(this: any) { + api.on('change', function (this: any) { assert.strictEqual(this, api); done(); }); diff --git a/packages/core/src/blade/folder/api/folder.ts b/packages/core/src/blade/folder/api/folder.ts index 14f9fcb99..b90ddcc27 100644 --- a/packages/core/src/blade/folder/api/folder.ts +++ b/packages/core/src/blade/folder/api/folder.ts @@ -40,8 +40,10 @@ export interface FolderApiEvents { }; } -export class FolderApi extends RackLikeApi - implements BladeRackApi { +export class FolderApi + extends RackLikeApi + implements BladeRackApi +{ private readonly emitter_: Emitter; /** diff --git a/packages/core/src/blade/label/controller/label.ts b/packages/core/src/blade/label/controller/label.ts index abd8a1588..07b334ed8 100644 --- a/packages/core/src/blade/label/controller/label.ts +++ b/packages/core/src/blade/label/controller/label.ts @@ -11,7 +11,7 @@ interface Config> { } export class LabelController< - C extends Controller + C extends Controller, > extends BladeController { public readonly props: LabelProps; public readonly valueController: C; diff --git a/packages/core/src/blade/label/controller/value-label.ts b/packages/core/src/blade/label/controller/value-label.ts index 5dbb8fa0f..1cb5ea711 100644 --- a/packages/core/src/blade/label/controller/value-label.ts +++ b/packages/core/src/blade/label/controller/value-label.ts @@ -12,7 +12,7 @@ interface Config> { export class LabeledValueController< T, - C extends ValueController + C extends ValueController, > extends ValueBladeController { public readonly props: LabelProps; public readonly valueController: C; diff --git a/packages/core/src/blade/plugin.ts b/packages/core/src/blade/plugin.ts index 92f784711..b36e1a759 100644 --- a/packages/core/src/blade/plugin.ts +++ b/packages/core/src/blade/plugin.ts @@ -50,8 +50,9 @@ export function createBladeController

( return null; } - const disabled = ParamsParsers.optional.boolean(args.params['disabled']) - .value; + const disabled = ParamsParsers.optional.boolean( + args.params['disabled'], + ).value; const hidden = ParamsParsers.optional.boolean(args.params['hidden']).value; return plugin.controller({ blade: createBlade(), diff --git a/packages/core/src/common/model/reactive.ts b/packages/core/src/common/model/reactive.ts index 02fef1aa4..fdd3086a9 100644 --- a/packages/core/src/common/model/reactive.ts +++ b/packages/core/src/common/model/reactive.ts @@ -19,7 +19,7 @@ export function bindValue(value: Value, applyValue: (value: T) => void) { export function bindValueMap< O extends Record, - Key extends keyof O + Key extends keyof O, >(valueMap: ValueMap, key: Key, applyValue: (value: O[Key]) => void) { bindValue(valueMap.value(key), applyValue); } diff --git a/packages/core/src/common/number-util-test.ts b/packages/core/src/common/number-util-test.ts index a3b333c15..e25b82c47 100644 --- a/packages/core/src/common/number-util-test.ts +++ b/packages/core/src/common/number-util-test.ts @@ -27,24 +27,26 @@ interface LoopTestCase { } describe('NumberUtil', () => { - ([ - { - args: [100, 0, 200, 0, 1], - expected: 0.5, - }, - { - args: [32, 0, 16, 0, 1], - expected: 2, - }, - { - args: [0.5, 0, 1, 20, 40], - expected: 30, - }, - { - args: [1.5, 0, 1, -30, 30], - expected: 60, - }, - ] as MapTestCase[]).forEach((testCase) => { + ( + [ + { + args: [100, 0, 200, 0, 1], + expected: 0.5, + }, + { + args: [32, 0, 16, 0, 1], + expected: 2, + }, + { + args: [0.5, 0, 1, 20, 40], + expected: 30, + }, + { + args: [1.5, 0, 1, -30, 30], + expected: 60, + }, + ] as MapTestCase[] + ).forEach((testCase) => { context(`when ${JSON.stringify(testCase.args)}`, () => { it(`should map to ${testCase.expected}`, () => { assert.ok( @@ -91,20 +93,22 @@ describe('NumberUtil', () => { }); }); - ([ - { - args: [0, 0, 0], - expected: 0, - }, - { - args: [-123, 10, 100], - expected: 10, - }, - { - args: [123, 10, 100], - expected: 100, - }, - ] as ConstrainTestCase[]).forEach((testCase) => { + ( + [ + { + args: [0, 0, 0], + expected: 0, + }, + { + args: [-123, 10, 100], + expected: 10, + }, + { + args: [123, 10, 100], + expected: 100, + }, + ] as ConstrainTestCase[] + ).forEach((testCase) => { context(`when ${JSON.stringify(testCase.args)}`, () => { it(`should constrain ${testCase.expected}`, () => { assert.strictEqual(constrainRange(...testCase.args), testCase.expected); @@ -112,28 +116,30 @@ describe('NumberUtil', () => { }); }); - ([ - { - args: [260 - 360 * 3, 360], - expected: 260, - }, - { - args: [0, 360], - expected: 0, - }, - { - args: [360, 360], - expected: 0, - }, - { - args: [360 + 40, 360], - expected: 40, - }, - { - args: [360 * 2 + 123, 360], - expected: 123, - }, - ] as LoopTestCase[]).forEach((testCase) => { + ( + [ + { + args: [260 - 360 * 3, 360], + expected: 260, + }, + { + args: [0, 360], + expected: 0, + }, + { + args: [360, 360], + expected: 0, + }, + { + args: [360 + 40, 360], + expected: 40, + }, + { + args: [360 * 2 + 123, 360], + expected: 123, + }, + ] as LoopTestCase[] + ).forEach((testCase) => { context(`when ${JSON.stringify(testCase.args)}`, () => { it(`should loop ${testCase.expected}`, () => { assert.strictEqual(loopRange(...testCase.args), testCase.expected); diff --git a/packages/core/src/common/number/controller/slider-text.ts b/packages/core/src/common/number/controller/slider-text.ts index 0be13e3eb..a34173299 100644 --- a/packages/core/src/common/number/controller/slider-text.ts +++ b/packages/core/src/common/number/controller/slider-text.ts @@ -21,7 +21,8 @@ interface Config { * @hidden */ export class SliderTextController - implements ValueController { + implements ValueController +{ public readonly value: Value; public readonly view: SliderTextView; public readonly viewProps: ViewProps; diff --git a/packages/core/src/input-binding/boolean/controller/checkbox.ts b/packages/core/src/input-binding/boolean/controller/checkbox.ts index 214b5636a..ab2ef4164 100644 --- a/packages/core/src/input-binding/boolean/controller/checkbox.ts +++ b/packages/core/src/input-binding/boolean/controller/checkbox.ts @@ -16,7 +16,8 @@ interface Config { * @hidden */ export class CheckboxController - implements ValueController { + implements ValueController +{ public readonly value: Value; public readonly view: CheckboxView; public readonly viewProps: ViewProps; diff --git a/packages/core/src/input-binding/color/converter/color-string-test.ts b/packages/core/src/input-binding/color/converter/color-string-test.ts index e43be27bb..caf797425 100644 --- a/packages/core/src/input-binding/color/converter/color-string-test.ts +++ b/packages/core/src/input-binding/color/converter/color-string-test.ts @@ -97,63 +97,65 @@ describe('StringColorParser', () => { }); }); - ([ - { - expected: { - components: [123, 45, 67, 1.0], - mode: 'hsl', + ( + [ + { + expected: { + components: [123, 45, 67, 1.0], + mode: 'hsl', + }, + input: 'hsl(123, 45, 67)', }, - input: 'hsl(123, 45, 67)', - }, - { - expected: { - components: [123, 0, 0, 1.0], - mode: 'hsl', + { + expected: { + components: [123, 0, 0, 1.0], + mode: 'hsl', + }, + input: 'hsla(123, 0, 0, 1)', }, - input: 'hsla(123, 0, 0, 1)', - }, - { - expected: { - components: [180, 0, 0, 1.0], - mode: 'hsl', + { + expected: { + components: [180, 0, 0, 1.0], + mode: 'hsl', + }, + input: 'hsla(180deg, 0, 0, 1)', }, - input: 'hsla(180deg, 0, 0, 1)', - }, - { - expected: { - components: [(3 * 360) / (2 * Math.PI), 0, 0, 1.0], - mode: 'hsl', + { + expected: { + components: [(3 * 360) / (2 * Math.PI), 0, 0, 1.0], + mode: 'hsl', + }, + input: 'hsla(3rad, 0, 0, 1)', }, - input: 'hsla(3rad, 0, 0, 1)', - }, - { - expected: { - components: [180, 0, 0, 1.0], - mode: 'hsl', + { + expected: { + components: [180, 0, 0, 1.0], + mode: 'hsl', + }, + input: 'hsla(200grad, 0, 0, 1)', }, - input: 'hsla(200grad, 0, 0, 1)', - }, - { - expected: { - components: [90, 0, 0, 1.0], - mode: 'hsl', + { + expected: { + components: [90, 0, 0, 1.0], + mode: 'hsl', + }, + input: 'hsla(0.25turn, 0, 0, 1)', }, - input: 'hsla(0.25turn, 0, 0, 1)', - }, - { - expected: { - components: [0, 0, 0, 0.5], - mode: 'hsl', + { + expected: { + components: [0, 0, 0, 0.5], + mode: 'hsl', + }, + input: 'hsla(0, 0%, 0%, 0.5)', }, - input: 'hsla(0, 0%, 0%, 0.5)', - }, - ] as { - expected: { - components: ColorComponents4; - mode: ColorMode; - }; - input: string; - }[]).forEach(({expected, input}) => { + ] as { + expected: { + components: ColorComponents4; + mode: ColorMode; + }; + input: string; + }[] + ).forEach(({expected, input}) => { context(`when ${JSON.stringify(input)}`, () => { it('should parse color', () => { const c = CompositeColorParser(input); @@ -320,47 +322,49 @@ describe('StringColorParser', () => { }); }); - ([ - { - components: [0, 0, 0], - hex: '#000000', - rgb: 'rgb(0, 0, 0)', - }, - { - components: [255, 255, 255], - hex: '#ffffff', - rgb: 'rgb(255, 255, 255)', - }, - { - components: [0, 0, 0, 0.4], - hex: '#00000066', - rgb: 'rgba(0, 0, 0, 0.40)', - }, - { - components: [0x22, 0x44, 0x88], - hex: '#224488', - rgb: 'rgb(34, 68, 136)', - }, - { - components: [3.14, 0, 0], - hex: '#030000', - rgb: 'rgb(3, 0, 0)', - }, - { - components: [400, 200, 0], - hex: '#ffc800', - rgb: 'rgb(255, 200, 0)', - }, - { - components: [0, 0, 3776], - hex: '#0000ff', - rgb: 'rgb(0, 0, 255)', - }, - ] as { - components: ColorComponents3 | ColorComponents4; - hex: string; - rgb: string; - }[]).forEach((testCase) => { + ( + [ + { + components: [0, 0, 0], + hex: '#000000', + rgb: 'rgb(0, 0, 0)', + }, + { + components: [255, 255, 255], + hex: '#ffffff', + rgb: 'rgb(255, 255, 255)', + }, + { + components: [0, 0, 0, 0.4], + hex: '#00000066', + rgb: 'rgba(0, 0, 0, 0.40)', + }, + { + components: [0x22, 0x44, 0x88], + hex: '#224488', + rgb: 'rgb(34, 68, 136)', + }, + { + components: [3.14, 0, 0], + hex: '#030000', + rgb: 'rgb(3, 0, 0)', + }, + { + components: [400, 200, 0], + hex: '#ffc800', + rgb: 'rgb(255, 200, 0)', + }, + { + components: [0, 0, 3776], + hex: '#0000ff', + rgb: 'rgb(0, 0, 255)', + }, + ] as { + components: ColorComponents3 | ColorComponents4; + hex: string; + rgb: string; + }[] + ).forEach((testCase) => { context(`when ${JSON.stringify(testCase.components)}`, () => { it(`it should format to ${JSON.stringify(testCase.hex)}`, () => { const c = new Color(testCase.components, 'rgb'); diff --git a/packages/core/src/input-binding/color/converter/color-string.ts b/packages/core/src/input-binding/color/converter/color-string.ts index 9a245b739..f250672d6 100644 --- a/packages/core/src/input-binding/color/converter/color-string.ts +++ b/packages/core/src/input-binding/color/converter/color-string.ts @@ -307,9 +307,9 @@ export function colorToFunctionalHslString(value: Color): string { formatPercentage, formatPercentage, ]; - const comps = removeAlphaComponent( - value.getComponents('hsl'), - ).map((comp, index) => formatters[index](comp)); + const comps = removeAlphaComponent(value.getComponents('hsl')).map( + (comp, index) => formatters[index](comp), + ); return `hsl(${comps.join(', ')})`; } diff --git a/packages/core/src/input-binding/color/model/color-test.ts b/packages/core/src/input-binding/color/model/color-test.ts index 74164990f..d3c4422e9 100644 --- a/packages/core/src/input-binding/color/model/color-test.ts +++ b/packages/core/src/input-binding/color/model/color-test.ts @@ -5,25 +5,27 @@ import {Color, RgbaColorObject} from './color'; import {ColorComponents3, ColorComponents4, ColorMode} from './color-model'; describe(Color.name, () => { - ([ - { - expected: {r: 10, g: 20, b: 30, a: 1}, - params: { - components: [10, 20, 30], + ( + [ + { + expected: {r: 10, g: 20, b: 30, a: 1}, + params: { + components: [10, 20, 30], + }, }, - }, - { - expected: {r: 0, g: 255, b: 0, a: 1}, - params: { - components: [-1, 300, 0], + { + expected: {r: 0, g: 255, b: 0, a: 1}, + params: { + components: [-1, 300, 0], + }, }, - }, - ] as { - expected: RgbaColorObject; - params: { - components: ColorComponents3; - }; - }[]).forEach(({expected, params}) => { + ] as { + expected: RgbaColorObject; + params: { + components: ColorComponents3; + }; + }[] + ).forEach(({expected, params}) => { context(`when ${JSON.stringify(params)}`, () => { const c = new Color(params.components, 'rgb'); it('should get components', () => { @@ -40,56 +42,58 @@ describe(Color.name, () => { }); }); - ([ - { - expected: [359, 0, 100, 1], - params: { - components: [359, 0, 100], - mode: 'hsv', + ( + [ + { + expected: [359, 0, 100, 1], + params: { + components: [359, 0, 100], + mode: 'hsv', + }, }, - }, - { - expected: [350, 0, 100, 1], - params: { - components: [-10, -10, 100], - mode: 'hsv', + { + expected: [350, 0, 100, 1], + params: { + components: [-10, -10, 100], + mode: 'hsv', + }, }, - }, - { - expected: [10, 100, 100, 1], - params: { - components: [370, 110, 100], - mode: 'hsv', + { + expected: [10, 100, 100, 1], + params: { + components: [370, 110, 100], + mode: 'hsv', + }, }, - }, - { - expected: [359, 0, 100, 1], - params: { - components: [359, 0, 100], - mode: 'hsl', + { + expected: [359, 0, 100, 1], + params: { + components: [359, 0, 100], + mode: 'hsl', + }, }, - }, - { - expected: [350, 0, 100, 1], - params: { - components: [-10, -10, 100], - mode: 'hsl', + { + expected: [350, 0, 100, 1], + params: { + components: [-10, -10, 100], + mode: 'hsl', + }, }, - }, - { - expected: [10, 100, 100, 1], - params: { - components: [370, 110, 100], - mode: 'hsl', + { + expected: [10, 100, 100, 1], + params: { + components: [370, 110, 100], + mode: 'hsl', + }, }, - }, - ] as { - expected: ColorComponents4; - params: { - components: ColorComponents3; - mode: ColorMode; - }; - }[]).forEach(({expected, params}) => { + ] as { + expected: ColorComponents4; + params: { + components: ColorComponents3; + mode: ColorMode; + }; + }[] + ).forEach(({expected, params}) => { context(`when ${JSON.stringify(params)}`, () => { const c = new Color(params.components, params.mode); it('should get components', () => { diff --git a/packages/core/src/input-binding/common/controller/point-nd-text.ts b/packages/core/src/input-binding/common/controller/point-nd-text.ts index b985c7620..8c1520573 100644 --- a/packages/core/src/input-binding/common/controller/point-nd-text.ts +++ b/packages/core/src/input-binding/common/controller/point-nd-text.ts @@ -46,7 +46,8 @@ function createAxisController( * @hidden */ export class PointNdTextController - implements Controller { + implements Controller +{ public readonly value: Value; public readonly view: PointNdTextView; public readonly viewProps: ViewProps; diff --git a/packages/core/src/input-binding/plugin-test.ts b/packages/core/src/input-binding/plugin-test.ts index 670bca8d5..30c63f159 100644 --- a/packages/core/src/input-binding/plugin-test.ts +++ b/packages/core/src/input-binding/plugin-test.ts @@ -44,6 +44,7 @@ class TestController implements Controller { const TestPlugin: InputBindingPlugin = { id: 'test', + type: 'input', accept: (ex) => typeof ex === 'string' ? {initialValue: ex, params: {}} : null, binding: { diff --git a/packages/core/src/monitor-binding/plugin-test.ts b/packages/core/src/monitor-binding/plugin-test.ts index bb1340299..1fbff1c8e 100644 --- a/packages/core/src/monitor-binding/plugin-test.ts +++ b/packages/core/src/monitor-binding/plugin-test.ts @@ -43,6 +43,7 @@ class TestController implements Controller { const TestPlugin: MonitorBindingPlugin = { id: 'test', + type: 'monitor', accept: (ex) => { if (typeof ex !== 'string') { return null; diff --git a/packages/tweakpane/package.json b/packages/tweakpane/package.json index 26b90346f..ad79cb833 100644 --- a/packages/tweakpane/package.json +++ b/packages/tweakpane/package.json @@ -68,19 +68,15 @@ "@rollup/plugin-node-resolve": "^13.0.0", "@rollup/plugin-replace": "^2.3.4", "@rollup/plugin-typescript": "^8.2.0", - "@tweakpane/core": "file:../core/tweakpane-core-1.0.0-alpha.0.tgz", + "@tweakpane/core": "^1.0.0-alpha.0", "@types/assert": "^1.5.4", "@types/jsdom": "^16.2.10", "@types/mocha": "^8.2.1", "@types/node": "^10.12.18", - "@typescript-eslint/eslint-plugin": "^4.16.1", "@typescript-eslint/parser": "^4.16.1", "assert": "^2.0.0", "autoprefixer": "^9.1.5", "eslint": "^7.21.0", - "eslint-config-prettier": "^8.1.0", - "eslint-plugin-prettier": "^3.3.1", - "eslint-plugin-simple-import-sort": "^7.0.0", "fs-extra": "^7.0.0", "glob": "^7.1.3", "http-server": "^0.12.3", diff --git a/packages/tweakpane/src/doc/ts/bundle.ts b/packages/tweakpane/src/doc/ts/bundle.ts index d2635c00a..2882fb128 100644 --- a/packages/tweakpane/src/doc/ts/bundle.ts +++ b/packages/tweakpane/src/doc/ts/bundle.ts @@ -22,9 +22,8 @@ function setUpScrews() { } function setUpSpMenu() { - const buttonElem: HTMLElement | null = document.getElementById( - 'spMenuButton', - ); + const buttonElem: HTMLElement | null = + document.getElementById('spMenuButton'); const menuElem: HTMLElement | null = document.querySelector('.menu'); if (!buttonElem || !menuElem) { return; diff --git a/packages/tweakpane/src/doc/ts/route/index.ts b/packages/tweakpane/src/doc/ts/route/index.ts index 37fabb9b0..f8209f2fb 100644 --- a/packages/tweakpane/src/doc/ts/route/index.ts +++ b/packages/tweakpane/src/doc/ts/route/index.ts @@ -82,9 +82,8 @@ export function initIndex() { title: 'Parameters', }); pane.addInput(ENV, 'color').on('change', (ev) => { - const headerElem: HTMLElement | null = document.querySelector( - '.pageHeader', - ); + const headerElem: HTMLElement | null = + document.querySelector('.pageHeader'); if (!headerElem) { return; } diff --git a/packages/tweakpane/src/main/ts/blade/list/plugin.ts b/packages/tweakpane/src/main/ts/blade/list/plugin.ts index df525e54a..11bac06cb 100644 --- a/packages/tweakpane/src/main/ts/blade/list/plugin.ts +++ b/packages/tweakpane/src/main/ts/blade/list/plugin.ts @@ -23,7 +23,9 @@ export interface ListBladeParams extends BaseBladeParams { label?: string; } -export const ListBladePlugin = (function(): BladePlugin> { +export const ListBladePlugin = (function (): BladePlugin< + ListBladeParams +> { return { id: 'list', type: 'blade', diff --git a/packages/tweakpane/src/main/ts/blade/text/plugin.ts b/packages/tweakpane/src/main/ts/blade/text/plugin.ts index fa9463aa7..fccbf3d00 100644 --- a/packages/tweakpane/src/main/ts/blade/text/plugin.ts +++ b/packages/tweakpane/src/main/ts/blade/text/plugin.ts @@ -23,7 +23,9 @@ export interface TextBladeParams extends BaseBladeParams { label?: string; } -export const TextBladePlugin = (function(): BladePlugin> { +export const TextBladePlugin = (function (): BladePlugin< + TextBladeParams +> { return { id: 'text', type: 'blade', diff --git a/packages/tweakpane/src/main/ts/pane/input-test.ts b/packages/tweakpane/src/main/ts/pane/input-test.ts index dc0e97140..8b0afcae6 100644 --- a/packages/tweakpane/src/main/ts/pane/input-test.ts +++ b/packages/tweakpane/src/main/ts/pane/input-test.ts @@ -155,7 +155,7 @@ describe(Pane.name, () => { const PARAMS = {foo: 1}; const pane = createPane(); const bapi = pane.addInput(PARAMS, 'foo'); - bapi.on('change', function(this: any) { + bapi.on('change', function (this: any) { assert.strictEqual(this, bapi); done(); }); diff --git a/packages/tweakpane/src/main/ts/pane/monitor-test.ts b/packages/tweakpane/src/main/ts/pane/monitor-test.ts index 71c89ad00..77e2b9609 100644 --- a/packages/tweakpane/src/main/ts/pane/monitor-test.ts +++ b/packages/tweakpane/src/main/ts/pane/monitor-test.ts @@ -145,7 +145,7 @@ describe(Pane.name, () => { const bapi = pane.addMonitor(PARAMS, 'foo', { interval: 0, }); - bapi.on('update', function(this: any) { + bapi.on('update', function (this: any) { bapi.dispose(); assert.strictEqual(this, bapi); done(); diff --git a/packages/tweakpane/src/main/ts/pane/ui-test.ts b/packages/tweakpane/src/main/ts/pane/ui-test.ts index 5839c5b03..f210f5254 100644 --- a/packages/tweakpane/src/main/ts/pane/ui-test.ts +++ b/packages/tweakpane/src/main/ts/pane/ui-test.ts @@ -20,46 +20,48 @@ function createApi(title?: string): Pane { } describe(Pane.name, () => { - ([ - { - insert: (api, index) => { - api.addInput({foo: 1}, 'foo', {index: index}); + ( + [ + { + insert: (api, index) => { + api.addInput({foo: 1}, 'foo', {index: index}); + }, + expected: InputBindingController, }, - expected: InputBindingController, - }, - { - insert: (api, index) => { - api.addMonitor({foo: 1}, 'foo', { - index: index, - interval: 0, - }); + { + insert: (api, index) => { + api.addMonitor({foo: 1}, 'foo', { + index: index, + interval: 0, + }); + }, + expected: MonitorBindingController, }, - expected: MonitorBindingController, - }, - { - insert: (api, index) => { - api.addButton({index: index, title: 'button'}); + { + insert: (api, index) => { + api.addButton({index: index, title: 'button'}); + }, + expected: LabelController, }, - expected: LabelController, - }, - { - insert: (api, index) => { - api.addFolder({index: index, title: 'folder'}); + { + insert: (api, index) => { + api.addFolder({index: index, title: 'folder'}); + }, + expected: FolderController, }, - expected: FolderController, - }, - { - insert: (api, index) => { - api.addSeparator({ - index: index, - }); + { + insert: (api, index) => { + api.addSeparator({ + index: index, + }); + }, + expected: SeparatorController, }, - expected: SeparatorController, - }, - ] as { - insert: (api: Pane, index: number) => void; - expected: Class; - }[]).forEach((testCase) => { + ] as { + insert: (api: Pane, index: number) => void; + expected: Class; + }[] + ).forEach((testCase) => { context(`when ${testCase.expected.name}`, () => { it('should insert input/monitor into specified position', () => { const params = { diff --git a/packages/tweakpane/test-module/package.json b/packages/tweakpane/test-module/package.json index 53f92f781..c7ac4f1d2 100644 --- a/packages/tweakpane/test-module/package.json +++ b/packages/tweakpane/test-module/package.json @@ -16,7 +16,7 @@ "@rollup/plugin-alias": "^3.1.2", "@rollup/plugin-node-resolve": "^13.0.0", "@rollup/plugin-typescript": "^8.2.0", - "@tweakpane/core": "file:../../core/tweakpane-core-1.0.0-alpha.0.tgz", + "@tweakpane/core": "^1.0.0-alpha.0", "@types/jsdom": "^12.2.1", "jsdom": "^13.1.0", "npm-run-all": "^4.1.5", diff --git a/.prettierrc.js b/prettier.config.js similarity index 100% rename from .prettierrc.js rename to prettier.config.js