♻️ switching to typescript

This commit is contained in:
2019-12-10 15:10:55 +01:00
parent d9aebffa57
commit 0ddbec99ed
25 changed files with 103 additions and 53 deletions

View File

@@ -5,13 +5,17 @@ import {
Variables,
ImageVar,
BooleanVar,
NumberVar
NumberVar,
VariableValueType
} from '../io/AbstractIOSet';
const inputs = {
image: {
type: 'Image',
} as ImageVar,
width: {
type: 'Number',
} as NumberVar,
};
const outputs = {
@@ -29,11 +33,10 @@ const outputs = {
export default class Canvas2d<I extends Variables, O extends Variables> extends Node<I & (typeof inputs), O & (typeof outputs)> {
constructor(name, inputDefinition: I, outputDefiniton: O, options) {
constructor(name, inputDefinition: I, outputDefiniton: O) {
super(name,
merge(inputs, inputDefinition),
merge(outputs, outputDefiniton),
options
);
}
@@ -42,7 +45,11 @@ export default class Canvas2d<I extends Variables, O extends Variables> extends
}
async _update() {
const values = {};
type valuesType = {
[K in keyof I]: VariableValueType<I[K]['type']>;
}
const values:valuesType = <valuesType>{};
for (let name of Object.keys(this.in.variables)) {
values[name] = await waitForMedia(this.in[name].value);
}

View File

@@ -1,4 +1,5 @@
import Canvas2d from './Canvas2d';
import {PoolCanvas} from '../../canvas/CanvasPool';
import {createCanvas, mediaSize, paintToCanvas} from '../canvas';
import {
ImageVar,
@@ -89,7 +90,7 @@ const outputs = {
export default class Compose extends Canvas2d<typeof inputs, typeof outputs> {
constructor(options={}) {
super('Compose', inputs, outputs, options);
super('Compose', inputs, outputs);
}
get width() {
@@ -149,13 +150,13 @@ export default class Compose extends Canvas2d<typeof inputs, typeof outputs> {
ctx.globalCompositeOperation = 'source-over';
if (this.bg) {
paintToCanvas(canvas, this.bg.image, this.bg);
paintToCanvas(canvas, <PoolCanvas<any>>this.bg.image, this.bg);
}
ctx.globalCompositeOperation = mode;
if (this.fg) {
paintToCanvas(canvas, this.fg.image, this.fg);
paintToCanvas(canvas, <PoolCanvas<any>>this.fg.image, this.fg);
}
return canvas;

View File

@@ -29,7 +29,7 @@ const outputs = {
export default class EmptySpace extends Canvas2d<typeof inputs, typeof outputs> {
constructor() {
super('EmptySpace', inputs, outputs, {});
super('EmptySpace', inputs, outputs);
this._update();
}

View File

@@ -20,7 +20,7 @@ const outputs = {};
export default class Flip extends Canvas2d<typeof inputs, typeof outputs> {
constructor() {
super('Flip', inputs, outputs, {});
super('Flip', inputs, outputs);
this._update();
}

View File

@@ -1,3 +1,4 @@
// @ts-nocheck
import Node from './Canvas2d';
import {waitForMedia} from '../../utils';
import {createCanvas, mediaSize, paintToCanvas} from '../canvas';

View File

@@ -1,6 +1,6 @@
import Canvas2d from './Canvas2d';
import {waitForMedia} from '../../utils';
import {createCanvas, mediaSize, paintToCanvas} from '../canvas';
import {createCanvas, mediaSize, paintToCanvas, Bounds} from '../canvas';
import {
ImageVar,
StringVar,
@@ -27,7 +27,7 @@ const outputs = {};
export default class Resize extends Canvas2d<typeof inputs, typeof outputs> {
constructor() {
super('Resize', inputs, outputs, {});
super('Resize', inputs, outputs);
}
/**
@@ -52,7 +52,7 @@ export default class Resize extends Canvas2d<typeof inputs, typeof outputs> {
const {width: destWidth, height: destHeight} = mediaSize(canvas);
const srcAspectRatio = (srcWidth / srcHeight);
const destAspectRatio = (destWidth / destHeight);
const newImage = {};
const newImage:Partial<Bounds> = {};
if (srcAspectRatio > destAspectRatio) {
newImage.width = destHeight * srcAspectRatio;
newImage.height = destHeight;
@@ -64,7 +64,7 @@ export default class Resize extends Canvas2d<typeof inputs, typeof outputs> {
newImage.top = (destHeight - newImage.height) / 2;
newImage.left = (destWidth - newImage.width) / 2;
paintToCanvas(canvas, media, newImage);
paintToCanvas(canvas, media, <Bounds>newImage);
return canvas;
}
}

View File

@@ -65,7 +65,7 @@ const outputs = {};
export default class Resize extends Canvas2d<typeof inputs, typeof outputs> {
constructor() {
super('Text', inputs, outputs, {});
super('Text', inputs, outputs);
this._update();
}