Compare commits

...

39 Commits

Author SHA1 Message Date
Jake Archibald
eaad0eaee0 1.3.4 2019-03-04 14:53:11 +00:00
Surma
db76d4417c Don’t use instantiateStreaming (#494) 2019-03-04 14:50:15 +00:00
Surma
7a6c6ec210 Merge pull request #492 from GoogleChromeLabs/renovate/typed-css-modules-0.x
Update dependency typed-css-modules to v0.4.1
2019-03-03 17:22:26 +00:00
renovate[bot]
8e034f183b Update dependency typed-css-modules to v0.4.1 2019-03-03 15:37:17 +00:00
Surma
5a01b34cce Merge pull request #491 from GoogleChromeLabs/renovate/webpack-bundle-analyzer-3.x
Update dependency webpack-bundle-analyzer to v3.1.0
2019-03-03 13:21:08 +00:00
renovate[bot]
1399a9bffe Update dependency webpack-bundle-analyzer to v3.1.0 2019-03-02 16:47:49 +00:00
Surma
653c6ed85a Merge pull request #490 from GoogleChromeLabs/renovate/node-10.x
Update dependency @types/node to v10.12.29
2019-03-02 16:46:24 +00:00
renovate[bot]
ebbb7b58cb Update dependency @types/node to v10.12.29 2019-03-02 02:14:38 +00:00
Surma
7164e4e315 Merge pull request #489 from GoogleChromeLabs/renovate/tslint-5.x
Update dependency tslint to v5.13.1
2019-03-01 08:54:11 +00:00
renovate[bot]
23398d07f9 Update dependency tslint to v5.13.1 2019-03-01 03:07:29 +00:00
Surma
ec2bc3efa2 Merge pull request #488 from GoogleChromeLabs/renovate/assets-webpack-plugin-3.x
Update dependency assets-webpack-plugin to v3.9.10
2019-02-28 19:06:57 +00:00
renovate[bot]
86d78763c1 Update dependency assets-webpack-plugin to v3.9.10 2019-02-28 19:01:50 +00:00
Surma
fb5ae36d7e Merge pull request #487 from GoogleChromeLabs/renovate/assets-webpack-plugin-3.x
Update dependency assets-webpack-plugin to v3.9.9
2019-02-28 15:40:43 +00:00
renovate[bot]
51f812625b Update dependency assets-webpack-plugin to v3.9.9 2019-02-28 15:33:56 +00:00
Surma
479bfee647 Merge pull request #486 from GoogleChromeLabs/renovate/node-10.x
Update Node.js to v10.15.2
2019-02-28 14:03:11 +00:00
renovate[bot]
a3501a56cd Update Node.js to v10.15.2 2019-02-28 13:51:15 +00:00
Surma
c353e286b0 Merge pull request #485 from GoogleChromeLabs/renovate/assets-webpack-plugin-3.x
Update dependency assets-webpack-plugin to v3.9.8
2019-02-28 09:35:03 +00:00
renovate[bot]
8ed01e8a87 Update dependency assets-webpack-plugin to v3.9.8 2019-02-28 04:55:19 +00:00
Surma
36ed21b9f4 Merge pull request #484 from GoogleChromeLabs/renovate/webpack-dev-server-3.x
Update dependency webpack-dev-server to v3.2.1
2019-02-25 15:03:53 +00:00
renovate[bot]
cca41bb449 Update dependency webpack-dev-server to v3.2.1 2019-02-25 14:14:58 +00:00
Surma
8f787ad0e6 Merge pull request #483 from GoogleChromeLabs/renovate/terser-webpack-plugin-1.x
Update dependency terser-webpack-plugin to v1.2.3
2019-02-25 14:13:23 +00:00
renovate[bot]
9c1170f100 Update dependency terser-webpack-plugin to v1.2.3 2019-02-25 11:20:37 +00:00
Surma
5432be4a3f Merge pull request #482 from GoogleChromeLabs/renovate/tslint-5.x
Update dependency tslint to v5.13.0
2019-02-24 18:54:51 +00:00
renovate[bot]
7cae821db5 Update dependency tslint to v5.13.0 2019-02-23 22:21:29 +00:00
Surma
19ebb24f03 Merge pull request #481 from GoogleChromeLabs/renovate/node-10.x
Update dependency @types/node to v10.12.27
2019-02-23 08:45:17 +00:00
renovate[bot]
d07512566e Update dependency @types/node to v10.12.27 2019-02-22 22:27:01 +00:00
Surma
61929666f3 Merge pull request #480 from GoogleChromeLabs/renovate/prerender-loader-1.x
Update dependency prerender-loader to v1.3.0
2019-02-22 15:59:25 +00:00
renovate[bot]
792ffbfcd7 Update dependency prerender-loader to v1.3.0 2019-02-22 15:54:09 +00:00
Surma
9685271bb4 Merge pull request #479 from GoogleChromeLabs/renovate/typescript-3.x
Update dependency typescript to v3.3.3333
2019-02-22 15:03:59 +00:00
renovate[bot]
5b1a6cc95e Update dependency typescript to v3.3.3333 2019-02-22 14:23:45 +00:00
renovate[bot]
bf34075e6a Update dependency typescript to v3.3.1 (#444)
* Update dependency typescript to v3.3.1

* Fix trailing commas for function calls

* Reverting trailing comma change

* Avoiding trailing comma rule for imports

* I never know what the right thing to do is

* lockfile
2019-02-22 14:22:57 +00:00
Jake Archibald
f1859eeef2 Only compare against the last 'push' to master (#468) 2019-02-22 11:15:50 +00:00
Surma
fa12b37e53 Merge pull request #470 from GoogleChromeLabs/renovate/file-drop-element-0.x
Update dependency file-drop-element to v0.2.0
2019-02-21 23:42:35 +00:00
Paul Kinlan
520a5dc9f2 nggggg - file length === 0 2019-02-21 21:27:59 +00:00
Paul Kinlan
7af949b5a5 Fixing a second whoopsie. 2019-02-21 20:53:14 +00:00
Paul Kinlan
300612b09b Fixing a whoopsie 2019-02-21 20:38:08 +00:00
Paul Kinlan
6f00e9825c Fixing the multifile dep update: file->files 2019-02-21 20:35:49 +00:00
renovate[bot]
6ca9c5300e Update dependency file-drop-element to v0.2.0 2019-02-21 15:24:22 +00:00
Surma
cdeb31051b Merge pull request #464 from GoogleChromeLabs/tiling-rust
Tiling for Rotate
2019-02-21 15:23:32 +00:00
8 changed files with 128 additions and 908 deletions

2
.nvmrc
View File

@@ -1 +1 @@
v10.15.1
10.15.2

View File

@@ -22,6 +22,7 @@ function fetchTravisBuildInfo(user, repo, branch) {
'branch.name': branch,
state: 'passed',
limit: 1,
event_type: 'push',
}).then(r => r.json());
}
@@ -32,9 +33,7 @@ function fetchTravisText(path) {
/**
* Recursively-read a directory and turn it into an array of { name, size, gzipSize }
*/
async function dirToInfoArray(startPath, {
namePrefix = '',
} = {}) {
async function dirToInfoArray(startPath) {
const results = await new Promise((resolve, reject) => {
readdirp({ root: startPath }, (err, results) => {
if (err) reject(err); else resolve(results);

959
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"private": true,
"name": "squoosh",
"version": "1.3.3",
"version": "1.3.4",
"license": "apache-2.0",
"scripts": {
"start": "webpack-dev-server --host 0.0.0.0 --hot",
@@ -16,12 +16,12 @@
}
},
"devDependencies": {
"@types/node": "10.12.26",
"@types/node": "10.12.29",
"@types/pretty-bytes": "5.1.0",
"@types/webassembly-js-api": "0.0.2",
"@webcomponents/custom-elements": "1.2.1",
"@webpack-cli/serve": "0.1.3",
"assets-webpack-plugin": "3.9.7",
"assets-webpack-plugin": "3.9.10",
"chokidar": "2.1.2",
"chalk": "2.4.2",
"classnames": "2.2.6",
@@ -33,7 +33,7 @@
"ejs": "2.6.1",
"escape-string-regexp": "1.0.5",
"exports-loader": "0.7.0",
"file-drop-element": "0.0.9",
"file-drop-element": "0.2.0",
"file-loader": "3.0.1",
"gzip-size": "5.0.0",
"html-webpack-plugin": "3.2.0",
@@ -48,7 +48,7 @@
"optimize-css-assets-webpack-plugin": "5.0.1",
"pointer-tracker": "2.0.3",
"preact": "8.4.2",
"prerender-loader": "1.2.0",
"prerender-loader": "1.3.0",
"pretty-bytes": "5.1.0",
"progress-bar-webpack-plugin": "1.12.1",
"raw-loader": "1.0.0",
@@ -57,19 +57,19 @@
"script-ext-html-webpack-plugin": "2.1.3",
"source-map-loader": "0.2.4",
"style-loader": "0.23.1",
"terser-webpack-plugin": "1.2.2",
"terser-webpack-plugin": "1.2.3",
"ts-loader": "5.3.3",
"tslint": "5.12.1",
"tslint": "5.13.1",
"tslint-config-airbnb": "5.11.1",
"tslint-config-semistandard": "7.0.0",
"tslint-react": "3.6.0",
"typed-css-modules": "0.3.7",
"typescript": "3.2.4",
"typed-css-modules": "0.4.1",
"typescript": "3.3.3333",
"url-loader": "1.1.2",
"webpack": "4.28.0",
"webpack-bundle-analyzer": "3.0.4",
"webpack-bundle-analyzer": "3.1.0",
"webpack-cli": "3.2.3",
"webpack-dev-server": "3.2.0",
"webpack-dev-server": "3.2.1",
"worker-plugin": "3.1.0"
}
}

View File

@@ -5,8 +5,7 @@ async function mozjpegEncode(
): Promise<ArrayBuffer> {
const { encode } = await import(
/* webpackChunkName: "process-mozjpeg-enc" */
'../mozjpeg/encoder',
);
'../mozjpeg/encoder');
return encode(data, options);
}
@@ -15,8 +14,7 @@ async function quantize(
): Promise<ImageData> {
const { process } = await import(
/* webpackChunkName: "process-imagequant" */
'../imagequant/processor',
);
'../imagequant/processor');
return process(data, opts);
}
@@ -25,8 +23,7 @@ async function rotate(
): Promise<ImageData> {
const { rotate } = await import(
/* webpackChunkName: "process-rotate" */
'../rotate/processor',
);
'../rotate/processor');
return rotate(data, opts);
}
@@ -36,8 +33,7 @@ async function optiPngEncode(
): Promise<ArrayBuffer> {
const { compress } = await import(
/* webpackChunkName: "process-optipng" */
'../optipng/encoder',
);
'../optipng/encoder');
return compress(data, options);
}
@@ -46,16 +42,14 @@ async function webpEncode(
): Promise<ArrayBuffer> {
const { encode } = await import(
/* webpackChunkName: "process-webp-enc" */
'../webp/encoder',
);
'../webp/encoder');
return encode(data, options);
}
async function webpDecode(data: ArrayBuffer): Promise<ImageData> {
const { decode } = await import(
/* webpackChunkName: "process-webp-dec" */
'../webp/decoder',
);
'../webp/decoder');
return decode(data);
}

