Skip to content

Commit 4c45f13

Browse files
authored
Update example-driver examples to use example-driver for their tests too, plus some cleanup (#26041)
1 parent e7e11bf commit 4c45f13

File tree

39 files changed

+235
-499
lines changed

39 files changed

+235
-499
lines changed

examples/apps/blobs/package.json

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
"start:local": "webpack serve --env service=local",
3535
"start:odsp": "webpack serve --env service=odsp",
3636
"start:t9s": "webpack serve --env service=t9s",
37-
"start:test": "webpack serve --config webpack.test.cjs",
37+
"start:test": "webpack serve --env service=local --config webpack.test.cjs",
3838
"test": "npm run test:jest",
3939
"test:jest": "jest --ci",
4040
"test:jest:verbose": "cross-env FLUID_TEST_VERBOSE=1 jest --ci",
@@ -52,11 +52,9 @@
5252
"@fluidframework/core-utils": "workspace:~",
5353
"@fluidframework/datastore": "workspace:~",
5454
"@fluidframework/datastore-definitions": "workspace:~",
55-
"@fluidframework/local-driver": "workspace:~",
5655
"@fluidframework/map": "workspace:~",
5756
"@fluidframework/runtime-definitions": "workspace:~",
5857
"@fluidframework/runtime-utils": "workspace:~",
59-
"@fluidframework/server-local-server": "^7.0.0",
6058
"react": "^18.3.1",
6159
"react-dom": "^18.3.1",
6260
"uuid": "^11.1.0"
@@ -92,18 +90,7 @@
9290
"typescript": "~5.4.5",
9391
"webpack": "^5.94.0",
9492
"webpack-cli": "^5.1.4",
95-
"webpack-dev-server": "~4.15.2",
96-
"webpack-merge": "^6.0.1"
97-
},
98-
"fluid": {
99-
"browser": {
100-
"umd": {
101-
"files": [
102-
"main.bundle.js"
103-
],
104-
"library": "main"
105-
}
106-
}
93+
"webpack-dev-server": "~4.15.2"
10794
},
10895
"typeValidation": {
10996
"disabled": true

examples/apps/blobs/tests/app.ts

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
* Licensed under the MIT License.
44
*/
55

6+
import {
7+
createExampleDriver,
8+
getSpecifiedServiceFromWebpack,
9+
} from "@fluid-example/example-driver";
610
import type {
711
ICodeDetailsLoader,
812
IContainer,
@@ -13,14 +17,6 @@ import {
1317
createDetachedContainer,
1418
loadExistingContainer,
1519
} from "@fluidframework/container-loader/legacy";
16-
// eslint-disable-next-line import-x/no-internal-modules -- #26987: `local-driver` internal LocalSessionStorageDbFactory used in examples
17-
import { LocalSessionStorageDbFactory } from "@fluidframework/local-driver/internal";
18-
import {
19-
LocalDocumentServiceFactory,
20-
LocalResolver,
21-
createLocalResolverCreateNewRequest,
22-
} from "@fluidframework/local-driver/legacy";
23-
import { LocalDeltaConnectionServer } from "@fluidframework/server-local-server";
2420

2521
import { createElement } from "react";
2622
import { createRoot } from "react-dom/client";
@@ -32,8 +28,13 @@ import {
3228
} from "../src/container/index.js";
3329
import { BlobCollectionView, DebugView } from "../src/view.js";
3430

35-
const urlResolver = new LocalResolver();
36-
const localServer = LocalDeltaConnectionServer.create(new LocalSessionStorageDbFactory());
31+
const service = getSpecifiedServiceFromWebpack();
32+
const {
33+
urlResolver,
34+
documentServiceFactory,
35+
createCreateNewRequest,
36+
createLoadExistingRequest,
37+
} = await createExampleDriver(service);
3738
const codeLoader: ICodeDetailsLoader = {
3839
load: async (details: IFluidCodeDetails): Promise<IFluidModuleWithDetails> => {
3940
return {
@@ -57,13 +58,13 @@ async function createOrLoadContainerAndRenderInElement(
5758
container = await createDetachedContainer({
5859
codeDetails: { package: "1.0" },
5960
urlResolver,
60-
documentServiceFactory: new LocalDocumentServiceFactory(localServer),
61+
documentServiceFactory,
6162
codeLoader,
6263
});
6364
attach = () => {
6465
const documentId = uuid();
6566
container
66-
.attach(createLocalResolverCreateNewRequest(documentId))
67+
.attach(createCreateNewRequest(documentId))
6768
.then(() => {
6869
if (container.resolvedUrl === undefined) {
6970
throw new Error("Resolved Url unexpectedly missing!");
@@ -78,9 +79,9 @@ async function createOrLoadContainerAndRenderInElement(
7879
} else {
7980
const id = location.hash.substring(1);
8081
container = await loadExistingContainer({
81-
request: { url: `${window.location.origin}/${id}` },
82+
request: await createLoadExistingRequest(id),
8283
urlResolver,
83-
documentServiceFactory: new LocalDocumentServiceFactory(localServer),
84+
documentServiceFactory,
8485
codeLoader,
8586
});
8687
// Update url and tab title

examples/apps/blobs/webpack.config.cjs

Lines changed: 42 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -8,59 +8,57 @@ const {
88
createOdspMiddlewares,
99
} = require("@fluid-example/example-webpack-integration");
1010
const path = require("path");
11-
const { merge } = require("webpack-merge");
1211
const HtmlWebpackPlugin = require("html-webpack-plugin");
1312
const webpack = require("webpack");
1413

1514
module.exports = (env) => {
1615
const { production, service } = env;
1716

18-
return merge(
19-
{
20-
entry: {
21-
app: "./src/app.ts",
17+
return {
18+
entry: {
19+
app: "./src/app.ts",
20+
},
21+
resolve: {
22+
extensionAlias: {
23+
".js": [".ts", ".tsx", ".js", ".cjs", ".mjs"],
2224
},
23-
resolve: {
24-
extensionAlias: {
25-
".js": [".ts", ".tsx", ".js", ".cjs", ".mjs"],
25+
extensions: [".ts", ".tsx", ".js", ".cjs", ".mjs"],
26+
},
27+
module: {
28+
rules: [
29+
{
30+
test: /\.tsx?$/,
31+
loader: "ts-loader",
2632
},
27-
extensions: [".ts", ".tsx", ".js", ".cjs", ".mjs"],
28-
},
29-
module: {
30-
rules: [
31-
{
32-
test: /\.tsx?$/,
33-
loader: "ts-loader",
34-
},
35-
],
36-
},
37-
output: {
38-
filename: "[name].bundle.js",
39-
path: path.resolve(__dirname, "dist"),
40-
library: "[name]",
41-
// https://github.com/webpack/webpack/issues/5767
42-
// https://github.com/webpack/webpack/issues/7939
43-
devtoolNamespace: "fluid-example/blobs",
44-
libraryTarget: "umd",
45-
},
46-
plugins: [
47-
new webpack.ProvidePlugin({
48-
process: "process/browser.js",
49-
}),
50-
new HtmlWebpackPlugin({
51-
template: "./src/index.html",
52-
}),
53-
createExampleDriverServiceWebpackPlugin(service),
5433
],
55-
devServer: {
56-
setupMiddlewares: (middlewares) => {
57-
if (service === "odsp") {
58-
middlewares.push(...createOdspMiddlewares());
59-
}
60-
return middlewares;
61-
},
34+
},
35+
output: {
36+
filename: "[name].bundle.js",
37+
path: path.resolve(__dirname, "dist"),
38+
library: "[name]",
39+
// https://github.com/webpack/webpack/issues/5767
40+
// https://github.com/webpack/webpack/issues/7939
41+
devtoolNamespace: "fluid-example/blobs",
42+
libraryTarget: "umd",
43+
},
44+
plugins: [
45+
new webpack.ProvidePlugin({
46+
process: "process/browser.js",
47+
}),
48+
new HtmlWebpackPlugin({
49+
template: "./src/index.html",
50+
}),
51+
createExampleDriverServiceWebpackPlugin(service),
52+
],
53+
devServer: {
54+
setupMiddlewares: (middlewares) => {
55+
if (service === "odsp") {
56+
middlewares.push(...createOdspMiddlewares());
57+
}
58+
return middlewares;
6259
},
6360
},
64-
production ? require("./webpack.prod.cjs") : require("./webpack.dev.cjs"),
65-
);
61+
mode: production ? "production" : "development",
62+
devtool: production ? "source-map" : "inline-source-map",
63+
};
6664
};

examples/apps/blobs/webpack.dev.cjs

Lines changed: 0 additions & 9 deletions
This file was deleted.

examples/apps/blobs/webpack.prod.cjs

Lines changed: 0 additions & 9 deletions
This file was deleted.

examples/apps/blobs/webpack.test.cjs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,17 @@
33
* Licensed under the MIT License.
44
*/
55

6+
const {
7+
createExampleDriverServiceWebpackPlugin,
8+
createOdspMiddlewares,
9+
} = require("@fluid-example/example-webpack-integration");
610
const path = require("path");
711
const HtmlWebpackPlugin = require("html-webpack-plugin");
812
const webpack = require("webpack");
913

1014
module.exports = (env) => {
15+
const { service } = env;
16+
1117
return {
1218
entry: {
1319
app: "./tests/app.ts",
@@ -35,19 +41,26 @@ module.exports = (env) => {
3541
devtoolNamespace: "fluid-example/blobs",
3642
libraryTarget: "umd",
3743
},
38-
devServer: {
39-
static: {
40-
directory: path.join(__dirname, "tests"),
41-
},
42-
},
4344
plugins: [
4445
new webpack.ProvidePlugin({
4546
process: "process/browser.js",
4647
}),
4748
new HtmlWebpackPlugin({
4849
template: "./tests/index.html",
4950
}),
51+
createExampleDriverServiceWebpackPlugin(service),
5052
],
53+
devServer: {
54+
static: {
55+
directory: path.join(__dirname, "tests"),
56+
},
57+
setupMiddlewares: (middlewares) => {
58+
if (service === "odsp") {
59+
middlewares.push(...createOdspMiddlewares());
60+
}
61+
return middlewares;
62+
},
63+
},
5164
mode: "development",
5265
devtool: "inline-source-map",
5366
};

examples/apps/collaborative-textarea/package.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -88,16 +88,6 @@
8888
"webpack-dev-server": "~4.15.2",
8989
"webpack-merge": "^6.0.1"
9090
},
91-
"fluid": {
92-
"browser": {
93-
"umd": {
94-
"files": [
95-
"dist/main.bundle.js"
96-
],
97-
"library": "main"
98-
}
99-
}
100-
},
10191
"typeValidation": {
10292
"disabled": true
10393
}

examples/apps/contact-collection/package.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,6 @@
7979
"webpack-dev-server": "~4.15.2",
8080
"webpack-merge": "^6.0.1"
8181
},
82-
"fluid": {
83-
"browser": {
84-
"umd": {
85-
"files": [
86-
"main.bundle.js"
87-
],
88-
"library": "main"
89-
}
90-
}
91-
},
9282
"typeValidation": {
9383
"disabled": true
9484
}

examples/apps/data-object-grid/package.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,6 @@
100100
"webpack-dev-server": "~4.15.2",
101101
"webpack-merge": "^6.0.1"
102102
},
103-
"fluid": {
104-
"browser": {
105-
"umd": {
106-
"files": [
107-
"dist/main.bundle.js"
108-
],
109-
"library": "main"
110-
}
111-
}
112-
},
113103
"typeValidation": {
114104
"disabled": true
115105
}

examples/apps/diceroller/package.json

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"start:local": "webpack serve --env service=local",
3131
"start:odsp": "webpack serve --env service=odsp",
3232
"start:t9s": "webpack serve --env service=t9s",
33-
"start:test": "webpack serve --config webpack.test.cjs",
33+
"start:test": "webpack serve --env service=local --config webpack.test.cjs",
3434
"test": "npm run test:jest",
3535
"test:jest": "jest --ci",
3636
"test:jest:verbose": "cross-env FLUID_TEST_VERBOSE=1 jest --ci",
@@ -43,9 +43,7 @@
4343
"@fluidframework/aqueduct": "workspace:~",
4444
"@fluidframework/container-definitions": "workspace:~",
4545
"@fluidframework/container-loader": "workspace:~",
46-
"@fluidframework/local-driver": "workspace:~",
4746
"@fluidframework/map": "workspace:~",
48-
"@fluidframework/server-local-server": "^7.0.0",
4947
"react": "^18.3.1",
5048
"uuid": "^11.1.0"
5149
},
@@ -77,18 +75,7 @@
7775
"typescript": "~5.4.5",
7876
"webpack": "^5.94.0",
7977
"webpack-cli": "^5.1.4",
80-
"webpack-dev-server": "~4.15.2",
81-
"webpack-merge": "^6.0.1"
82-
},
83-
"fluid": {
84-
"browser": {
85-
"umd": {
86-
"files": [
87-
"main.bundle.js"
88-
],
89-
"library": "main"
90-
}
91-
}
78+
"webpack-dev-server": "~4.15.2"
9279
},
9380
"typeValidation": {
9481
"disabled": true

0 commit comments

Comments
 (0)