@dreamkit/dev 0.0.13 → 0.0.14-next.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"DreamkitDevServer.d.ts","sourceRoot":"","sources":["../src/DreamkitDevServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMpD,OAAO,EAAE,GAAG,EAAW,KAAK,EAAU,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAmC,aAAa,EAAE,MAAM,MAAM,CAAC;AAGtE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GACtD,0BAA0B,CAAC;AAC7B,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,GACvD,0BAA0B,CAAC;AAE7B,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,WAAW,SAAmB;IACrC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IACnD,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;gBACzB,SAAS,EAAE,oBAAoB;IA6B3C,MAAM,CAAC,QAAQ,IAAI,iBAAiB;IAKpC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,iBAAiB;IAGzC,KAAK,CAAC,IAAI,EAAE,MAAM;IAMlB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIzC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAKxC,gBAAgB;IAyBhB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAIjD,OAAO,CAAC,uBAAuB,UAAO;IAoCtC,KAAK;IAIL,IAAI;CAKX"}
1
+ {"version":3,"file":"DreamkitDevServer.d.ts","sourceRoot":"","sources":["../src/DreamkitDevServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMpD,OAAO,EAAE,GAAG,EAAW,KAAK,EAAU,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAmC,aAAa,EAAE,MAAM,MAAM,CAAC;AAGtE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GACtD,0BAA0B,CAAC;AAC7B,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,GACvD,0BAA0B,CAAC;AAE7B,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,WAAW,SAAmB;IACrC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IACnD,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;gBACzB,SAAS,EAAE,oBAAoB;IA6B3C,MAAM,CAAC,QAAQ,IAAI,iBAAiB;IAKpC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,iBAAiB;IAGzC,KAAK,CAAC,IAAI,EAAE,MAAM;IAWlB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIzC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAIxC,gBAAgB;IAyBhB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAIjD,OAAO,CAAC,uBAAuB,UAAO;IAoCtC,KAAK;IAIL,IAAI;CAKX"}
@@ -57,17 +57,22 @@ export class DreamkitDevServer {
57
57
  async fetch(path) {
58
58
  //const mod = $server.moduleGraph.getModuleById(shaking.entry);
59
59
  //if (mod) $server.moduleGraph.invalidateModule(mod);
60
- const ext = getExt(path);
61
- return await this.runtime.executeUrl(`${path}?${Date.now()}&ext=${ext}`);
60
+ try {
61
+ const ext = getExt(path);
62
+ return await this.runtime.executeUrl(`${path}?${Date.now()}&ext=${ext}`);
63
+ }
64
+ catch (error) {
65
+ console.error(error);
66
+ return undefined;
67
+ }
62
68
  }
63
69
  async fetchDefault(path) {
64
70
  const result = await this.fetch(path);
65
- return result.default;
71
+ return result?.default;
66
72
  }
67
73
  async fetchRoute(path) {
68
74
  const url = createTransformUrl(path, { toSolidRoute: true });
69
- const result = await this.fetch(url);
70
- return result.default;
75
+ return await this.fetchDefault(url);
71
76
  }
72
77
  async findRouteObjects() {
73
78
  const files = await findFileRoutes(this.options.routeDir);
@@ -179,7 +179,7 @@ export function createDreamkitDevServer(vinxiApp, inOptions = {}) {
179
179
  if (router.name === "ssr" && server.app.objects.has(id))
180
180
  await server.app.remove([id]);
181
181
  if (action === "add" || action === "update") {
182
- const routeObject = await server.fetchDefault(vinxiRoute.filePath);
182
+ const routeObject = await server.fetchRoute(vinxiRoute.filePath);
183
183
  if (isRoute(routeObject))
184
184
  vinxiRoute.$$route = {
185
185
  pick: ["route"],
@@ -1,4 +1,4 @@
1
- import { createCallChains, createConst, defineTransform, getFirstChain, parseCallsChain, } from "../utils/ast.js";
1
+ import { addImports, createCallChains, createConst, defineTransform, getFirstChain, parseCallsChain, } from "../utils/ast.js";
2
2
  import { traverse } from "../utils/babel.js";
3
3
  import { replaceImportSpec } from "./replace-import-spec.js";
4
4
  import * as t from "@babel/types";
@@ -71,6 +71,27 @@ function createServerAction(program, name, call, exported = false) {
71
71
  const serverApi = program.scope.generateUid(`server_${name}`);
72
72
  const chain = parseCallsChain(call);
73
73
  const serverMethods = ["self", "create"];
74
+ const cache = chain.calls.find((call) => call.name === "cache");
75
+ let cacheImport = cache
76
+ ? addImports(program, ["query"], "@solidjs/router")
77
+ : undefined;
78
+ const serverCallback = t.arrowFunctionExpression([t.identifier("params")], t.blockStatement([
79
+ // const serverApi = $serverApi.clone(baseFetchData.options).self({}).create(() => {})
80
+ createConst(serverApi, createCallChains({
81
+ ...chain,
82
+ calls: [
83
+ {
84
+ name: "clone",
85
+ arguments: [
86
+ t.memberExpression(t.identifier(commonApi), t.identifier("options")),
87
+ ],
88
+ },
89
+ ...chain.calls.filter(({ name }) => serverMethods.includes(name)),
90
+ ],
91
+ })),
92
+ // return await serverApi(params);
93
+ t.returnStatement(t.awaitExpression(t.callExpression(t.identifier(serverApi), [t.identifier("params")]))),
94
+ ], [t.directive(t.directiveLiteral("use server"))]), true);
74
95
  return [
75
96
  // const baseFetchData = $api.params({});
76
97
  createConst(commonApi, createCallChains({
@@ -78,25 +99,12 @@ function createServerAction(program, name, call, exported = false) {
78
99
  calls: chain.calls.filter(({ name }) => !serverMethods.includes(name)),
79
100
  })),
80
101
  t.variableDeclaration("let", [
81
- t.variableDeclarator(t.identifier(name), t.arrowFunctionExpression([t.identifier("params")], t.blockStatement([
82
- // const serverApi = $serverApi.clone(baseFetchData.options).self({}).create(() => {})
83
- createConst(serverApi, createCallChains({
84
- ...chain,
85
- calls: [
86
- {
87
- name: "clone",
88
- arguments: [
89
- t.memberExpression(t.identifier(commonApi), t.identifier("options")),
90
- ],
91
- },
92
- ...chain.calls.filter(({ name }) => serverMethods.includes(name)),
93
- ],
94
- })),
95
- // return await serverApi(params);
96
- t.returnStatement(t.awaitExpression(t.callExpression(t.identifier(serverApi), [
97
- t.identifier("params"),
98
- ]))),
99
- ], [t.directive(t.directiveLiteral("use server"))]), true)),
102
+ t.variableDeclarator(t.identifier(name), cacheImport
103
+ ? t.callExpression(t.identifier(cacheImport.query), [
104
+ serverCallback,
105
+ ...(cache?.arguments.length ? [cache.arguments[0]] : []),
106
+ ])
107
+ : serverCallback),
100
108
  ]),
101
109
  // const originalFetchData = fetchData;
102
110
  createConst(originalFunc, t.identifier(name)),
@@ -28,7 +28,9 @@ export declare function defineTransform<T>(transform: Transform<T>): Transform<T
28
28
  export declare function createConst(name: string, value: t.Expression): t.VariableDeclaration;
29
29
  export declare function appendChainCall(input: t.Expression | string, method: string, args: t.Expression[]): t.CallExpression;
30
30
  export declare function prependChainCall(input: t.Expression | string, method: string, args?: t.Expression[]): t.CallExpression;
31
- export declare function addImports<T extends string>(program: NodePath<t.Program>, specifiers: T[], source: string): {
31
+ export declare function addImports<T extends string>(program: NodePath<t.Program> & {
32
+ __imports?: Record<string, Record<string, string>>;
33
+ }, specifiers: T[], source: string): {
32
34
  [K in T]: string;
33
35
  };
34
36
  //# sourceMappingURL=ast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/utils/ast.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AAIzC,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,iBAIjD;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAElD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,uBAKrC;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,eAAe,GAAG,SAAS,EAChC,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,0DAavB;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,GAAG,EAAE,CAAA;KAAE,EAAE,CAAC;CAC7C,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,cAAc,GAAG,KAAK,CAwB9D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,mCAS5C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,oBAaxE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI;gBAGrB,MAAM;WACX,CAAC,CAAC,gBAAgB;cAgBhC;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,uJAQ/C;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,YAoBrD;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,MAAM,qBAG3D;AACD,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAExE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,yBAI5D;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,MAAM,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,oBAiBrB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,MAAM,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,CAAC,CAAC,UAAU,EAAO,oBAqB1B;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EACzC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAC5B,UAAU,EAAE,CAAC,EAAE,EACf,MAAM,EAAE,MAAM,GACb;KAAG,CAAC,IAAI,CAAC,GAAG,MAAM;CAAE,CAkBtB"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/utils/ast.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AAIzC,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,iBAIjD;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAElD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,uBAKrC;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,eAAe,GAAG,SAAS,EAChC,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,0DAavB;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,GAAG,EAAE,CAAA;KAAE,EAAE,CAAC;CAC7C,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,cAAc,GAAG,KAAK,CAwB9D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,mCAS5C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,oBAaxE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI;gBAGrB,MAAM;WACX,CAAC,CAAC,gBAAgB;cAgBhC;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,uJAQ/C;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,YAoBrD;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,MAAM,qBAG3D;AACD,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAExE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,yBAI5D;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,MAAM,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,oBAiBrB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,MAAM,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,CAAC,CAAC,UAAU,EAAO,oBAqB1B;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EACzC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD,EACD,UAAU,EAAE,CAAC,EAAE,EACf,MAAM,EAAE,MAAM,GACb;KAAG,CAAC,IAAI,CAAC,GAAG,MAAM;CAAE,CAwBtB"}
package/lib/utils/ast.js CHANGED
@@ -167,10 +167,17 @@ export function prependChainCall(input, method, args = []) {
167
167
  }
168
168
  }
169
169
  export function addImports(program, specifiers, source) {
170
+ const cacheKey = [...[...specifiers].sort(), source].join("|");
171
+ if (!program.__imports)
172
+ program.__imports = {};
173
+ if (program.__imports?.[cacheKey])
174
+ return program.__imports?.[cacheKey];
170
175
  const id = specifiers.map((name) => program.scope.generateUid(name));
171
176
  program.node.body.unshift(t.importDeclaration(specifiers.map((spec, index) => t.importSpecifier(t.identifier(id[index]), t.identifier(spec))), t.stringLiteral(source)));
172
- return specifiers.reduce((result, name, index) => {
177
+ const result = specifiers.reduce((result, name, index) => {
173
178
  result[name] = id[index];
174
179
  return result;
175
180
  }, {});
181
+ program.__imports[cacheKey] = result;
182
+ return result;
176
183
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dreamkit/dev",
3
- "version": "0.0.13",
3
+ "version": "0.0.14-next.0",
4
4
  "description": "Development tools for DreamKit.",
5
5
  "homepage": "https://dreamkit.dev",
6
6
  "repository": {
@@ -45,7 +45,7 @@
45
45
  "rollup": "^4.26.0",
46
46
  "vite-plugin-solid": "^2.10.2",
47
47
  "vite-tsconfig-paths": "^5.1.2",
48
- "@dreamkit/app": "0.0.6",
48
+ "@dreamkit/app": "0.0.7-next.0",
49
49
  "@dreamkit/schema": "0.0.4"
50
50
  },
51
51
  "devDependencies": {