@modern-js/plugin-data-loader 2.14.0 → 2.16.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,185 +1,192 @@
1
1
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
- try {
3
- var info = gen[key](arg);
4
- var value = info.value;
5
- } catch (error) {
6
- reject(error);
7
- return;
8
- }
9
- if (info.done) {
10
- resolve(value);
11
- } else {
12
- Promise.resolve(value).then(_next, _throw);
13
- }
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
14
  }
15
- function _asyncToGenerator(fn) {
16
- return function() {
17
- var self = this, args = arguments;
18
- return new Promise(function(resolve, reject) {
19
- var gen = fn.apply(self, args);
20
- function _next(value) {
21
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
- }
23
- function _throw(err) {
24
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
- }
26
- _next(undefined);
27
- });
28
- };
15
+ function _async_to_generator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(void 0);
27
+ });
28
+ };
29
29
  }
30
- var __generator = this && this.__generator || function(thisArg, body) {
31
- var f, y, t, g, _ = {
32
- label: 0,
33
- sent: function() {
34
- if (t[0] & 1) throw t[1];
35
- return t[1];
36
- },
37
- trys: [],
38
- ops: []
30
+ var __generator = function(thisArg, body) {
31
+ var f, y, t, g, _ = {
32
+ label: 0,
33
+ sent: function() {
34
+ if (t[0] & 1)
35
+ throw t[1];
36
+ return t[1];
37
+ },
38
+ trys: [],
39
+ ops: []
40
+ };
41
+ return g = {
42
+ next: verb(0),
43
+ "throw": verb(1),
44
+ "return": verb(2)
45
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
46
+ return this;
47
+ }), g;
48
+ function verb(n) {
49
+ return function(v) {
50
+ return step([
51
+ n,
52
+ v
53
+ ]);
39
54
  };
40
- return(g = {
41
- next: verb(0),
42
- "throw": verb(1),
43
- "return": verb(2)
44
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
45
- return this;
46
- }), g);
47
- function verb(n) {
48
- return function(v) {
49
- return step([
50
- n,
51
- v
52
- ]);
53
- };
54
- }
55
- function step(op) {
56
- if (f) throw new TypeError("Generator is already executing.");
57
- while(_)try {
58
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
59
- if (y = 0, t) op = [
60
- op[0] & 2,
61
- t.value
62
- ];
63
- switch(op[0]){
64
- case 0:
65
- case 1:
66
- t = op;
67
- break;
68
- case 4:
69
- _.label++;
70
- return {
71
- value: op[1],
72
- done: false
73
- };
74
- case 5:
75
- _.label++;
76
- y = op[1];
77
- op = [
78
- 0
79
- ];
80
- continue;
81
- case 7:
82
- op = _.ops.pop();
83
- _.trys.pop();
84
- continue;
85
- default:
86
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
87
- _ = 0;
88
- continue;
89
- }
90
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
91
- _.label = op[1];
92
- break;
93
- }
94
- if (op[0] === 6 && _.label < t[1]) {
95
- _.label = t[1];
96
- t = op;
97
- break;
98
- }
99
- if (t && _.label < t[2]) {
100
- _.label = t[2];
101
- _.ops.push(op);
102
- break;
103
- }
104
- if (t[2]) _.ops.pop();
105
- _.trys.pop();
106
- continue;
107
- }
108
- op = body.call(thisArg, _);
109
- } catch (e) {
55
+ }
56
+ function step(op) {
57
+ if (f)
58
+ throw new TypeError("Generator is already executing.");
59
+ while (_)
60
+ try {
61
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
62
+ return t;
63
+ if (y = 0, t)
64
+ op = [
65
+ op[0] & 2,
66
+ t.value
67
+ ];
68
+ switch (op[0]) {
69
+ case 0:
70
+ case 1:
71
+ t = op;
72
+ break;
73
+ case 4:
74
+ _.label++;
75
+ return {
76
+ value: op[1],
77
+ done: false
78
+ };
79
+ case 5:
80
+ _.label++;
81
+ y = op[1];
110
82
  op = [
111
- 6,
112
- e
83
+ 0
113
84
  ];
114
- y = 0;
115
- } finally{
116
- f = t = 0;
85
+ continue;
86
+ case 7:
87
+ op = _.ops.pop();
88
+ _.trys.pop();
89
+ continue;
90
+ default:
91
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
92
+ _ = 0;
93
+ continue;
94
+ }
95
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
96
+ _.label = op[1];
97
+ break;
98
+ }
99
+ if (op[0] === 6 && _.label < t[1]) {
100
+ _.label = t[1];
101
+ t = op;
102
+ break;
103
+ }
104
+ if (t && _.label < t[2]) {
105
+ _.label = t[2];
106
+ _.ops.push(op);
107
+ break;
108
+ }
109
+ if (t[2])
110
+ _.ops.pop();
111
+ _.trys.pop();
112
+ continue;
117
113
  }
118
- if (op[0] & 5) throw op[1];
119
- return {
120
- value: op[0] ? op[1] : void 0,
121
- done: true
122
- };
123
- }
114
+ op = body.call(thisArg, _);
115
+ } catch (e) {
116
+ op = [
117
+ 6,
118
+ e
119
+ ];
120
+ y = 0;
121
+ } finally {
122
+ f = t = 0;
123
+ }
124
+ if (op[0] & 5)
125
+ throw op[1];
126
+ return {
127
+ value: op[0] ? op[1] : void 0,
128
+ done: true
129
+ };
130
+ }
124
131
  };
