Marine test build

This commit is contained in:
Pavel Murygin 2023-01-17 01:01:16 +04:00
parent 267ebb687f
commit e9fe2b7994
9 changed files with 4668 additions and 25 deletions

View File

@ -2,6 +2,7 @@
"name": "@test/marine_web",
"version": "0.1.0",
"scripts": {
"postinstall": "copy-marine public",
"start": "webpack serve",
"test": "jest",
"build": "webpack --mode=production --node-env=production",
@ -30,6 +31,7 @@
"ts-jest": "28.0.2"
},
"dependencies": {
"@fluencelabs/tools": "workspace:*",
"@fluencelabs/marine.deps-loader.web": "workspace:*",
"@fluencelabs/marine.background-runner": "workspace:*",
"@fluencelabs/avm": "0.34.4",

View File

@ -1,10 +1,5 @@
import { Buffer } from 'buffer';
// @ts-ignore
window.Buffer = Buffer;
import { MarineBackgroundRunner } from '@fluencelabs/marine.background-runner';
import { InlinedWorkerLoader, WasmWebLoader } from '@fluencelabs/marine.deps-loader.web';
import { WorkerLoader, WasmWebLoader } from '@fluencelabs/marine.deps-loader.web';
import { callAvm, JSONArray, JSONObject } from '@fluencelabs/avm';
import { toUint8Array } from 'js-base64';
@ -17,7 +12,7 @@ const b = (s: string) => {
const main = async () => {
const avm = new WasmWebLoader('avm.wasm');
const control = new WasmWebLoader('marine-js.wasm');
const worker = new InlinedWorkerLoader();
const worker = new WorkerLoader('marine-js.web.js');
const runner = new MarineBackgroundRunner(worker, control, () => {});
await runner.start();

View File

@ -17,7 +17,9 @@
"bin": {
"copy-marine": "dist/copyMarine.js"
},
"dependencies": {},
"dependencies": {
"@fluencelabs/marine.worker-script": "workspace:*"
},
"devDependencies": {
"@types/node": "16.11.59",
"typescript": "4.6.4"

View File

@ -15,12 +15,12 @@
"author": "Fluence Labs",
"license": "Apache-2.0",
"dependencies": {
"threads": "^1.7.0"
"threads": "^1.7.0",
"@fluencelabs/marine-js": "0.3.38"
},
"devDependencies": {
"@fluencelabs/marine.worker-script": "workspace:0.1.0",
"@fluencelabs/interfaces": "workspace:0.2.0",
"@fluencelabs/marine-js": "0.3.38",
"typescript": "^4.6.4",
"@types/node": "16.11.59"
}

View File

@ -14,7 +14,8 @@
* limitations under the License.
*/
import { JSONArray, JSONObject, LogFunction, logLevelToEnv, LogLevel } from '@fluencelabs/marine-js';
import type { JSONArray, JSONObject, LogFunction, LogLevel } from '@fluencelabs/marine-js/dist/types';
import { logLevelToEnv } from '@fluencelabs/marine-js/dist/types';
import type { IMarine, IWorkerLoader, IWasmLoader } from '@fluencelabs/interfaces';
import type { MarineBackgroundInterface } from '@fluencelabs/marine.worker-script';
import { spawn, Thread } from 'threads';

View File

@ -1,4 +1,4 @@
import { BlobWorker } from 'threads';
import { BlobWorker, Worker } from 'threads';
import { Buffer } from 'buffer';
import { LazyLoader } from '@fluencelabs/interfaces';
import type { WorkerImplementation } from 'threads/dist/types/master';
@ -52,3 +52,11 @@ export class InlinedWorkerLoader extends LazyLoader<WorkerImplementation> {
});
}
}
export class WorkerLoader extends LazyLoader<WorkerImplementation> {
constructor(path: string) {
super(() => {
return new Worker(path);
});
}
}

View File

@ -9,7 +9,7 @@
"pnpm": ">=3"
},
"scripts": {
"build": "tsc --emitDeclarationOnly && pnpm build:web && pnpm build:node && pnpm build:b64 ",
"build": "tsc && pnpm build:web && pnpm build:node && pnpm build:b64 ",
"build:b64": "./build_b64.sh",
"build:web": "webpack -c webpack.config.web.js",
"build:node": "webpack -c webpack.config.node.js"
@ -22,6 +22,9 @@
"threads": "^1.7.0"
},
"devDependencies": {
"buffer": "6.0.3",
"process": "0.11.10",
"webpack-plugin-replace": "1.2.0",
"@types/node": "16.11.59",
"ts-loader": "8.4.0",
"typescript": "^4.6.4",

View File

@ -1,6 +1,7 @@
// Generated using webpack-cli https://github.com/webpack/webpack-cli
const path = require('path');
const webpack = require('webpack');
// const isProduction = true;
// uncomment to debug
@ -32,7 +33,16 @@ const config = () => ({
},
resolve: {
extensions: ['.tsx', '.ts', '.js'],
fallback: {
buffer: require.resolve('buffer/'),
},
},
plugins: [
new webpack.ProvidePlugin({
Buffer: ['buffer', 'Buffer'],
process: 'process/browser',
}),
],
});
module.exports = () => {

4646
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff