@gracile/engine 0.1.1 → 0.2.0-next.1
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/ambient.d.ts +9 -4
- package/dist/assertions.test.d.ts +2 -0
- package/dist/assertions.test.d.ts.map +1 -0
- package/dist/assertions.test.js +22 -0
- package/dist/dev/dev.d.ts +6 -7
- package/dist/dev/dev.d.ts.map +1 -1
- package/dist/dev/dev.js +25 -18
- package/dist/plugin.d.ts +5 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +175 -0
- package/dist/render/route-template.d.ts.map +1 -1
- package/dist/render/route-template.js +21 -8
- package/dist/routes/collect.d.ts.map +1 -1
- package/dist/routes/collect.js +39 -30
- package/dist/routes/match.js +1 -1
- package/dist/routes/route.d.ts +4 -5
- package/dist/routes/route.d.ts.map +1 -1
- package/dist/routes/route.js +1 -2
- package/dist/server/env.d.ts +2 -1
- package/dist/server/env.d.ts.map +1 -1
- package/dist/server/env.js +5 -3
- package/dist/server/request.d.ts +1 -1
- package/dist/server/request.d.ts.map +1 -1
- package/dist/server/request.js +139 -97
- package/dist/server/utils.d.ts +21 -3
- package/dist/server/utils.d.ts.map +1 -1
- package/dist/server/utils.js +61 -10
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/vite/plugins/build-routes.d.ts.map +1 -1
- package/dist/vite/plugins/build-routes.js +1 -0
- package/dist/vite/plugins/virtual-routes.d.ts.map +1 -1
- package/dist/vite/plugins/virtual-routes.js +6 -1
- package/package.json +22 -26
- package/dist/build/build.d.ts +0 -2
- package/dist/build/build.d.ts.map +0 -1
- package/dist/build/build.js +0 -7
- package/dist/dev/server.d.ts +0 -30
- package/dist/dev/server.d.ts.map +0 -1
- package/dist/dev/server.js +0 -82
- package/dist/preview.d.ts +0 -6
- package/dist/preview.d.ts.map +0 -1
- package/dist/preview.js +0 -12
- package/dist/server/server.d.ts +0 -4
- package/dist/server/server.d.ts.map +0 -1
- package/dist/server/server.js +0 -25
- package/dist/vite/build.d.ts +0 -2
- package/dist/vite/build.d.ts.map +0 -1
- package/dist/vite/build.js +0 -114
- package/dist/vite/config.d.ts +0 -28
- package/dist/vite/config.d.ts.map +0 -1
- package/dist/vite/config.js +0 -74
- package/dist/vite/server.d.ts +0 -6
- package/dist/vite/server.d.ts.map +0 -1
- package/dist/vite/server.js +0 -20
package/dist/preview.d.ts
DELETED
package/dist/preview.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAMA,wBAAsB,OAAO,CAAC,EAC7B,IAAI,EACJ,MAAM,EACN,IAAI,GACJ,EAAE;IACF,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B,iBAmBA"}
|
package/dist/preview.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { logger } from '@gracile/internal-utils/logger';
|
|
2
|
-
import c from 'picocolors';
|
|
3
|
-
import { getConfigs } from './vite/config.js';
|
|
4
|
-
import { vitePreview } from './vite/server.js';
|
|
5
|
-
export async function preview({ port, expose, root, }) {
|
|
6
|
-
logger.info(c.gray('\n— Preview mode —\n'));
|
|
7
|
-
const { userConfigGracile } = await getConfigs(root ?? process.cwd(), 'build');
|
|
8
|
-
if (userConfigGracile?.output === 'server')
|
|
9
|
-
throw new Error(c.red(`Vite preview is unnecessary when using the ${c.yellow('server mode')}.\n\n`) +
|
|
10
|
-
c.yellow(`You can use a \`preview\` script with this command:\n\n${c.white('node --env-file=.env --watch dist/server/server.js')}\n`));
|
|
11
|
-
await vitePreview(port ?? userConfigGracile?.port ?? 9797, expose);
|
|
12
|
-
}
|
package/dist/server/server.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAUzD,eAAO,MAAM,cAAc,EAAE,gBAiB5B,CAAC;AAEF,OAAO,EAAE,+BAA+B,IAAI,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/server/server.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { setCurrentWorkingDirectory } from '@gracile/internal-utils/paths';
|
|
2
|
-
import { routeAssets, routeImports, routes } from 'gracile:routes';
|
|
3
|
-
import { createGracileMiddleware } from './request.js';
|
|
4
|
-
routes.forEach((route, pattern) => {
|
|
5
|
-
routes.set(pattern, {
|
|
6
|
-
...route,
|
|
7
|
-
pattern: new URLPattern(pattern, 'http://gracile'),
|
|
8
|
-
});
|
|
9
|
-
});
|
|
10
|
-
export const createHandlers = async ({ root = process.cwd(),
|
|
11
|
-
// hmrPort,
|
|
12
|
-
// NOTE: We need type parity with the dev. version of this function
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/require-await
|
|
14
|
-
} = {}) => {
|
|
15
|
-
setCurrentWorkingDirectory(root);
|
|
16
|
-
const gracileHandler = createGracileMiddleware({
|
|
17
|
-
root,
|
|
18
|
-
routes,
|
|
19
|
-
routeImports,
|
|
20
|
-
routeAssets,
|
|
21
|
-
serverMode: true,
|
|
22
|
-
});
|
|
23
|
-
return { handlers: [gracileHandler /* as RequestHandler */], vite: null };
|
|
24
|
-
};
|
|
25
|
-
export { printNodeHttpServerAddressInfos as printAddressInfos } from './utils.js';
|
package/dist/vite/build.d.ts
DELETED
package/dist/vite/build.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/vite/build.ts"],"names":[],"mappings":"AAWA,wBAAsB,SAAS,CAAC,IAAI,SAAgB,iBA8HnD"}
|
package/dist/vite/build.js
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { logger } from '@gracile/internal-utils/logger';
|
|
2
|
-
import { setCurrentWorkingDirectory } from '@gracile/internal-utils/paths';
|
|
3
|
-
import c from 'picocolors';
|
|
4
|
-
import { build, mergeConfig } from 'vite';
|
|
5
|
-
import { DEFAULT_USER_SERVER_MODULE_ENTRYPOINT } from '../dev/server.js';
|
|
6
|
-
import { getConfigs } from './config.js';
|
|
7
|
-
import { buildRoutes } from './plugins/build-routes.js';
|
|
8
|
-
import { virtualRoutes } from './plugins/virtual-routes.js';
|
|
9
|
-
import { createViteServer } from './server.js';
|
|
10
|
-
export async function viteBuild(root = process.cwd()) {
|
|
11
|
-
setCurrentWorkingDirectory(root);
|
|
12
|
-
logger.info(`${c.dim(`Project root:`)} ${root}\n`);
|
|
13
|
-
// SHOULD BE Vite for SSR?
|
|
14
|
-
const { vite: viteServerForBuild } = await createViteServer(root, 'build');
|
|
15
|
-
const { userConfigGracile, finalCommonConfigVite } = await getConfigs(root, 'build');
|
|
16
|
-
const serverMode = userConfigGracile?.output === 'server';
|
|
17
|
-
const htmlPages = await buildRoutes({
|
|
18
|
-
viteServerForBuild,
|
|
19
|
-
root,
|
|
20
|
-
_config: userConfigGracile || {},
|
|
21
|
-
serverMode,
|
|
22
|
-
});
|
|
23
|
-
const baseBuildConfig = {
|
|
24
|
-
root,
|
|
25
|
-
optimizeDeps: { include: [] },
|
|
26
|
-
css: {
|
|
27
|
-
devSourcemap: true,
|
|
28
|
-
},
|
|
29
|
-
plugins: [],
|
|
30
|
-
build: {
|
|
31
|
-
// IDEA: Make it overridable?
|
|
32
|
-
sourcemap: true,
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
const finalConfig = mergeConfig(finalCommonConfigVite, baseBuildConfig);
|
|
36
|
-
const clientConfig = mergeConfig(finalConfig, {
|
|
37
|
-
build: {
|
|
38
|
-
rollupOptions: {
|
|
39
|
-
// NOTE: Cannot be set in a plugin
|
|
40
|
-
input: htmlPages.inputList,
|
|
41
|
-
plugins: [htmlPages.plugin],
|
|
42
|
-
// input: {
|
|
43
|
-
// server:
|
|
44
|
-
// 'src/server.ts' /* DEFAULT_USER_SERVER_MODULE_ENTRYPOINT + '.ts' */,
|
|
45
|
-
// },
|
|
46
|
-
output: {
|
|
47
|
-
...(serverMode ? { dir: `${root}/dist/client` } : {}),
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
// resolve: {
|
|
52
|
-
// preserveSymlinks: true,
|
|
53
|
-
// conditions: ['development'],
|
|
54
|
-
// },
|
|
55
|
-
});
|
|
56
|
-
await build(clientConfig);
|
|
57
|
-
if (serverMode) {
|
|
58
|
-
const serverConfig = mergeConfig(finalConfig, {
|
|
59
|
-
publicDir: false,
|
|
60
|
-
ssr: {
|
|
61
|
-
// external: ['*node_modules*'],
|
|
62
|
-
// noExternal
|
|
63
|
-
},
|
|
64
|
-
resolve: {
|
|
65
|
-
// preserveSymlinks: true,
|
|
66
|
-
// conditions: ['development'],
|
|
67
|
-
// conditions: ['production'],
|
|
68
|
-
},
|
|
69
|
-
build: {
|
|
70
|
-
ssr: true,
|
|
71
|
-
rollupOptions: {
|
|
72
|
-
external: [
|
|
73
|
-
// '*',
|
|
74
|
-
// '!*',
|
|
75
|
-
// '*node_modules*',
|
|
76
|
-
// 'node_modules/@gracile/gracile',
|
|
77
|
-
// 'fsevents',
|
|
78
|
-
// 'express',
|
|
79
|
-
// 'vite',
|
|
80
|
-
// '@whatwg-node/server',
|
|
81
|
-
// '@lit/*',
|
|
82
|
-
// '@lit-labs/*',
|
|
83
|
-
// 'lit',
|
|
84
|
-
// 'lit-html',
|
|
85
|
-
// 'cheerio',
|
|
86
|
-
// 'parse5',
|
|
87
|
-
],
|
|
88
|
-
plugins: [
|
|
89
|
-
virtualRoutes({
|
|
90
|
-
// root,
|
|
91
|
-
routes: htmlPages.routes,
|
|
92
|
-
renderedRoutes: htmlPages.renderedRoutes,
|
|
93
|
-
}),
|
|
94
|
-
],
|
|
95
|
-
input: {
|
|
96
|
-
server: DEFAULT_USER_SERVER_MODULE_ENTRYPOINT,
|
|
97
|
-
},
|
|
98
|
-
output: {
|
|
99
|
-
dir: `${root}/dist/server`,
|
|
100
|
-
entryFileNames: '[name].js',
|
|
101
|
-
assetFileNames: 'assets/[name].js',
|
|
102
|
-
chunkFileNames: 'chunk/[name].js',
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
});
|
|
107
|
-
await build(serverConfig);
|
|
108
|
-
}
|
|
109
|
-
await viteServerForBuild.close().catch((e) => logger.error(String(e)));
|
|
110
|
-
logger.warn('Exiting');
|
|
111
|
-
// NOTE: Sometimes it's needed, sometimes it break some stuff
|
|
112
|
-
// TODO: Find the good condition for all case (during tests, etc.)
|
|
113
|
-
// process.exit();
|
|
114
|
-
}
|
package/dist/vite/config.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { type UserConfig } from 'vite';
|
|
2
|
-
import { GracileConfig } from '../user-config.js';
|
|
3
|
-
export declare function getConfigs(root: string, mode: 'dev' | 'build'): Promise<{
|
|
4
|
-
userConfigGracile: GracileConfig | null;
|
|
5
|
-
baseConfigVite: {
|
|
6
|
-
root: string;
|
|
7
|
-
mode: string;
|
|
8
|
-
server: {
|
|
9
|
-
middlewareMode: true;
|
|
10
|
-
hmr: {
|
|
11
|
-
port: number;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
appType: "custom";
|
|
15
|
-
envPrefix: string;
|
|
16
|
-
css: {
|
|
17
|
-
devSourcemap: true;
|
|
18
|
-
};
|
|
19
|
-
optimizeDeps: {
|
|
20
|
-
include: never[];
|
|
21
|
-
};
|
|
22
|
-
plugins: never[];
|
|
23
|
-
resolve: {};
|
|
24
|
-
};
|
|
25
|
-
userConfigVite: UserConfig;
|
|
26
|
-
finalCommonConfigVite: Record<string, any>;
|
|
27
|
-
}>;
|
|
28
|
-
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/vite/config.ts"],"names":[],"mappings":"AAKA,OAAO,EAAe,KAAK,UAAU,EAA6B,MAAM,MAAM,CAAC;AAG/E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;GAmFnE"}
|
package/dist/vite/config.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
|
-
import { pathToFileURL } from 'node:url';
|
|
3
|
-
import { logger } from '@gracile/internal-utils/logger';
|
|
4
|
-
import c from 'picocolors';
|
|
5
|
-
import { mergeConfig } from 'vite';
|
|
6
|
-
import { isUnknownObject } from '../assertions.js';
|
|
7
|
-
import { GracileConfig } from '../user-config.js';
|
|
8
|
-
export async function getConfigs(root, mode) {
|
|
9
|
-
const hmrPort = 8989 + Math.round(Math.random() * 100);
|
|
10
|
-
// NOTE: This is a bit weird. May find a better way to treat HMR ports.
|
|
11
|
-
// const tempConfigServer = await createServer();
|
|
12
|
-
// const baseUserConfig = await tempConfigServer.ssrLoadModule('gracile.config');
|
|
13
|
-
// tempConfigServer.close();
|
|
14
|
-
// NOTE: Extension omitted so `tsx` choose automatically JS or TS.
|
|
15
|
-
// Also, beware with absolute paths with Windows. They need the `file://` protocol.
|
|
16
|
-
const userConfigGracile = await import(
|
|
17
|
-
/* @vite-ignore */
|
|
18
|
-
pathToFileURL(path.join(root, 'gracile.config')).href)
|
|
19
|
-
.then((module) => {
|
|
20
|
-
if (isUnknownObject(module) && typeof module['default'] === 'function') {
|
|
21
|
-
const config = module['default'](GracileConfig);
|
|
22
|
-
if (config instanceof GracileConfig)
|
|
23
|
-
return config;
|
|
24
|
-
}
|
|
25
|
-
logger.error(c.yellow('Wrong user config.'));
|
|
26
|
-
return null;
|
|
27
|
-
})
|
|
28
|
-
.catch(() => {
|
|
29
|
-
logger.error(c.yellow('Warning: Wrong or no user config detected.'));
|
|
30
|
-
return null;
|
|
31
|
-
});
|
|
32
|
-
// NOTE: Harmonize `import.meta.env.(MODE|DEV|PROD)`
|
|
33
|
-
// See https://vitejs.dev/guide/api-javascript#createserver
|
|
34
|
-
if (mode === 'build')
|
|
35
|
-
process.env['NODE_ENV'] = 'production';
|
|
36
|
-
const baseConfigVite = {
|
|
37
|
-
root,
|
|
38
|
-
mode: mode === 'dev' ? 'development' : 'production',
|
|
39
|
-
server: mode === 'dev'
|
|
40
|
-
? // NOTE: Same (for now)
|
|
41
|
-
{
|
|
42
|
-
middlewareMode: true,
|
|
43
|
-
hmr: { port: hmrPort },
|
|
44
|
-
}
|
|
45
|
-
: {
|
|
46
|
-
middlewareMode: true,
|
|
47
|
-
hmr: { port: hmrPort },
|
|
48
|
-
},
|
|
49
|
-
appType: 'custom',
|
|
50
|
-
envPrefix: 'GRACILE',
|
|
51
|
-
css: {
|
|
52
|
-
devSourcemap: true,
|
|
53
|
-
},
|
|
54
|
-
// NOTE: Suppress the "Could not auto-determine entry point…" message
|
|
55
|
-
optimizeDeps: {
|
|
56
|
-
include: [],
|
|
57
|
-
},
|
|
58
|
-
plugins: [],
|
|
59
|
-
resolve: {
|
|
60
|
-
// TODO: Suppress message "Lit is in dev mode. Not recommended for production! See https://lit.dev/msg/dev-mode for more information."
|
|
61
|
-
// conditions: mode === 'dev' ? ['development'] : ['production'],
|
|
62
|
-
// preserveSymlinks: true,
|
|
63
|
-
// conditions: ['development', 'default'],
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
const userConfigVite = userConfigGracile?.vite || {};
|
|
67
|
-
const finalCommonConfigVite = mergeConfig(userConfigVite, baseConfigVite);
|
|
68
|
-
return {
|
|
69
|
-
userConfigGracile,
|
|
70
|
-
baseConfigVite,
|
|
71
|
-
userConfigVite,
|
|
72
|
-
finalCommonConfigVite,
|
|
73
|
-
};
|
|
74
|
-
}
|
package/dist/vite/server.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export declare function createViteServer(root: string, mode: 'dev' | 'build'): Promise<{
|
|
2
|
-
vite: import("vite").ViteDevServer;
|
|
3
|
-
gracileConfig: import("../user-config.js").GracileConfig | null;
|
|
4
|
-
}>;
|
|
5
|
-
export declare function vitePreview(port?: number, expose?: boolean | undefined): Promise<void>;
|
|
6
|
-
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/vite/server.ts"],"names":[],"mappings":"AAKA,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO;;;GAWzE;AAED,wBAAsB,WAAW,CAGhC,IAAI,SAAO,EACX,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,iBAQ5B"}
|
package/dist/vite/server.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { createServer, preview } from 'vite';
|
|
2
|
-
import { getConfigs } from './config.js';
|
|
3
|
-
// NOTE: Can be used for dev. and for assisting build
|
|
4
|
-
export async function createViteServer(root, mode) {
|
|
5
|
-
const { finalCommonConfigVite, userConfigGracile } = await getConfigs(root, mode);
|
|
6
|
-
const vite = await createServer(finalCommonConfigVite);
|
|
7
|
-
// TODO: print url even if in middleware mode
|
|
8
|
-
// if (mode === 'dev') vite.printUrls();
|
|
9
|
-
return { vite, gracileConfig: userConfigGracile };
|
|
10
|
-
}
|
|
11
|
-
export async function vitePreview(
|
|
12
|
-
/* _root: string, */
|
|
13
|
-
//
|
|
14
|
-
port = 9091, expose) {
|
|
15
|
-
const previewer = await preview({
|
|
16
|
-
appType: 'mpa',
|
|
17
|
-
preview: { port, host: expose || false },
|
|
18
|
-
});
|
|
19
|
-
previewer.printUrls();
|
|
20
|
-
}
|