oc-server 2.1.0 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/oc.d.ts +6 -5
- package/dist/cli/oc.js +15 -12
- package/dist/cli/server.js +14 -5
- package/package.json +5 -5
package/dist/cli/oc.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { FastifyRequest } from 'fastify';
|
|
2
2
|
import { PluginMock } from './get-mocked-plugins';
|
|
3
|
+
interface Parameters {
|
|
4
|
+
mandatory: boolean;
|
|
5
|
+
example: string | number | boolean;
|
|
6
|
+
}
|
|
3
7
|
interface Package {
|
|
4
8
|
name: string;
|
|
5
9
|
version: string;
|
|
6
10
|
oc?: {
|
|
7
|
-
parameters?: Record<string,
|
|
8
|
-
mandatory: boolean;
|
|
9
|
-
example: string | number | boolean;
|
|
10
|
-
}>;
|
|
11
|
+
parameters?: Record<string, Parameters>;
|
|
11
12
|
files: {
|
|
12
13
|
data?: string;
|
|
13
14
|
template?: {
|
|
@@ -17,10 +18,10 @@ interface Package {
|
|
|
17
18
|
};
|
|
18
19
|
};
|
|
19
20
|
}
|
|
21
|
+
export declare function getDefaultParams(parameters: Record<string, Parameters>): {};
|
|
20
22
|
export declare function parsePkg(pkg: Package): {
|
|
21
23
|
name: string;
|
|
22
24
|
version: string;
|
|
23
|
-
defaultParams: {};
|
|
24
25
|
serverEntry: string | undefined;
|
|
25
26
|
appEntry: string;
|
|
26
27
|
templateType: string;
|
package/dist/cli/oc.js
CHANGED
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDefaultParams = getDefaultParams;
|
|
3
4
|
exports.parsePkg = parsePkg;
|
|
4
5
|
exports.getContext = getContext;
|
|
5
|
-
function
|
|
6
|
-
const serverEntry = pkg.oc?.files?.data;
|
|
7
|
-
let appEntry = pkg.oc?.files?.template?.src || '';
|
|
8
|
-
if (!appEntry) {
|
|
9
|
-
throw new Error('Missing an entry on your package.json under oc.files.template.src');
|
|
10
|
-
}
|
|
11
|
-
if (!appEntry.startsWith('/')) {
|
|
12
|
-
appEntry = `/${appEntry}`;
|
|
13
|
-
}
|
|
6
|
+
function getDefaultParams(parameters) {
|
|
14
7
|
const defaultParams = (() => {
|
|
15
8
|
let params = {};
|
|
16
|
-
if (
|
|
17
|
-
params = Object.fromEntries(Object.entries(
|
|
9
|
+
if (parameters) {
|
|
10
|
+
params = Object.fromEntries(Object.entries(parameters || {})
|
|
18
11
|
.filter(([, param]) => {
|
|
19
12
|
return !!param.mandatory && 'example' in param;
|
|
20
13
|
})
|
|
@@ -22,6 +15,17 @@ function parsePkg(pkg) {
|
|
|
22
15
|
}
|
|
23
16
|
return params;
|
|
24
17
|
})();
|
|
18
|
+
return defaultParams;
|
|
19
|
+
}
|
|
20
|
+
function parsePkg(pkg) {
|
|
21
|
+
const serverEntry = pkg.oc?.files?.data;
|
|
22
|
+
let appEntry = pkg.oc?.files?.template?.src || '';
|
|
23
|
+
if (!appEntry) {
|
|
24
|
+
throw new Error('Missing an entry on your package.json under oc.files.template.src');
|
|
25
|
+
}
|
|
26
|
+
if (!appEntry.startsWith('/')) {
|
|
27
|
+
appEntry = `/${appEntry}`;
|
|
28
|
+
}
|
|
25
29
|
const templateType = pkg.oc?.files?.template?.type;
|
|
26
30
|
if (!templateType) {
|
|
27
31
|
throw new Error('Missing an entry on your package.json under oc.files.template.type');
|
|
@@ -29,7 +33,6 @@ function parsePkg(pkg) {
|
|
|
29
33
|
return {
|
|
30
34
|
name: pkg.name,
|
|
31
35
|
version: pkg.version,
|
|
32
|
-
defaultParams,
|
|
33
36
|
serverEntry,
|
|
34
37
|
appEntry,
|
|
35
38
|
templateType,
|
package/dist/cli/server.js
CHANGED
|
@@ -17,10 +17,14 @@ const oc_1 = require("./oc");
|
|
|
17
17
|
const get_mocked_plugins_1 = __importDefault(require("./get-mocked-plugins"));
|
|
18
18
|
const promisify = (fn) => (...args) => new Promise((resolve, reject) => fn(...args, (err, data) => (err ? reject(err) : resolve(data))));
|
|
19
19
|
const pk = require(node_path_1.default.join(process.cwd(), 'package.json'));
|
|
20
|
-
const { name, version, appEntry, serverEntry
|
|
20
|
+
const { name, version, appEntry, serverEntry } = (0, oc_1.parsePkg)(pk);
|
|
21
21
|
function getDataProvider() {
|
|
22
22
|
if (!serverEntry) {
|
|
23
|
-
return
|
|
23
|
+
return {
|
|
24
|
+
dataProvider: async (context) => ({
|
|
25
|
+
...(context.params ?? {}),
|
|
26
|
+
}),
|
|
27
|
+
};
|
|
24
28
|
}
|
|
25
29
|
const result = esbuild_1.default.buildSync({
|
|
26
30
|
entryPoints: [serverEntry],
|
|
@@ -32,10 +36,14 @@ function getDataProvider() {
|
|
|
32
36
|
const backend = node_vm_1.default.runInNewContext(code, {
|
|
33
37
|
...globalThis,
|
|
34
38
|
exports: {},
|
|
39
|
+
console,
|
|
35
40
|
module: { exports: {} },
|
|
36
41
|
});
|
|
37
42
|
const dataProvider = backend.data || backend.server.getData();
|
|
38
|
-
return
|
|
43
|
+
return {
|
|
44
|
+
dataProvider: promisify(dataProvider),
|
|
45
|
+
parametersSchema: backend.server?._parameters,
|
|
46
|
+
};
|
|
39
47
|
}
|
|
40
48
|
function getBaseTemplate(appBlock) {
|
|
41
49
|
const baseTemplate = `
|
|
@@ -50,7 +58,7 @@ function getBaseTemplate(appBlock) {
|
|
|
50
58
|
width: 100%;
|
|
51
59
|
height: 100%;
|
|
52
60
|
margin: 0;
|
|
53
|
-
}
|
|
61
|
+
}
|
|
54
62
|
</style>
|
|
55
63
|
</head>
|
|
56
64
|
<body>
|
|
@@ -90,11 +98,12 @@ async function createServer({ template, port, }) {
|
|
|
90
98
|
const { dev: clientJs } = oc_client_browser_1.default.compileSync();
|
|
91
99
|
const app = (0, fastify_1.default)({ logger: false });
|
|
92
100
|
await app.register(express_1.default);
|
|
93
|
-
const dataProvider = getDataProvider();
|
|
101
|
+
const { dataProvider, parametersSchema } = getDataProvider();
|
|
94
102
|
const plugins = (0, get_mocked_plugins_1.default)(node_path_1.default.join(process.cwd(), '..'));
|
|
95
103
|
for (const plugin of plugins) {
|
|
96
104
|
plugin.register.register(null, null, () => { });
|
|
97
105
|
}
|
|
106
|
+
const defaultParams = (0, oc_1.getDefaultParams)(pk.oc?.parameters ?? parametersSchema);
|
|
98
107
|
const vite = await (0, vite_1.createServer)({
|
|
99
108
|
server: { middlewareMode: true },
|
|
100
109
|
plugins: [(0, cssModulesPlugin_1.default)(), template.plugin?.()].filter(Boolean),
|
package/package.json
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oc-server",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"bin": "dist/cli/index.js",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "tsc",
|
|
10
|
+
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
|
|
11
|
+
},
|
|
8
12
|
"keywords": [
|
|
9
13
|
"oc",
|
|
10
14
|
"opencomponents"
|
|
@@ -21,9 +25,5 @@
|
|
|
21
25
|
"@fastify/express": "^3.0.0",
|
|
22
26
|
"fastify": "^4.28.1",
|
|
23
27
|
"oc-client-browser": "^1.8.0"
|
|
24
|
-
},
|
|
25
|
-
"scripts": {
|
|
26
|
-
"build": "tsc",
|
|
27
|
-
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
|
|
28
28
|
}
|
|
29
29
|
}
|