125
132
  import path from "path";
126
133
  import fs from "fs";
127
134
  import { MAIN_ENTRY_NAME, SERVER_BUNDLE_DIRECTORY } from "@modern-js/utils/constants";
128
135
  import { matchEntry } from "../common/utils";
129
- var server_default = function() {
130
- return {
131
- name: "@modern-js/plugin-data-loader",
132
- setup: function() {
133
- return {
134
- prepareLoaderHandler: function prepareLoaderHandler(param) {
135
- var serverRoutes = param.serverRoutes, distDir = param.distDir;
136
- return function() {
137
- var _ref = _asyncToGenerator(function(context) {
138
- var entry, routesPath, _ref, routes, handleRequest;
139
- return __generator(this, function(_state) {
140
- switch(_state.label){
141
- case 0:
142
- entry = matchEntry(context.path, serverRoutes);
143
- if (!entry) {
144
- return [
145
- 2
146
- ];
147
- }
148
- routesPath = path.join(distDir, SERVER_BUNDLE_DIRECTORY, "".concat(entry.entryName || MAIN_ENTRY_NAME, "-server-loaders.js"));
149
- if (!fs.existsSync(routesPath)) {
150
- return [
151
- 2
152
- ];
153
- }
154
- return [
155
- 4,
156
- import(routesPath)
157
- ];
158
- case 1:
159
- _ref = _state.sent(), routes = _ref.routes, handleRequest = _ref.handleRequest;
160
- if (!routes) {
161
- return [
162
- 2
163
- ];
164
- }
165
- return [
166
- 2,
167
- handleRequest({
168
- serverRoutes: serverRoutes,
169
- context: context,
170
- routes: routes
171
- })
172
- ];
173
- }
174
- });
175
- });
176
- return function(context) {
177
- return _ref.apply(this, arguments);
178
- };
179
- }();
136
+ export default function() {
137
+ return {
138
+ name: "@modern-js/plugin-data-loader",
139
+ setup: function() {
140
+ return {
141
+ prepareLoaderHandler: function prepareLoaderHandler(param) {
142
+ var serverRoutes = param.serverRoutes, distDir = param.distDir;
143
+ return function() {
144
+ var _ref = _async_to_generator(function(context) {
145
+ var entry, routesPath, _ref2, routes, handleRequest;
146
+ return __generator(this, function(_state) {
147
+ switch (_state.label) {
148
+ case 0:
149
+ entry = matchEntry(context.path, serverRoutes);
150
+ if (!entry) {
151
+ return [
152
+ 2
153
+ ];
154
+ }
155
+ routesPath = path.join(distDir, SERVER_BUNDLE_DIRECTORY, "".concat(entry.entryName || MAIN_ENTRY_NAME, "-server-loaders.js"));
156
+ if (!fs.existsSync(routesPath)) {
157
+ return [
158
+ 2
159
+ ];
160
+ }
161
+ return [
162
+ 4,
163
+ import(routesPath)
164
+ ];
165
+ case 1:
166
+ _ref2 = _state.sent(), routes = _ref2.routes, handleRequest = _ref2.handleRequest;
167
+ if (!routes) {
168
+ return [
169
+ 2
170
+ ];
171
+ }
172
+ return [
173
+ 2,
174
+ handleRequest({
175
+ serverRoutes,
176
+ context,
177
+ routes
178
+ })
179
+ ];
180
180
  }
181
+ });
182
+ });
183
+ return function(context) {
184
+ return _ref.apply(this, arguments);
181
185
  };
186
+ }();
182
187
  }
183
- };
184
- };
185
- export { server_default as default };
188
+ };
189
+ }
190
+ };
191
+ }
192
+ ;
@@ -1,16 +1,8 @@
1
1
  import { compile } from "path-to-regexp";
2
2
  import { redirect } from "react-router-dom";
3
- import {
4
- LOADER_ID_PARAM,
5
- DIRECT_PARAM,
6
- CONTENT_TYPE_DEFERRED
7
- } from "../common/constants";
3
+ import { LOADER_ID_PARAM, DIRECT_PARAM, CONTENT_TYPE_DEFERRED } from "../common/constants";
8
4
  import { parseDeferredReadableStream } from "./data";
9
- const getRequestUrl = ({
10
- params,
11
- request,
12
- routeId
13
- }) => {
5
+ export const getRequestUrl = ({ params, request, routeId }) => {
14
6
  const url = new URL(request.url);
15
7
  const toPath = compile(url.pathname, {
16
8
  encode: encodeURIComponent
@@ -30,18 +22,19 @@ const handleRedirectResponse = (res) => {
30
22
  return res;
31
23
  };
32
24
  const handleDeferredResponse = async (res) => {
33
- var _a;
34
- if (((_a = res.headers.get("Content-Type")) == null ? void 0 : _a.match(CONTENT_TYPE_DEFERRED)) && res.body) {
25
+ var _res_headers_get;
26
+ if (((_res_headers_get = res.headers.get("Content-Type")) === null || _res_headers_get === void 0 ? void 0 : _res_headers_get.match(CONTENT_TYPE_DEFERRED)) && res.body) {
35
27
  return await parseDeferredReadableStream(res.body);
36
28
  }
37
29
  return res;
38
30
  };
39
- const createRequest = (routeId, method = "get") => {
40
- return async ({
41
- params,
42
- request
43
- }) => {
44
- const url = getRequestUrl({ params, request, routeId });
31
+ export const createRequest = (routeId, method = "get") => {
32
+ return async ({ params, request }) => {
33
+ const url = getRequestUrl({
34
+ params,
35
+ request,
36
+ routeId
37
+ });
45
38
  let res;
46
39
  res = await fetch(url, {
47
40
  method,
@@ -55,7 +48,3 @@ const createRequest = (routeId, method = "get") => {
55
48
  return res;
56
49
  };
57
50
  };
58
- export {
59
- createRequest,
60
- getRequestUrl
61
- };
@@ -1,9 +1,6 @@
1
- import {
2
- UNSAFE_DeferredData as DeferredData,
3
- AbortedDeferredError
4
- } from "@modern-js/utils/universal/remix-router";
1
+ import { UNSAFE_DeferredData as DeferredData, AbortedDeferredError } from "@modern-js/utils/universal/remix-router";
5
2
  const DEFERRED_VALUE_PLACEHOLDER_PREFIX = "__deferred_promise:";
6
- async function parseDeferredReadableStream(stream) {
3
+ export async function parseDeferredReadableStream(stream) {
7
4
  if (!stream) {
8
5
  throw new Error("parseDeferredReadableStream requires stream argument");
9
6
  }
@@ -60,9 +57,7 @@ async function parseDeferredReadableStream(stream) {
60
57
  }
61
58
  }
62
59
  for (const [key, resolver] of Object.entries(deferredResolvers)) {
63
- resolver.reject(
64
- new AbortedDeferredError(`Deferred ${key} will never resolved`)
65
- );
60
+ resolver.reject(new AbortedDeferredError(`Deferred ${key} will never resolved`));
66
61
  }
67
62
  } catch (error) {
68
63
  for (const resolver of Object.values(deferredResolvers)) {
@@ -70,7 +65,10 @@ async function parseDeferredReadableStream(stream) {
70
65
  }
71
66
  }
72
67
  })();
73
- return new DeferredData({ ...criticalData, ...deferredData });
68
+ return new DeferredData({
69
+ ...criticalData,
70
+ ...deferredData
71
+ });
74
72
  } catch (error) {
75
73
  for (const resolver of Object.values(deferredResolvers)) {
76
74
  resolver.reject(error);
@@ -101,7 +99,9 @@ async function* readStreamSections(stream) {
101
99
  const splitSections = bufferedString.split("\n\n");
102
100
  if (splitSections.length >= 2) {
103
101
  sections.push(...splitSections.slice(0, -1));
104
- buffer = [encoder.encode(splitSections.slice(-1).join("\n\n"))];
102
+ buffer = [
103
+ encoder.encode(splitSections.slice(-1).join("\n\n"))
104
+ ];
105
105
  }
106
106
  if (sections.length > 0) {
107
107
  break;
@@ -127,9 +127,7 @@ async function* readStreamSections(stream) {
127
127
  }
128
128
  }
129
129
  function mergeArrays(...arrays) {
130
- const out = new Uint8Array(
131
- arrays.reduce((total, arr) => total + arr.length, 0)
132
- );
130
+ const out = new Uint8Array(arrays.reduce((total, arr) => total + arr.length, 0));
133
131
  let offset = 0;
134
132
  for (const arr of arrays) {
135
133
  out.set(arr, offset);
@@ -137,6 +135,3 @@ function mergeArrays(...arrays) {
137
135
  }
138
136
  return out;
139
137
  }
140
- export {
141
- parseDeferredReadableStream
142
- };
@@ -1,8 +1,5 @@
1
1
  import path from "path";
2
- const generateClient = ({
3
- mapFile,
4
- loaderId
5
- }) => {
2
+ export const generateClient = ({ mapFile, loaderId }) => {
6
3
  delete require.cache[mapFile];
7
4
  const loadersMap = require(mapFile);
8
5
  let requestCode = ``;
@@ -37,6 +34,3 @@ const generateClient = ({
37
34
  `;
38
35
  return generatedCode;
39
36
  };
40
- export {
41
- generateClient
42
- };
@@ -1,8 +1,8 @@
1
1
  import { generateClient } from "./generateClient";
2
- async function loader(source) {
3
- var _a;
2
+ export default async function loader(source) {
3
+ var _this__compiler;
4
4
  this.cacheable();
5
- const target = (_a = this._compiler) == null ? void 0 : _a.options.target;
5
+ const target = (_this__compiler = this._compiler) === null || _this__compiler === void 0 ? void 0 : _this__compiler.options.target;
6
6
  if (target === "node") {
7
7
  return source;
8
8
  }
@@ -29,6 +29,3 @@ async function loader(source) {
29
29
  });
30
30
  return code;
31
31
  }
32
- export {
33
- loader as default
34
- };
@@ -1,8 +1,3 @@
1
- const LOADER_ID_PARAM = "__loader";
2
- const DIRECT_PARAM = "__ssrDirect";
3
- const CONTENT_TYPE_DEFERRED = "text/modernjs-deferred";
4
- export {
5
- CONTENT_TYPE_DEFERRED,
6
- DIRECT_PARAM,
7
- LOADER_ID_PARAM
8
- };
1
+ export const LOADER_ID_PARAM = "__loader";
2
+ export const DIRECT_PARAM = "__ssrDirect";
3
+ export const CONTENT_TYPE_DEFERRED = "text/modernjs-deferred";
@@ -12,10 +12,7 @@ function sortByUrlPath(entries) {
12
12
  });
13
13
  return entries;
14
14
  }
15
- const matchEntry = (pathname, entries) => {
15
+ export const matchEntry = (pathname, entries) => {
16
16
  sortByUrlPath(entries);
17
17
  return entries.find((entry) => pathname.startsWith(entry.urlPath));
18
18
  };
19
- export {
20
- matchEntry
21
- };
@@ -1,24 +1,22 @@
1
- import {
2
- installGlobals,
3
- writeReadableStreamToWritable,
4
- Response as NodeResponse
5
- } from "@remix-run/node";
6
- import {
7
- createStaticHandler,
8
- ErrorResponse,
9
- UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL
10
- } from "@modern-js/utils/universal/remix-router";
1
+ import { installGlobals, writeReadableStreamToWritable, Response as NodeResponse } from "@remix-run/node";
2
+ import { createStaticHandler, ErrorResponse, UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL } from "@modern-js/utils/universal/remix-router";
11
3
  import { isPlainObject } from "@modern-js/utils/lodash";
12
4
  import { transformNestedRoutes } from "@modern-js/utils/universal/nestedRoutes";
13
5
  import { CONTENT_TYPE_DEFERRED, LOADER_ID_PARAM } from "../common/constants";
14
6
  import { matchEntry } from "../common/utils";
15
7
  import { createDeferredReadableStream } from "./response";
16
8
  installGlobals();
17
- const redirectStatusCodes = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]);
18
- function isRedirectResponse(status) {
9
+ const redirectStatusCodes = /* @__PURE__ */ new Set([
10
+ 301,
11
+ 302,
12
+ 303,
13
+ 307,
14
+ 308
15
+ ]);
16
+ export function isRedirectResponse(status) {
19
17
  return redirectStatusCodes.has(status);
20
18
  }
21
- function isResponse(value) {
19
+ export function isResponse(value) {
22
20
  return value != null && typeof value.status === "number" && typeof value.statusText === "string" && typeof value.headers === "object" && typeof value.body !== "undefined";
23
21
  }
24
22
  function convertModernRedirectResponse(headers, basename) {
@@ -72,11 +70,7 @@ const sendLoaderResponse = async (res, nodeResponse) => {
72
70
  res.end();
73
71
  }
74
72
  };
75
- const handleRequest = async ({
76
- context,
77
- serverRoutes,
78
- routes: routesConfig
79
- }) => {
73
+ export const handleRequest = async ({ context, serverRoutes, routes: routesConfig }) => {
80
74
  const { method, query } = context;
81
75
  const routeId = query[LOADER_ID_PARAM];
82
76
  const entry = matchEntry(context.path, serverRoutes);
@@ -108,10 +102,7 @@ const handleRequest = async ({
108
102
  if (!init.headers) {
109
103
  throw new Error("redirect response includes no headers");
110
104
  }
111
- response = convertModernRedirectResponse(
112
- new Headers(init.headers),
113
- basename
114
- );
105
+ response = convertModernRedirectResponse(new Headers(init.headers), basename);
115
106
  } else {
116
107
  const headers = new Headers(init.headers);
117
108
  headers.set("Content-Type", `${CONTENT_TYPE_DEFERRED}; charset=UTF-8`);
@@ -127,7 +118,7 @@ const handleRequest = async ({
127
118
  }
128
119
  } catch (error) {
129
120
  const message = error instanceof ErrorResponse ? error.data : String(error);
130
- logger == null ? void 0 : logger.error(message);
121
+ logger === null || logger === void 0 ? void 0 : logger.error(message);
131
122
  response = new NodeResponse(message, {
132
123
  status: 500,
133
124
  headers: {
@@ -137,8 +128,3 @@ const handleRequest = async ({
137
128
  }
138
129
  await sendLoaderResponse(res, response);
139
130
  };
140
- export {
141
- handleRequest,
142
- isRedirectResponse,
143
- isResponse
144
- };