View File

@@ -1,19 +1,29 @@
import wasmUrl from '../../../codecs/rotate/rotate.wasm';
import { RotateOptions, RotateModuleInstance } from './processor-meta';
const instancePromise = (WebAssembly as any).instantiateStreaming(fetch(wasmUrl));
// We are loading a 500B module here. Loading the code to feature-detect
// `instantiateStreaming` probably takes longer to load than the time we save by
// using `instantiateStreaming` in the first place. So lets just use
// `ArrayBuffer`s here.
const instancePromise = fetch(wasmUrl)
.then(r => r.arrayBuffer())
.then(buf => WebAssembly.instantiate(buf));
export async function rotate(
data: ImageData,
opts: RotateOptions,
): Promise<ImageData> {
const { instance } = (await instancePromise) as {instance: RotateModuleInstance};
const { instance } = (await instancePromise) as {
instance: RotateModuleInstance;
};
// Number of wasm memory pages (á 64KiB) needed to store the image twice.
const bytesPerImage = data.width * data.height * 4;
const numPagesNeeded = Math.ceil((bytesPerImage * 2 + 8) / (64 * 1024));
// Only count full pages, just to be safe.
const numPagesAvailable = Math.floor(instance.exports.memory.buffer.byteLength / (64 * 1024));
const numPagesAvailable = Math.floor(
instance.exports.memory.buffer.byteLength / (64 * 1024),
);
const additionalPagesToAllocate = numPagesNeeded - numPagesAvailable;
if (additionalPagesToAllocate > 0) {

View File

@@ -13,12 +13,10 @@ const ROUTE_EDITOR = '/editor';
const compressPromise = import(
/* webpackChunkName: "main-app" */
'../compress',
);
'../compress');
const offlinerPromise = import(
/* webpackChunkName: "offliner" */
'../../lib/offliner',
);
'../../lib/offliner');
function back() {
window.history.back();
@@ -74,8 +72,9 @@ export default class App extends Component<Props, State> {
}
@bind
private onFileDrop({ file }: FileDropEvent) {
if (!file) return;
private onFileDrop({ files }: FileDropEvent) {
if (!files || files.length === 0) return;
const file = files[0];
this.openEditor();
this.setState({ file });
}

View File

@@ -7,8 +7,7 @@ function init() {
if (!('customElements' in self)) {
import(
/* webpackChunkName: "wc-polyfill" */
'@webcomponents/custom-elements',
).then(init);
'@webcomponents/custom-elements').then(init);
} else {
init();
}