@marko/vite 2.3.4 → 2.3.7

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/index.js CHANGED
@@ -102,6 +102,7 @@ function markoPlugin(opts = {}) {
102
102
  let devServer;
103
103
  let registeredTag = false;
104
104
  let serverManifest;
105
+ const devEntryFileSources = /* @__PURE__ */ new Map();
105
106
  const transformWatchFiles = /* @__PURE__ */ new Map();
106
107
  const transformOptionalFiles = /* @__PURE__ */ new Map();
107
108
  return [
@@ -167,6 +168,9 @@ function markoPlugin(opts = {}) {
167
168
  ssrConfig.hot = domConfig.hot = true;
168
169
  devServer = _server;
169
170
  devServer.watcher.on("all", (type, filename) => {
171
+ if (type === "unlink") {
172
+ devEntryFileSources.delete(filename);
173
+ }
170
174
  for (const [id, files] of transformWatchFiles) {
171
175
  if ((0, import_anymatch.default)(files, filename)) {
172
176
  devServer.watcher.emit("change", id);
@@ -223,6 +227,18 @@ function markoPlugin(opts = {}) {
223
227
  }
224
228
  return resolved;
225
229
  }
230
+ if (importer) {
231
+ const importerQuery = getMarkoQuery(importer);
232
+ if (importerQuery) {
233
+ importer = importer.slice(0, -importerQuery.length);
234
+ if (importee[0] === ".") {
235
+ const resolved = import_path.default.resolve(importer, "..", importee);
236
+ if (resolved === importer)
237
+ return resolved;
238
+ }
239
+ return this.resolve(importee, importer, resolveOpts);
240
+ }
241
+ }
226
242
  return null;
227
243
  },
228
244
  async load(id) {
@@ -240,6 +256,7 @@ function markoPlugin(opts = {}) {
240
256
  serverManifest.entries[entryId] = relativeFileName;
241
257
  entryData = JSON.stringify(entryId);
242
258
  } else {
259
+ devEntryFileSources.set(fileName, "");
243
260
  entryData = JSON.stringify(await (0, import_manifest_generator.generateDocManifest)(await devServer.transformIndexHtml("/", (0, import_manifest_generator.generateInputDoc)(fileNameToURL(fileName, root)))));
244
261
  }
245
262
  return (0, import_server_entry_template.default)({
@@ -248,8 +265,19 @@ function markoPlugin(opts = {}) {
248
265
  runtimeId
249
266
  });
250
267
  }
251
- case browserEntryQuery:
252
- return import_fs.default.promises.readFile(id.slice(0, -browserEntryQuery.length), "utf-8");
268
+ case browserEntryQuery: {
269
+ const realId = id.slice(0, -browserEntryQuery.length);
270
+ if (isBuild) {
271
+ const {
272
+ meta: { source }
273
+ } = await this.load({
274
+ id: realId,
275
+ resolveDependencies: false
276
+ });
277
+ return source;
278
+ }
279
+ return devEntryFileSources.get(realId);
280
+ }
253
281
  }
254
282
  return virtualFiles.get(id) || null;
255
283
  },
@@ -270,6 +298,9 @@ function markoPlugin(opts = {}) {
270
298
  if (!isMarkoFile(id)) {
271
299
  return null;
272
300
  }
301
+ if (ssr && !isBuild && devEntryFileSources.has(id)) {
302
+ devEntryFileSources.set(id, source);
303
+ }
273
304
  const compiled = await compiler.compile(source, id, (typeof ssr === "object" ? ssr.ssr : ssr) ? ssrConfig : query === browserEntryQuery ? hydrateConfig : domConfig);
274
305
  const { map, meta } = compiled;
275
306
  let { code } = compiled;
@@ -291,7 +322,7 @@ if (import.meta.hot) import.meta.hot.accept();`;
291
322
  ]);
292
323
  transformWatchFiles.set(id, meta.watchFiles);
293
324
  }
294
- return { code, map };
325
+ return { code, map, meta: isBuild ? { source } : void 0 };
295
326
  }
296
327
  },
297
328
  {
package/dist/index.mjs CHANGED
@@ -85,6 +85,7 @@ function markoPlugin(opts = {}) {
85
85
  let devServer;
86
86
  let registeredTag = false;
87
87
  let serverManifest;
88
+ const devEntryFileSources = /* @__PURE__ */ new Map();
88
89
  const transformWatchFiles = /* @__PURE__ */ new Map();
89
90
  const transformOptionalFiles = /* @__PURE__ */ new Map();
90
91
  return [
@@ -150,6 +151,9 @@ function markoPlugin(opts = {}) {
150
151
  ssrConfig.hot = domConfig.hot = true;
151
152
  devServer = _server;
152
153
  devServer.watcher.on("all", (type, filename) => {
154
+ if (type === "unlink") {
155
+ devEntryFileSources.delete(filename);
156
+ }
153
157
  for (const [id, files] of transformWatchFiles) {
154
158
  if (anyMatch(files, filename)) {
155
159
  devServer.watcher.emit("change", id);
@@ -206,6 +210,18 @@ function markoPlugin(opts = {}) {
206
210
  }
207
211
  return resolved;
208
212
  }
213
+ if (importer) {
214
+ const importerQuery = getMarkoQuery(importer);
215
+ if (importerQuery) {
216
+ importer = importer.slice(0, -importerQuery.length);
217
+ if (importee[0] === ".") {
218
+ const resolved = path.resolve(importer, "..", importee);
219
+ if (resolved === importer)
220
+ return resolved;
221
+ }
222
+ return this.resolve(importee, importer, resolveOpts);
223
+ }
224
+ }
209
225
  return null;
210
226
  },
211
227
  async load(id) {
@@ -223,6 +239,7 @@ function markoPlugin(opts = {}) {
223
239
  serverManifest.entries[entryId] = relativeFileName;
224
240
  entryData = JSON.stringify(entryId);
225
241
  } else {
242
+ devEntryFileSources.set(fileName, "");
226
243
  entryData = JSON.stringify(await generateDocManifest(await devServer.transformIndexHtml("/", generateInputDoc(fileNameToURL(fileName, root)))));
227
244
  }
228
245
  return server_entry_template_default({
@@ -231,8 +248,19 @@ function markoPlugin(opts = {}) {
231
248
  runtimeId
232
249
  });
233
250
  }
234
- case browserEntryQuery:
235
- return fs.promises.readFile(id.slice(0, -browserEntryQuery.length), "utf-8");
251
+ case browserEntryQuery: {
252
+ const realId = id.slice(0, -browserEntryQuery.length);
253
+ if (isBuild) {
254
+ const {
255
+ meta: { source }
256
+ } = await this.load({
257
+ id: realId,
258
+ resolveDependencies: false
259
+ });
260
+ return source;
261
+ }
262
+ return devEntryFileSources.get(realId);
263
+ }
236
264
  }
237
265
  return virtualFiles.get(id) || null;
238
266
  },
@@ -253,6 +281,9 @@ function markoPlugin(opts = {}) {
253
281
  if (!isMarkoFile(id)) {
254
282
  return null;
255
283
  }
284
+ if (ssr && !isBuild && devEntryFileSources.has(id)) {
285
+ devEntryFileSources.set(id, source);
286
+ }
256
287
  const compiled = await compiler.compile(source, id, (typeof ssr === "object" ? ssr.ssr : ssr) ? ssrConfig : query === browserEntryQuery ? hydrateConfig : domConfig);
257
288
  const { map, meta } = compiled;
258
289
  let { code } = compiled;
@@ -274,7 +305,7 @@ if (import.meta.hot) import.meta.hot.accept();`;
274
305
  ]);
275
306
  transformWatchFiles.set(id, meta.watchFiles);
276
307
  }
277
- return { code, map };
308
+ return { code, map, meta: isBuild ? { source } : void 0 };
278
309
  }
279
310
  },
280
311
  {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@marko/vite",
3
3
  "description": "A Marko plugin for Vite",
4
- "version": "2.3.4",
4
+ "version": "2.3.7",
5
5
  "author": "Dylan Piercey <dpiercey@ebay.com>",
6
6
  "bugs": "https://github.com/marko-js/vite/issues",
7
7
  "dependencies": {