diff --git a/src/features/encoders/oxipng/shared/meta.ts b/src/features/encoders/oxipng/shared/meta.ts
new file mode 100644
index 00000000..8adc3f18
--- /dev/null
+++ b/src/features/encoders/oxipng/shared/meta.ts
@@ -0,0 +1,23 @@
+/**
+ * Copyright 2020 Google Inc. All Rights Reserved.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export interface EncodeOptions {
+ level: number;
+}
+
+export const label = 'OxiPNG';
+export const mimeType = 'image/png';
+export const extension = 'png';
+
+export const defaultOptions: EncodeOptions = {
+ level: 2,
+};
diff --git a/src/features/encoders/oxipng/shared/missing-types.d.ts b/src/features/encoders/oxipng/shared/missing-types.d.ts
new file mode 100644
index 00000000..c729fd74
--- /dev/null
+++ b/src/features/encoders/oxipng/shared/missing-types.d.ts
@@ -0,0 +1,13 @@
+/**
+ * Copyright 2020 Google Inc. All Rights Reserved.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///
diff --git a/src/features/encoders/oxipng/shared/tsconfig.json b/src/features/encoders/oxipng/shared/tsconfig.json
new file mode 100644
index 00000000..bea39d16
--- /dev/null
+++ b/src/features/encoders/oxipng/shared/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../../../../generic-tsconfig.json",
+ "compilerOptions": {
+ "lib": ["webworker", "esnext"]
+ },
+ "references": [{ "path": "../../../" }]
+}
diff --git a/src/features/encoders/oxipng/worker/oxipngEncode.ts b/src/features/encoders/oxipng/worker/oxipngEncode.ts
index 73e47467..e21d716e 100644
--- a/src/features/encoders/oxipng/worker/oxipngEncode.ts
+++ b/src/features/encoders/oxipng/worker/oxipngEncode.ts
@@ -12,10 +12,7 @@
*/
import initOxiWasm, { optimise } from 'codecs/oxipng/pkg';
import oxiWasmUrl from 'url:codecs/oxipng/pkg/squoosh_oxipng_bg.wasm';
-
-export interface EncodeOptions {
- level: number;
-}
+import { EncodeOptions } from '../shared/meta';
let wasmReady: Promise;
diff --git a/src/features/encoders/oxipng/worker/tsconfig.json b/src/features/encoders/oxipng/worker/tsconfig.json
index bea39d16..959fe910 100644
--- a/src/features/encoders/oxipng/worker/tsconfig.json
+++ b/src/features/encoders/oxipng/worker/tsconfig.json
@@ -3,5 +3,5 @@
"compilerOptions": {
"lib": ["webworker", "esnext"]
},
- "references": [{ "path": "../../../" }]
+ "references": [{ "path": "../../../" }, { "path": "../shared" }]
}