From ad51a0464bbe8ee1cc673817912e005f0b3b2209 Mon Sep 17 00:00:00 2001 From: Christopher Monsanto Date: Fri, 17 Jul 2020 08:09:07 -0400 Subject: [PATCH] ts trim --- pnpm-lock.yaml | 5 +++++ tools/trim/{image.js => image.ts} | 6 +++--- tools/trim/{index.js => index.ts} | 0 tools/trim/package.json | 10 +++++++++- tools/trim/tsconfig.json | 7 +++++++ 5 files changed, 24 insertions(+), 4 deletions(-) rename tools/trim/{image.js => image.ts} (74%) rename tools/trim/{index.js => index.ts} (100%) create mode 100644 tools/trim/tsconfig.json diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3db3def5..9d6eefd5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,9 +40,14 @@ importers: spritesmith: ^3.4.0 tools/trim: dependencies: + '@types/node': 14.0.23 commander: 5.1.0 + devDependencies: + typescript: 3.9.7 specifiers: + '@types/node': ^14.0.23 commander: ^5.1.0 + typescript: ^3.9.7 tools/tupctime: dependencies: better-sqlite3: 7.0.1 diff --git a/tools/trim/image.js b/tools/trim/image.ts similarity index 74% rename from tools/trim/image.js rename to tools/trim/image.ts index 372634dd..edf8ae4d 100644 --- a/tools/trim/image.js +++ b/tools/trim/image.ts @@ -1,7 +1,7 @@ import cp from 'child_process'; -export function getDims(input) { +export function getDims(input : string) { const info = cp.execFileSync('convert', [input, '-format', "%w+%h+%@", 'info:'], {encoding:'utf8'}); @@ -21,13 +21,13 @@ export function getDims(input) { } } -export function crop(input, {width, height, left, top}, output) { +export function crop(input : string, {width, height, left, top} : {width : number, height: number, left: number, top: number}, output : string) { cp.execFileSync('convert', [input, '+repage', '-crop', `${width}x${height}+${left}+${top}`, output]); } // Trim, preserving displacement from center // Returns crop coords -export function losslessTrim(dims) { +export function losslessTrim(dims : {width : number, height: number, left: number, top: number, bottom: number, right: number}) { return { left: Math.min(dims.left, dims.right), width: dims.width + Math.abs(dims.left - dims.right), diff --git a/tools/trim/index.js b/tools/trim/index.ts similarity index 100% rename from tools/trim/index.js rename to tools/trim/index.ts diff --git a/tools/trim/package.json b/tools/trim/package.json index c47d6951..389f6bdf 100644 --- a/tools/trim/package.json +++ b/tools/trim/package.json @@ -1,6 +1,14 @@ { "dependencies": { + "@types/node": "^14.0.23", "commander": "^5.1.0" }, - "type": "module" + "type": "module", + "main": "./dist/index.js", + "scripts": { + "prepare": "tsc" + }, + "devDependencies": { + "typescript": "^3.9.7" + } } diff --git a/tools/trim/tsconfig.json b/tools/trim/tsconfig.json new file mode 100644 index 00000000..cded0362 --- /dev/null +++ b/tools/trim/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig-base", + "compilerOptions": { + "outDir": "dist", + "allowJs": true + } +}