eddev 0.1.29 → 0.1.30
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/build/codegen-worker-script.d.ts +5 -0
- package/build/codegen-worker-script.js +543 -0
- package/build/webpack-worker-script.d.ts +2 -0
- package/build/webpack-worker-script.js +160 -0
- package/cli/generate.d.ts +1 -0
- package/cli/generate.js +46 -0
- package/components/BrowserRouter.js +1 -1
- package/components/InlinePage.js +1 -1
- package/components/index.d.ts +0 -1
- package/components/index.js +0 -1
- package/entry/Root.js +4 -4
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +1 -1
- package/routing/index.d.ts +1 -0
- package/routing/index.js +13 -0
- package/routing/routing.d.ts +45 -0
- package/routing/routing.js +373 -0
|
@@ -0,0 +1,543 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
+
if (mod && mod.__esModule) return mod;
|
|
27
|
+
var result = {};
|
|
28
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
+
__setModuleDefault(result, mod);
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
32
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
33
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
34
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
35
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
36
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
37
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
38
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
42
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
43
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
44
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
45
|
+
function step(op) {
|
|
46
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
47
|
+
while (_) try {
|
|
48
|
+
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;
|
|
49
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
50
|
+
switch (op[0]) {
|
|
51
|
+
case 0: case 1: t = op; break;
|
|
52
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
53
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
54
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
55
|
+
default:
|
|
56
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
57
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
58
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
59
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
60
|
+
if (t[2]) _.ops.pop();
|
|
61
|
+
_.trys.pop(); continue;
|
|
62
|
+
}
|
|
63
|
+
op = body.call(thisArg, _);
|
|
64
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
65
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
69
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
70
|
+
if (ar || !(i in from)) {
|
|
71
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
72
|
+
ar[i] = from[i];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
76
|
+
};
|
|
77
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
78
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
79
|
+
};
|
|
80
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
81
|
+
exports.beginWork = void 0;
|
|
82
|
+
var worker_threads_1 = require("worker_threads");
|
|
83
|
+
var chokidar_1 = require("chokidar");
|
|
84
|
+
var Path = __importStar(require("path"));
|
|
85
|
+
var fs_1 = require("fs");
|
|
86
|
+
var graphql_1 = require("graphql");
|
|
87
|
+
var load_1 = require("@graphql-tools/load");
|
|
88
|
+
var url_loader_1 = require("@graphql-tools/url-loader");
|
|
89
|
+
// import { generate } from "@graphql-codegen/cli"
|
|
90
|
+
var core_1 = require("@graphql-codegen/core");
|
|
91
|
+
var glob_promise_1 = __importDefault(require("glob-promise"));
|
|
92
|
+
var promises_1 = require("fs/promises");
|
|
93
|
+
// Plugins
|
|
94
|
+
var typescriptPlugin = __importStar(require("@graphql-codegen/typescript"));
|
|
95
|
+
var typescriptOperationsPlugin = __importStar(require("@graphql-codegen/typescript-operations"));
|
|
96
|
+
var CodegenNoDuplicates = __importStar(require("./graphql-codegen/graphql-codegen-no-duplicates"));
|
|
97
|
+
var CodegenFiles = __importStar(require("./graphql-codegen/graphql-codegen-files"));
|
|
98
|
+
var CodegenQueries = __importStar(require("./graphql-codegen/graphql-codegen-queries"));
|
|
99
|
+
var sendSignal = function (sig) {
|
|
100
|
+
if (worker_threads_1.parentPort) {
|
|
101
|
+
worker_threads_1.parentPort.postMessage(sig);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
var graphqlPatterns = {
|
|
105
|
+
blocks: "./blocks/**/*.graphql",
|
|
106
|
+
views: "./views/**/*.graphql",
|
|
107
|
+
queries: "./queries/**/*.graphql",
|
|
108
|
+
};
|
|
109
|
+
var tsxPatterns = {
|
|
110
|
+
blocks: "./blocks/**/*.tsx",
|
|
111
|
+
views: "./views/**/*.tsx",
|
|
112
|
+
};
|
|
113
|
+
function beginWork(opts) {
|
|
114
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
115
|
+
var envFile, endpoint, schemaFile, schema, rawSchema, lastSchemaHash, regenerating, needsSchemaFetch, loadSchemaFromWordPress, regenerate, regenerateBecauseChanges, key, key, maybeRegenerate_1;
|
|
116
|
+
var _this = this;
|
|
117
|
+
return __generator(this, function (_a) {
|
|
118
|
+
sendSignal({
|
|
119
|
+
code: "ready",
|
|
120
|
+
});
|
|
121
|
+
envFile = Path.resolve(opts.baseDirectory, "./.env");
|
|
122
|
+
endpoint = process.env.DEBUG_GRAPHQL_URL;
|
|
123
|
+
schemaFile = Path.resolve(opts.baseDirectory, "schema.json") //relative(process.cwd(), Path.join(opts.baseDirectory, "schema.json"))
|
|
124
|
+
;
|
|
125
|
+
schema = null;
|
|
126
|
+
rawSchema = null;
|
|
127
|
+
lastSchemaHash = "";
|
|
128
|
+
regenerating = false;
|
|
129
|
+
needsSchemaFetch = true;
|
|
130
|
+
loadSchemaFromWordPress = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
131
|
+
var hash;
|
|
132
|
+
return __generator(this, function (_a) {
|
|
133
|
+
switch (_a.label) {
|
|
134
|
+
case 0: return [4 /*yield*/, (0, load_1.loadSchema)(endpoint, {
|
|
135
|
+
loaders: [new url_loader_1.UrlLoader()],
|
|
136
|
+
})];
|
|
137
|
+
case 1:
|
|
138
|
+
rawSchema = _a.sent();
|
|
139
|
+
schema = (0, graphql_1.introspectionFromSchema)(rawSchema, {
|
|
140
|
+
descriptions: true,
|
|
141
|
+
schemaDescription: false,
|
|
142
|
+
specifiedByUrl: true,
|
|
143
|
+
});
|
|
144
|
+
hash = JSON.stringify(schema);
|
|
145
|
+
if (hash !== lastSchemaHash) {
|
|
146
|
+
lastSchemaHash = hash;
|
|
147
|
+
return [2 /*return*/, true];
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
return [2 /*return*/, false];
|
|
151
|
+
}
|
|
152
|
+
return [2 /*return*/];
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}); };
|
|
156
|
+
regenerate = debounce(100, function () { return __awaiter(_this, void 0, void 0, function () {
|
|
157
|
+
var startTime, hasChanged, err_1, documentSets, parseErrors, _loop_1, _a, _b, _i, key, generates, errors, _c, _d, _e, file, base, config, output, err_2;
|
|
158
|
+
var _this = this;
|
|
159
|
+
return __generator(this, function (_f) {
|
|
160
|
+
switch (_f.label) {
|
|
161
|
+
case 0:
|
|
162
|
+
regenerating = true;
|
|
163
|
+
startTime = Date.now();
|
|
164
|
+
if (!needsSchemaFetch) return [3 /*break*/, 5];
|
|
165
|
+
sendSignal({
|
|
166
|
+
code: "fetching",
|
|
167
|
+
});
|
|
168
|
+
// Show an error if no endpoint was found
|
|
169
|
+
if (!endpoint) {
|
|
170
|
+
sendSignal({
|
|
171
|
+
code: "error",
|
|
172
|
+
errors: ["Could not find DEBUG_GRAPHQL_URL value in .env"],
|
|
173
|
+
});
|
|
174
|
+
regenerating = false;
|
|
175
|
+
return [2 /*return*/];
|
|
176
|
+
}
|
|
177
|
+
_f.label = 1;
|
|
178
|
+
case 1:
|
|
179
|
+
_f.trys.push([1, 3, , 4]);
|
|
180
|
+
return [4 /*yield*/, loadSchemaFromWordPress()];
|
|
181
|
+
case 2:
|
|
182
|
+
hasChanged = _f.sent();
|
|
183
|
+
return [3 /*break*/, 4];
|
|
184
|
+
case 3:
|
|
185
|
+
err_1 = _f.sent();
|
|
186
|
+
// Error loading schema
|
|
187
|
+
sendSignal({
|
|
188
|
+
code: "error",
|
|
189
|
+
errors: ["Could not load GraphQL schema from server:\n" + String(err_1)],
|
|
190
|
+
});
|
|
191
|
+
regenerating = false;
|
|
192
|
+
return [2 /*return*/];
|
|
193
|
+
case 4:
|
|
194
|
+
// Store the schema file
|
|
195
|
+
(0, fs_1.writeFileSync)(schemaFile, JSON.stringify(schema), {
|
|
196
|
+
encoding: "utf-8",
|
|
197
|
+
});
|
|
198
|
+
// No need to refetch
|
|
199
|
+
needsSchemaFetch = false;
|
|
200
|
+
_f.label = 5;
|
|
201
|
+
case 5:
|
|
202
|
+
documentSets = {};
|
|
203
|
+
parseErrors = [];
|
|
204
|
+
_loop_1 = function (key) {
|
|
205
|
+
var pattern, files;
|
|
206
|
+
return __generator(this, function (_g) {
|
|
207
|
+
switch (_g.label) {
|
|
208
|
+
case 0:
|
|
209
|
+
pattern = graphqlPatterns[key];
|
|
210
|
+
// Find all the documents by globbing
|
|
211
|
+
documentSets[key] = [];
|
|
212
|
+
return [4 /*yield*/, (0, glob_promise_1.default)(Path.resolve(opts.baseDirectory, pattern))];
|
|
213
|
+
case 1:
|
|
214
|
+
files = _g.sent();
|
|
215
|
+
return [4 /*yield*/, Promise.all(files.map(function (file) { return __awaiter(_this, void 0, void 0, function () {
|
|
216
|
+
var contents, document_1, err_3;
|
|
217
|
+
return __generator(this, function (_a) {
|
|
218
|
+
switch (_a.label) {
|
|
219
|
+
case 0:
|
|
220
|
+
_a.trys.push([0, 2, , 3]);
|
|
221
|
+
return [4 /*yield*/, (0, promises_1.readFile)(file)];
|
|
222
|
+
case 1:
|
|
223
|
+
contents = (_a.sent()).toString();
|
|
224
|
+
document_1 = (0, graphql_1.parse)(contents);
|
|
225
|
+
documentSets[key].push({
|
|
226
|
+
document: document_1,
|
|
227
|
+
rawSDL: contents,
|
|
228
|
+
location: file,
|
|
229
|
+
});
|
|
230
|
+
return [3 /*break*/, 3];
|
|
231
|
+
case 2:
|
|
232
|
+
err_3 = _a.sent();
|
|
233
|
+
parseErrors.push("Error parsing \"".concat(file.replace(opts.baseDirectory, ""), ":\n").concat(err_3));
|
|
234
|
+
return [3 /*break*/, 3];
|
|
235
|
+
case 3: return [2 /*return*/];
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
}); }))];
|
|
239
|
+
case 2:
|
|
240
|
+
_g.sent();
|
|
241
|
+
return [2 /*return*/];
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
};
|
|
245
|
+
_a = [];
|
|
246
|
+
for (_b in graphqlPatterns)
|
|
247
|
+
_a.push(_b);
|
|
248
|
+
_i = 0;
|
|
249
|
+
_f.label = 6;
|
|
250
|
+
case 6:
|
|
251
|
+
if (!(_i < _a.length)) return [3 /*break*/, 9];
|
|
252
|
+
key = _a[_i];
|
|
253
|
+
return [5 /*yield**/, _loop_1(key)];
|
|
254
|
+
case 7:
|
|
255
|
+
_f.sent();
|
|
256
|
+
_f.label = 8;
|
|
257
|
+
case 8:
|
|
258
|
+
_i++;
|
|
259
|
+
return [3 /*break*/, 6];
|
|
260
|
+
case 9:
|
|
261
|
+
if (parseErrors.length > 0) {
|
|
262
|
+
sendSignal({
|
|
263
|
+
code: "error",
|
|
264
|
+
errors: parseErrors,
|
|
265
|
+
});
|
|
266
|
+
regenerating = false;
|
|
267
|
+
return [2 /*return*/];
|
|
268
|
+
}
|
|
269
|
+
generates = {
|
|
270
|
+
"types.graphql.ts": {
|
|
271
|
+
documents: __spreadArray(__spreadArray(__spreadArray([], documentSets.queries, true), documentSets.views, true), documentSets.blocks, true),
|
|
272
|
+
plugins: [
|
|
273
|
+
{
|
|
274
|
+
typescript: {},
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
typescriptOperations: {},
|
|
278
|
+
},
|
|
279
|
+
],
|
|
280
|
+
pluginMap: {
|
|
281
|
+
typescript: typescriptPlugin,
|
|
282
|
+
typescriptOperations: typescriptOperationsPlugin,
|
|
283
|
+
noDuplicates: CodegenNoDuplicates,
|
|
284
|
+
},
|
|
285
|
+
config: {
|
|
286
|
+
// maybeValue: "T",
|
|
287
|
+
avoidOptionals: true,
|
|
288
|
+
// exportFragmentSpreadSubTypes: true,
|
|
289
|
+
inlineFragmentTypes: "combine",
|
|
290
|
+
onlyOperationTypes: true,
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
"types.views.ts": {
|
|
294
|
+
documents: __spreadArray([], documentSets.views, true),
|
|
295
|
+
plugins: [
|
|
296
|
+
{
|
|
297
|
+
files: {},
|
|
298
|
+
},
|
|
299
|
+
],
|
|
300
|
+
pluginMap: {
|
|
301
|
+
files: CodegenFiles,
|
|
302
|
+
},
|
|
303
|
+
config: {
|
|
304
|
+
rootDir: opts.baseDirectory,
|
|
305
|
+
folderName: "views",
|
|
306
|
+
globalName: "ViewProps",
|
|
307
|
+
additionalTypes: {
|
|
308
|
+
_html: "{ \"template\": string, \"htmlContent\": string }",
|
|
309
|
+
_app: "{ children: any }",
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
},
|
|
313
|
+
"types.blocks.ts": {
|
|
314
|
+
documents: __spreadArray([], documentSets.blocks, true),
|
|
315
|
+
plugins: [
|
|
316
|
+
{
|
|
317
|
+
files: {},
|
|
318
|
+
},
|
|
319
|
+
],
|
|
320
|
+
pluginMap: {
|
|
321
|
+
files: CodegenFiles,
|
|
322
|
+
},
|
|
323
|
+
config: {
|
|
324
|
+
rootDir: opts.baseDirectory,
|
|
325
|
+
globalName: "BlockProps",
|
|
326
|
+
folderName: "blocks",
|
|
327
|
+
getType: function (importedName, def) {
|
|
328
|
+
var _a, _b, _c;
|
|
329
|
+
var queryKeyVals = [];
|
|
330
|
+
var blockSelection = "";
|
|
331
|
+
for (var _i = 0, _d = def.selectionSet.selections; _i < _d.length; _i++) {
|
|
332
|
+
var item = _d[_i];
|
|
333
|
+
if (item.name.value === "block") {
|
|
334
|
+
var blockField = (_c = (_b = (_a = item === null || item === void 0 ? void 0 : item.selectionSet) === null || _a === void 0 ? void 0 : _a.selections[0]) === null || _b === void 0 ? void 0 : _b.name) === null || _c === void 0 ? void 0 : _c.value;
|
|
335
|
+
blockSelection = "Exclude<".concat(importedName, "[\"block\"][").concat(JSON.stringify(blockField), "], null>");
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
queryKeyVals.push([JSON.stringify(item.name.value), "".concat(importedName, "[").concat(JSON.stringify(item.name.value), "]")].join(": "));
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
var type = [];
|
|
342
|
+
if (queryKeyVals.length)
|
|
343
|
+
type.push("{".concat(queryKeyVals.join(",\n"), "}"));
|
|
344
|
+
if (blockSelection)
|
|
345
|
+
type.push(blockSelection);
|
|
346
|
+
if (type.length === 0)
|
|
347
|
+
return {};
|
|
348
|
+
return type.join(" & ");
|
|
349
|
+
},
|
|
350
|
+
},
|
|
351
|
+
},
|
|
352
|
+
"hooks/queries.ts": {
|
|
353
|
+
documents: __spreadArray([], documentSets.queries, true),
|
|
354
|
+
plugins: [
|
|
355
|
+
{
|
|
356
|
+
queries: {},
|
|
357
|
+
},
|
|
358
|
+
],
|
|
359
|
+
pluginMap: {
|
|
360
|
+
queries: CodegenQueries,
|
|
361
|
+
},
|
|
362
|
+
config: {
|
|
363
|
+
rootDir: opts.baseDirectory,
|
|
364
|
+
},
|
|
365
|
+
},
|
|
366
|
+
};
|
|
367
|
+
// Notify of generation start
|
|
368
|
+
sendSignal({
|
|
369
|
+
code: "generating",
|
|
370
|
+
});
|
|
371
|
+
errors = [];
|
|
372
|
+
_c = 0, _d = Object.entries(generates);
|
|
373
|
+
_f.label = 10;
|
|
374
|
+
case 10:
|
|
375
|
+
if (!(_c < _d.length)) return [3 /*break*/, 15];
|
|
376
|
+
_e = _d[_c], file = _e[0], base = _e[1];
|
|
377
|
+
_f.label = 11;
|
|
378
|
+
case 11:
|
|
379
|
+
_f.trys.push([11, 13, , 14]);
|
|
380
|
+
config = __assign(__assign({}, base), { documents: base.documents.sort(function (a, b) { return a.location.localeCompare(b.location); }), filename: Path.join(opts.baseDirectory, file), schema: rawSchema });
|
|
381
|
+
return [4 /*yield*/, (0, core_1.codegen)(config)
|
|
382
|
+
// Write the file
|
|
383
|
+
];
|
|
384
|
+
case 12:
|
|
385
|
+
output = _f.sent();
|
|
386
|
+
// Write the file
|
|
387
|
+
writeFileIfUnchanged(file, output);
|
|
388
|
+
return [3 /*break*/, 14];
|
|
389
|
+
case 13:
|
|
390
|
+
err_2 = _f.sent();
|
|
391
|
+
errors.push(String(err_2));
|
|
392
|
+
return [3 /*break*/, 14];
|
|
393
|
+
case 14:
|
|
394
|
+
_c++;
|
|
395
|
+
return [3 /*break*/, 10];
|
|
396
|
+
case 15:
|
|
397
|
+
// Success/fail
|
|
398
|
+
if (errors.length) {
|
|
399
|
+
sendSignal({
|
|
400
|
+
code: "error",
|
|
401
|
+
errors: errors,
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
else {
|
|
405
|
+
sendSignal({
|
|
406
|
+
code: "success",
|
|
407
|
+
duration: Date.now() - startTime,
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
regenerating = false;
|
|
411
|
+
return [2 /*return*/];
|
|
412
|
+
}
|
|
413
|
+
});
|
|
414
|
+
}); });
|
|
415
|
+
regenerateBecauseChanges = function (reason) {
|
|
416
|
+
sendSignal({
|
|
417
|
+
code: "invalidated",
|
|
418
|
+
reason: reason.replace(opts.baseDirectory, ""),
|
|
419
|
+
});
|
|
420
|
+
regenerate();
|
|
421
|
+
};
|
|
422
|
+
if (opts.watch) {
|
|
423
|
+
for (key in graphqlPatterns) {
|
|
424
|
+
watchGlob(Path.resolve(opts.baseDirectory, graphqlPatterns[key]), function (path) {
|
|
425
|
+
regenerateBecauseChanges(path);
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
for (key in tsxPatterns) {
|
|
429
|
+
watchFilenames(Path.resolve(opts.baseDirectory, tsxPatterns[key]), function (path) {
|
|
430
|
+
regenerateBecauseChanges(path);
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
maybeRegenerate_1 = function (path) { return __awaiter(_this, void 0, void 0, function () {
|
|
434
|
+
var hasChanged;
|
|
435
|
+
return __generator(this, function (_a) {
|
|
436
|
+
switch (_a.label) {
|
|
437
|
+
case 0:
|
|
438
|
+
sendSignal({
|
|
439
|
+
code: "invalidated",
|
|
440
|
+
reason: path.replace(opts.baseDirectory, ""),
|
|
441
|
+
});
|
|
442
|
+
if (!!regenerating) return [3 /*break*/, 2];
|
|
443
|
+
return [4 /*yield*/, loadSchemaFromWordPress()];
|
|
444
|
+
case 1:
|
|
445
|
+
hasChanged = _a.sent();
|
|
446
|
+
if (hasChanged) {
|
|
447
|
+
regenerateBecauseChanges(path);
|
|
448
|
+
return [2 /*return*/];
|
|
449
|
+
}
|
|
450
|
+
_a.label = 2;
|
|
451
|
+
case 2:
|
|
452
|
+
sendSignal({
|
|
453
|
+
code: "success",
|
|
454
|
+
reason: "No changes to schema",
|
|
455
|
+
duration: 0,
|
|
456
|
+
});
|
|
457
|
+
return [2 /*return*/];
|
|
458
|
+
}
|
|
459
|
+
});
|
|
460
|
+
}); };
|
|
461
|
+
watchGlob(Path.resolve(opts.baseDirectory, "./acf-json/*.json"), function (path) {
|
|
462
|
+
maybeRegenerate_1(path);
|
|
463
|
+
});
|
|
464
|
+
watchGlob(Path.resolve(opts.baseDirectory, "./backend/**/*.php"), function (path) {
|
|
465
|
+
maybeRegenerate_1(path);
|
|
466
|
+
});
|
|
467
|
+
watchGlob(envFile, function () {
|
|
468
|
+
var _a;
|
|
469
|
+
// Parse the env file and extract the endpoint
|
|
470
|
+
var nextEndpoint = "";
|
|
471
|
+
try {
|
|
472
|
+
var contents = (0, fs_1.readFileSync)(envFile, "utf8");
|
|
473
|
+
nextEndpoint = (_a = contents.match(/DEBUG_GRAPHQL_URL=(.*)/)) === null || _a === void 0 ? void 0 : _a[1];
|
|
474
|
+
}
|
|
475
|
+
catch (err) {
|
|
476
|
+
sendSignal({
|
|
477
|
+
code: "error",
|
|
478
|
+
errors: ["Unable to read .env file"],
|
|
479
|
+
});
|
|
480
|
+
return;
|
|
481
|
+
}
|
|
482
|
+
if (endpoint !== nextEndpoint && nextEndpoint) {
|
|
483
|
+
needsSchemaFetch = true;
|
|
484
|
+
regenerate();
|
|
485
|
+
}
|
|
486
|
+
});
|
|
487
|
+
}
|
|
488
|
+
regenerate();
|
|
489
|
+
return [2 /*return*/];
|
|
490
|
+
});
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
exports.beginWork = beginWork;
|
|
494
|
+
function watchGlob(glob, callback) {
|
|
495
|
+
var watcher = (0, chokidar_1.watch)(glob, {
|
|
496
|
+
ignoreInitial: true,
|
|
497
|
+
persistent: true,
|
|
498
|
+
});
|
|
499
|
+
watcher.on("ready", function () {
|
|
500
|
+
watcher.on("all", function (event, path) {
|
|
501
|
+
callback(path);
|
|
502
|
+
});
|
|
503
|
+
});
|
|
504
|
+
return watcher;
|
|
505
|
+
}
|
|
506
|
+
function watchFilenames(glob, callback) {
|
|
507
|
+
var watcher = (0, chokidar_1.watch)(glob, {
|
|
508
|
+
ignoreInitial: true,
|
|
509
|
+
persistent: true,
|
|
510
|
+
});
|
|
511
|
+
watcher.on("ready", function () {
|
|
512
|
+
watcher.on("add", function (path) {
|
|
513
|
+
callback(path);
|
|
514
|
+
});
|
|
515
|
+
watcher.on("unlink", function (path) {
|
|
516
|
+
callback(path);
|
|
517
|
+
});
|
|
518
|
+
});
|
|
519
|
+
return watcher;
|
|
520
|
+
}
|
|
521
|
+
function writeFileIfUnchanged(file, contents) {
|
|
522
|
+
if ((0, fs_1.existsSync)(file)) {
|
|
523
|
+
var existing = (0, fs_1.readFileSync)(file).toString();
|
|
524
|
+
if (existing === contents)
|
|
525
|
+
return;
|
|
526
|
+
}
|
|
527
|
+
(0, fs_1.writeFileSync)(file, contents);
|
|
528
|
+
}
|
|
529
|
+
function debounce(wait, fn) {
|
|
530
|
+
var timeout;
|
|
531
|
+
var debounced = function () {
|
|
532
|
+
var args = [];
|
|
533
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
534
|
+
args[_i] = arguments[_i];
|
|
535
|
+
}
|
|
536
|
+
clearTimeout(timeout);
|
|
537
|
+
timeout = setTimeout(function () {
|
|
538
|
+
fn.apply(void 0, args);
|
|
539
|
+
}, wait);
|
|
540
|
+
};
|
|
541
|
+
return debounced;
|
|
542
|
+
}
|
|
543
|
+
beginWork(worker_threads_1.workerData);
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
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;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
39
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
40
|
+
if (ar || !(i in from)) {
|
|
41
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
42
|
+
ar[i] = from[i];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
46
|
+
};
|
|
47
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
48
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
49
|
+
};
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
exports.beginWork = void 0;
|
|
52
|
+
var webpack_1 = __importDefault(require("webpack"));
|
|
53
|
+
var webpack_dev_server_1 = __importDefault(require("webpack-dev-server"));
|
|
54
|
+
var worker_threads_1 = require("worker_threads");
|
|
55
|
+
var get_webpack_config_1 = __importDefault(require("./get-webpack-config"));
|
|
56
|
+
var sendSignal = function (sig) {
|
|
57
|
+
if (worker_threads_1.parentPort) {
|
|
58
|
+
worker_threads_1.parentPort.postMessage(sig);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
function beginWork(opts) {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
63
|
+
function extractErrorMessage(str) {
|
|
64
|
+
return str
|
|
65
|
+
.replace(/Module build failed[^\n]+\n/, "")
|
|
66
|
+
.replaceAll(opts.baseDirectory, "./")
|
|
67
|
+
.replace(/\s+at\s[\s\S]+/, "");
|
|
68
|
+
}
|
|
69
|
+
function webpackToCompilerError(err, type) {
|
|
70
|
+
return {
|
|
71
|
+
type: type,
|
|
72
|
+
details: err.details,
|
|
73
|
+
message: extractErrorMessage(err.message),
|
|
74
|
+
file: err.moduleName || "",
|
|
75
|
+
loc: err.loc,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
var compiler, _a, server;
|
|
79
|
+
return __generator(this, function (_b) {
|
|
80
|
+
switch (_b.label) {
|
|
81
|
+
case 0:
|
|
82
|
+
sendSignal({
|
|
83
|
+
code: "compiling",
|
|
84
|
+
});
|
|
85
|
+
_a = webpack_1.default;
|
|
86
|
+
return [4 /*yield*/, (0, get_webpack_config_1.default)(opts)];
|
|
87
|
+
case 1:
|
|
88
|
+
compiler = _a.apply(void 0, [_b.sent()]);
|
|
89
|
+
if (opts.hotPort) {
|
|
90
|
+
server = new webpack_dev_server_1.default(compiler, {
|
|
91
|
+
liveReload: false,
|
|
92
|
+
compress: true,
|
|
93
|
+
hotOnly: true,
|
|
94
|
+
disableHostCheck: true,
|
|
95
|
+
host: "127.0.0.1",
|
|
96
|
+
port: opts.hotPort,
|
|
97
|
+
writeToDisk: true,
|
|
98
|
+
transportMode: "ws",
|
|
99
|
+
publicPath: "/",
|
|
100
|
+
public: "http://127.0.0.1:" + opts.hotPort,
|
|
101
|
+
overlay: true,
|
|
102
|
+
sockPort: opts.hotPort,
|
|
103
|
+
contentBase: false,
|
|
104
|
+
noInfo: true,
|
|
105
|
+
// quiet: true,
|
|
106
|
+
// clientLogLevel: "silent",
|
|
107
|
+
headers: {
|
|
108
|
+
"Access-Control-Allow-Origin": "*",
|
|
109
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
|
|
110
|
+
"Access-Control-Allow-Headers": "X-Requested-With, content-type, Authorization",
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
server.listen(opts.hotPort);
|
|
114
|
+
}
|
|
115
|
+
compiler.hooks.beforeCompile.tap("eddev", function () {
|
|
116
|
+
sendSignal({
|
|
117
|
+
code: "compiling",
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
compiler.hooks.invalid.tap("eddev", function (filename) {
|
|
121
|
+
sendSignal({
|
|
122
|
+
code: "invalidated",
|
|
123
|
+
changedFile: filename,
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
compiler.hooks.done.tap("eddev", function (_a) {
|
|
127
|
+
var _b, _c;
|
|
128
|
+
var compilation = _a.compilation;
|
|
129
|
+
var stats = compilation.getStats().toJson({
|
|
130
|
+
all: true,
|
|
131
|
+
errorDetails: true,
|
|
132
|
+
errors: true,
|
|
133
|
+
errorStack: true,
|
|
134
|
+
errorsCount: true,
|
|
135
|
+
colors: true,
|
|
136
|
+
timings: true,
|
|
137
|
+
});
|
|
138
|
+
var errors = ((_b = stats.errors) === null || _b === void 0 ? void 0 : _b.map(function (err) { return webpackToCompilerError(err, "error"); })) || [];
|
|
139
|
+
var warnings = ((_c = stats.warnings) === null || _c === void 0 ? void 0 : _c.map(function (err) { return webpackToCompilerError(err, "warning"); })) || [];
|
|
140
|
+
if (errors.length) {
|
|
141
|
+
sendSignal({
|
|
142
|
+
code: "error",
|
|
143
|
+
errors: __spreadArray(__spreadArray([], warnings, true), errors, true),
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
sendSignal({
|
|
148
|
+
code: "finished",
|
|
149
|
+
duration: stats.time,
|
|
150
|
+
errors: __spreadArray(__spreadArray([], warnings, true), errors, true),
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
return [2 /*return*/];
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
exports.beginWork = beginWork;
|
|
160
|
+
beginWork(worker_threads_1.workerData);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function generate(): Promise<void>;
|
package/cli/generate.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
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;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
function generate() {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
41
|
+
return __generator(this, function (_a) {
|
|
42
|
+
throw new Error("This command has been deprecated! Please use `yarn dev` instead.");
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
exports.default = generate;
|
|
@@ -18,7 +18,7 @@ exports.BrowserRouter = void 0;
|
|
|
18
18
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
19
|
var react_1 = require("react");
|
|
20
20
|
var remoteProps_1 = require("../utils/remoteProps");
|
|
21
|
-
var routing_1 = require("
|
|
21
|
+
var routing_1 = require("../routing");
|
|
22
22
|
// @ts-ignore
|
|
23
23
|
var views_1 = __importDefault(require("@manifest/views"));
|
|
24
24
|
var usePageLoad_1 = require("../hooks/usePageLoad");
|
package/components/InlinePage.js
CHANGED
|
@@ -18,7 +18,7 @@ exports.InlinePage = void 0;
|
|
|
18
18
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
19
|
var react_1 = require("react");
|
|
20
20
|
var remoteProps_1 = require("../utils/remoteProps");
|
|
21
|
-
var routing_1 = require("
|
|
21
|
+
var routing_1 = require("../routing");
|
|
22
22
|
// @ts-ignore
|
|
23
23
|
var views_1 = __importDefault(require("@manifest/views"));
|
|
24
24
|
/**
|
package/components/index.d.ts
CHANGED
package/components/index.js
CHANGED
|
@@ -10,7 +10,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
10
10
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
__exportStar(require("./routing"), exports);
|
|
14
13
|
__exportStar(require("./ContentBlocks"), exports);
|
|
15
14
|
__exportStar(require("./AdminBar"), exports);
|
|
16
15
|
__exportStar(require("./InlinePage"), exports);
|
package/entry/Root.js
CHANGED
|
@@ -34,13 +34,13 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
34
34
|
// @ts-ignore
|
|
35
35
|
var views_1 = __importStar(require("@manifest/views"));
|
|
36
36
|
var react_1 = require("react");
|
|
37
|
-
var
|
|
37
|
+
var routing_1 = require("../routing");
|
|
38
38
|
function Root() {
|
|
39
|
-
var route = (0,
|
|
40
|
-
return ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: (0, jsx_runtime_1.jsx)(views_1.App, { children: (0, jsx_runtime_1.jsx)(
|
|
39
|
+
var route = (0, routing_1.useRoute)();
|
|
40
|
+
return ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: (0, jsx_runtime_1.jsx)(views_1.App, { children: (0, jsx_runtime_1.jsx)(routing_1.Switch, { children: Object.entries(views_1.default).map(function (_a) {
|
|
41
41
|
var _b, _c;
|
|
42
42
|
var name = _a[0], Component = _a[1];
|
|
43
|
-
return ((0, jsx_runtime_1.jsx)(
|
|
43
|
+
return ((0, jsx_runtime_1.jsx)(routing_1.Route, __assign({ match: function (route) { var _a; return ((_a = route.data) === null || _a === void 0 ? void 0 : _a.view) === name; } }, { children: (0, jsx_runtime_1.jsx)(Component, __assign({}, (_c = (_b = route.data) === null || _b === void 0 ? void 0 : _b.viewData) === null || _c === void 0 ? void 0 : _c.data), void 0) }), name));
|
|
44
44
|
}) }, void 0) }, void 0) }, void 0));
|
|
45
45
|
}
|
|
46
46
|
exports.default = Root;
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -12,3 +12,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./components"), exports);
|
|
14
14
|
__exportStar(require("./hooks"), exports);
|
|
15
|
+
__exportStar(require("./routing"), exports);
|
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./routing";
|
package/routing/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./routing"), exports);
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ReactNode, PropsWithChildren } from "react";
|
|
2
|
+
import { APropsWithoutRef } from "react-html-props";
|
|
3
|
+
import URLParse from "url-parse";
|
|
4
|
+
import { RouteData } from "../utils/remoteProps";
|
|
5
|
+
declare type RouteItem = URLParse<any> & {
|
|
6
|
+
data?: RouteData;
|
|
7
|
+
};
|
|
8
|
+
declare type AnyPromise = Promise<any>;
|
|
9
|
+
declare type MatchResult = boolean | string;
|
|
10
|
+
declare type RouteStatus = "leaving" | "parent-leaving" | "active" | "inactive";
|
|
11
|
+
declare type RouteContextConfig = {
|
|
12
|
+
debugName?: string;
|
|
13
|
+
match?(next: RouteItem): MatchResult;
|
|
14
|
+
beforeLeave?(current: RouteItem, next: RouteItem, parentIsLeaving: boolean): AnyPromise | undefined;
|
|
15
|
+
onChange?(route: RouteItem, status: RouteStatus): void;
|
|
16
|
+
};
|
|
17
|
+
export declare function useRoute(): RouteItem;
|
|
18
|
+
export declare type RouteProps = RouteContextConfig & {
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
};
|
|
21
|
+
export declare function Route(props: RouteProps): JSX.Element | null;
|
|
22
|
+
export declare function createRouteItem(url: string, data: RouteData): RouteItem;
|
|
23
|
+
declare type RouterRootProps = {
|
|
24
|
+
url: string;
|
|
25
|
+
data: RouteData;
|
|
26
|
+
children: ReactNode;
|
|
27
|
+
onNavigateRequest?: (url: string) => void;
|
|
28
|
+
onPreload?: (url: string) => void;
|
|
29
|
+
onNavigated?: (url: string) => void;
|
|
30
|
+
};
|
|
31
|
+
export declare function RouterRoot(props: RouterRootProps): JSX.Element;
|
|
32
|
+
declare type SwitchProps = {
|
|
33
|
+
children: ReactNode | ReactNode[];
|
|
34
|
+
};
|
|
35
|
+
export declare const isInternalPageLink: (href: string) => boolean;
|
|
36
|
+
export declare const Link: import("react").ForwardRefExoticComponent<APropsWithoutRef & {
|
|
37
|
+
preload?: boolean | undefined;
|
|
38
|
+
} & {
|
|
39
|
+
className?: string | undefined;
|
|
40
|
+
} & import("react").RefAttributes<HTMLAnchorElement>>;
|
|
41
|
+
export declare function Switch({ children }: SwitchProps): JSX.Element;
|
|
42
|
+
export declare function RouteItemContext(props: PropsWithChildren<{
|
|
43
|
+
route: RouteItem;
|
|
44
|
+
}>): JSX.Element;
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (_) try {
|
|
29
|
+
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;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
exports.RouteItemContext = exports.Switch = exports.Link = exports.isInternalPageLink = exports.RouterRoot = exports.createRouteItem = exports.Route = exports.useRoute = void 0;
|
|
54
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
55
|
+
var react_1 = require("react");
|
|
56
|
+
var react_merge_refs_1 = __importDefault(require("react-merge-refs"));
|
|
57
|
+
var url_parse_1 = __importDefault(require("url-parse"));
|
|
58
|
+
// const logger = (...args: any[]) => console.log(...args)
|
|
59
|
+
var logger = function () {
|
|
60
|
+
var args = [];
|
|
61
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
62
|
+
args[_i] = arguments[_i];
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
function createRouteContext(opts) {
|
|
66
|
+
var _a, _b;
|
|
67
|
+
var subscribers = [];
|
|
68
|
+
var notify = function (item, status) {
|
|
69
|
+
subscribers.forEach(function (handler) { return handler(item, status); });
|
|
70
|
+
};
|
|
71
|
+
var parentIsSwitch = opts.parent && opts.parent.isSwitch;
|
|
72
|
+
var ctx = {
|
|
73
|
+
item: opts.initial,
|
|
74
|
+
config: opts.config || {},
|
|
75
|
+
parent: opts.parent,
|
|
76
|
+
children: [],
|
|
77
|
+
status: "inactive",
|
|
78
|
+
currentMatch: false,
|
|
79
|
+
isSwitch: !!opts.isSwitch,
|
|
80
|
+
onNavigate: opts.onNavigate,
|
|
81
|
+
onPreload: opts.onPreload,
|
|
82
|
+
propagateChange: function (item, matches) {
|
|
83
|
+
ctx.item = item;
|
|
84
|
+
ctx.currentMatch = matches;
|
|
85
|
+
ctx.status = matches ? "active" : "inactive";
|
|
86
|
+
ctx.children.forEach(function (child) {
|
|
87
|
+
child.propagateChange(item, child.match(item));
|
|
88
|
+
});
|
|
89
|
+
notify(item, ctx.status);
|
|
90
|
+
},
|
|
91
|
+
propagateCandidate: function (next, prev) {
|
|
92
|
+
// if (ctx.status === "leaving") return Promise.resolve();
|
|
93
|
+
var promises = [Promise.resolve()];
|
|
94
|
+
var matches = ctx.match(next);
|
|
95
|
+
logger(ctx.config.debugName, "was", ctx.status, matches);
|
|
96
|
+
if (ctx.status === "active" && (!matches || matches !== ctx.currentMatch)) {
|
|
97
|
+
logger(ctx.config.debugName, "is leaving because ", matches, "!=", ctx.currentMatch);
|
|
98
|
+
ctx.status = "leaving";
|
|
99
|
+
}
|
|
100
|
+
logger(ctx.config.debugName, "is now", ctx.status);
|
|
101
|
+
if (ctx.status === "leaving") {
|
|
102
|
+
promises.push(this.propagateLeaving(prev, next, false));
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
ctx.children.forEach(function (child) {
|
|
106
|
+
promises.push(child.propagateCandidate(next, prev));
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
notify(prev, ctx.status);
|
|
110
|
+
return Promise.all(promises);
|
|
111
|
+
},
|
|
112
|
+
propagateLeaving: function (current, next, parentIsLeaving) {
|
|
113
|
+
ctx.status = parentIsLeaving ? "parent-leaving" : "leaving";
|
|
114
|
+
logger(ctx.status);
|
|
115
|
+
var promises = [Promise.resolve()];
|
|
116
|
+
if (ctx.config.beforeLeave) {
|
|
117
|
+
var result = ctx.config.beforeLeave(current, next, parentIsLeaving);
|
|
118
|
+
if (result)
|
|
119
|
+
promises.push(result);
|
|
120
|
+
}
|
|
121
|
+
ctx.children.forEach(function (child) {
|
|
122
|
+
var result = child.propagateLeaving(current, next, true);
|
|
123
|
+
if (result) {
|
|
124
|
+
promises.push(result);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
notify(current, ctx.status);
|
|
128
|
+
return Promise.all(promises);
|
|
129
|
+
},
|
|
130
|
+
subscribe: function (handler) {
|
|
131
|
+
subscribers.push(handler);
|
|
132
|
+
handler(ctx.item, ctx.status);
|
|
133
|
+
return function () {
|
|
134
|
+
var i = subscribers.indexOf(handler);
|
|
135
|
+
if (i !== -1) {
|
|
136
|
+
subscribers.splice(i, 1);
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
},
|
|
140
|
+
getFirstMatch: function (item) {
|
|
141
|
+
logger("Checking items", this.children, item);
|
|
142
|
+
for (var _i = 0, _a = this.children; _i < _a.length; _i++) {
|
|
143
|
+
var child = _a[_i];
|
|
144
|
+
if (child.matchSelf(item)) {
|
|
145
|
+
logger("Matched", child.config.debugName);
|
|
146
|
+
return child;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
match: function (item) {
|
|
151
|
+
if (parentIsSwitch) {
|
|
152
|
+
var parent_1 = ctx.parent;
|
|
153
|
+
return parent_1.getFirstMatch(item) === ctx && this.matchSelf(item);
|
|
154
|
+
}
|
|
155
|
+
return this.matchSelf(item);
|
|
156
|
+
},
|
|
157
|
+
matchSelf: function (item) {
|
|
158
|
+
var _a, _b;
|
|
159
|
+
if ((_a = ctx === null || ctx === void 0 ? void 0 : ctx.config) === null || _a === void 0 ? void 0 : _a.match) {
|
|
160
|
+
return (_b = ctx === null || ctx === void 0 ? void 0 : ctx.config) === null || _b === void 0 ? void 0 : _b.match(item);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
update: function () { },
|
|
167
|
+
dispose: (_a = opts.dispose) !== null && _a !== void 0 ? _a : (function () { }),
|
|
168
|
+
fork: function (config, opts) {
|
|
169
|
+
if (opts === void 0) { opts = {}; }
|
|
170
|
+
var child = createRouteContext({
|
|
171
|
+
initial: ctx.item,
|
|
172
|
+
config: config,
|
|
173
|
+
parent: ctx,
|
|
174
|
+
isSwitch: opts.isSwitch,
|
|
175
|
+
onNavigate: ctx.onNavigate,
|
|
176
|
+
onPreload: ctx.onPreload,
|
|
177
|
+
dispose: function () {
|
|
178
|
+
var i = ctx.children.indexOf(child);
|
|
179
|
+
if (i !== -1)
|
|
180
|
+
ctx.children.splice(i, 1);
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
ctx.children.push(child);
|
|
184
|
+
if (ctx.isSwitch) {
|
|
185
|
+
}
|
|
186
|
+
return child;
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
logger("Initting", ctx.config.debugName, opts.initial);
|
|
190
|
+
if (parentIsSwitch) {
|
|
191
|
+
logger("Parent is switch");
|
|
192
|
+
if (!((_b = opts.parent) === null || _b === void 0 ? void 0 : _b.getFirstMatch(opts.initial))) {
|
|
193
|
+
logger("FFFF", ctx.config.match, ctx.match(opts.initial));
|
|
194
|
+
ctx.currentMatch = ctx.matchSelf(opts.initial);
|
|
195
|
+
ctx.status = ctx.currentMatch ? "active" : "inactive";
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
ctx.currentMatch = ctx.matchSelf(opts.initial);
|
|
200
|
+
ctx.status = ctx.currentMatch ? "active" : "inactive";
|
|
201
|
+
}
|
|
202
|
+
subscribers.push(function (item, status) {
|
|
203
|
+
if (ctx.config.onChange) {
|
|
204
|
+
ctx.config.onChange(item, status);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
// notify(ctx.item, ctx.status);
|
|
208
|
+
return ctx;
|
|
209
|
+
}
|
|
210
|
+
var RouterContext = (0, react_1.createContext)(undefined);
|
|
211
|
+
function useForkedRouter(conf, opts) {
|
|
212
|
+
var parent = (0, react_1.useContext)(RouterContext);
|
|
213
|
+
var ctx = (0, react_1.useMemo)(function () {
|
|
214
|
+
return parent.fork(conf, opts);
|
|
215
|
+
}, [parent]);
|
|
216
|
+
// useEffect(() => {
|
|
217
|
+
// if (onChange) {
|
|
218
|
+
// return ctx.subscribe(onChange);
|
|
219
|
+
// }
|
|
220
|
+
// }, [ctx, onChange]);
|
|
221
|
+
Object.assign(ctx.config, conf);
|
|
222
|
+
// ctx.config.match = conf.match;
|
|
223
|
+
// ctx.config.beforeLeave = conf.beforeLeave;
|
|
224
|
+
// ctx.config.beforeLeave = conf.beforeLeave;
|
|
225
|
+
(0, react_1.useEffect)(function () {
|
|
226
|
+
return function () { return ctx.dispose(); };
|
|
227
|
+
}, [ctx]);
|
|
228
|
+
return ctx;
|
|
229
|
+
}
|
|
230
|
+
function useRoute() {
|
|
231
|
+
var router = (0, react_1.useContext)(RouterContext);
|
|
232
|
+
var _a = (0, react_1.useState)(router.item), route = _a[0], setRoute = _a[1];
|
|
233
|
+
(0, react_1.useEffect)(function () {
|
|
234
|
+
return router.subscribe(function (item, status) {
|
|
235
|
+
setRoute(item);
|
|
236
|
+
});
|
|
237
|
+
}, [router]);
|
|
238
|
+
return route;
|
|
239
|
+
}
|
|
240
|
+
exports.useRoute = useRoute;
|
|
241
|
+
function Route(props) {
|
|
242
|
+
var ctx = useForkedRouter({
|
|
243
|
+
match: props.match,
|
|
244
|
+
beforeLeave: props.beforeLeave,
|
|
245
|
+
debugName: props.debugName,
|
|
246
|
+
onChange: props.onChange,
|
|
247
|
+
});
|
|
248
|
+
logger("Intial route for", props.debugName, ctx.status, ctx.currentMatch);
|
|
249
|
+
var _a = (0, react_1.useState)(ctx.status), status = _a[0], setStatus = _a[1];
|
|
250
|
+
(0, react_1.useEffect)(function () {
|
|
251
|
+
return ctx.subscribe(function (item, status) {
|
|
252
|
+
setStatus(status);
|
|
253
|
+
});
|
|
254
|
+
}, [ctx]);
|
|
255
|
+
if (status === "inactive")
|
|
256
|
+
return null;
|
|
257
|
+
return (0, jsx_runtime_1.jsx)(RouterContext.Provider, __assign({ value: ctx }, { children: props.children }), void 0);
|
|
258
|
+
}
|
|
259
|
+
exports.Route = Route;
|
|
260
|
+
function createRouteItem(url, data) {
|
|
261
|
+
var parsed = (0, url_parse_1.default)(url, true);
|
|
262
|
+
return __assign(__assign({}, parsed), { data: data });
|
|
263
|
+
}
|
|
264
|
+
exports.createRouteItem = createRouteItem;
|
|
265
|
+
function RouterRoot(props) {
|
|
266
|
+
var _this = this;
|
|
267
|
+
var onNavigateRef = (0, react_1.useRef)(props.onNavigateRequest);
|
|
268
|
+
var onPreNavigateRef = (0, react_1.useRef)(props.onPreload);
|
|
269
|
+
var ctx = (0, react_1.useMemo)(function () {
|
|
270
|
+
return createRouteContext({
|
|
271
|
+
initial: createRouteItem(props.url, props.data),
|
|
272
|
+
config: {
|
|
273
|
+
debugName: "ROOT",
|
|
274
|
+
},
|
|
275
|
+
onNavigate: function (path) { return __awaiter(_this, void 0, void 0, function () {
|
|
276
|
+
return __generator(this, function (_a) {
|
|
277
|
+
// User has clicked a link
|
|
278
|
+
if (onNavigateRef.current) {
|
|
279
|
+
onNavigateRef.current(path);
|
|
280
|
+
}
|
|
281
|
+
return [2 /*return*/];
|
|
282
|
+
});
|
|
283
|
+
}); },
|
|
284
|
+
onPreload: function (path) {
|
|
285
|
+
if (onPreNavigateRef.current) {
|
|
286
|
+
onPreNavigateRef.current(path);
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
});
|
|
290
|
+
}, []);
|
|
291
|
+
onNavigateRef.current = props.onNavigateRequest;
|
|
292
|
+
onPreNavigateRef.current = props.onPreload;
|
|
293
|
+
(0, react_1.useEffect)(function () {
|
|
294
|
+
var cancelled = false;
|
|
295
|
+
var item = createRouteItem(props.url, props.data);
|
|
296
|
+
if (item.href !== ctx.item.href || item.data !== ctx.item.data) {
|
|
297
|
+
ctx.propagateCandidate(item, ctx.item).then(function () {
|
|
298
|
+
if (!cancelled) {
|
|
299
|
+
ctx.propagateChange(item, true);
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
return function () {
|
|
303
|
+
cancelled = true;
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
}, [props.url, props.data]);
|
|
307
|
+
return (0, jsx_runtime_1.jsx)(RouterContext.Provider, __assign({ value: ctx }, { children: props.children }), void 0);
|
|
308
|
+
}
|
|
309
|
+
exports.RouterRoot = RouterRoot;
|
|
310
|
+
var isInternalPageLink = function (href) {
|
|
311
|
+
var url = (0, url_parse_1.default)(href, true);
|
|
312
|
+
if (url && url.origin === document.location.origin && !url.pathname.match(/\./)) {
|
|
313
|
+
return true;
|
|
314
|
+
}
|
|
315
|
+
else {
|
|
316
|
+
return false;
|
|
317
|
+
}
|
|
318
|
+
};
|
|
319
|
+
exports.isInternalPageLink = isInternalPageLink;
|
|
320
|
+
exports.Link = (0, react_1.forwardRef)(function (props, ref) {
|
|
321
|
+
var localRef = (0, react_1.useRef)();
|
|
322
|
+
var router = (0, react_1.useContext)(RouterContext);
|
|
323
|
+
(0, react_1.useEffect)(function () {
|
|
324
|
+
if (props.preload && localRef.current && (0, exports.isInternalPageLink)(localRef.current.href)) {
|
|
325
|
+
router === null || router === void 0 ? void 0 : router.onPreload(localRef.current.href);
|
|
326
|
+
}
|
|
327
|
+
}, [props.preload]);
|
|
328
|
+
return ((0, jsx_runtime_1.jsx)("a", __assign({ ref: (0, react_merge_refs_1.default)([localRef, ref]) }, props, { onMouseEnter: function (e) {
|
|
329
|
+
if (props.onMouseOver) {
|
|
330
|
+
props.onMouseOver(e);
|
|
331
|
+
}
|
|
332
|
+
router === null || router === void 0 ? void 0 : router.onPreload(e.currentTarget.href);
|
|
333
|
+
}, onClick: function (e) {
|
|
334
|
+
if (process.admin) {
|
|
335
|
+
e.preventDefault();
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
if (props.onClick) {
|
|
339
|
+
props.onClick(e);
|
|
340
|
+
}
|
|
341
|
+
if (!e.isDefaultPrevented() && router && !e.ctrlKey && !e.metaKey) {
|
|
342
|
+
var href = e.currentTarget.href;
|
|
343
|
+
if ((0, exports.isInternalPageLink)(href)) {
|
|
344
|
+
router.onNavigate(e.currentTarget.href);
|
|
345
|
+
e.preventDefault();
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
} }), void 0));
|
|
349
|
+
});
|
|
350
|
+
function Switch(_a) {
|
|
351
|
+
var children = _a.children;
|
|
352
|
+
var ctx = useForkedRouter({
|
|
353
|
+
debugName: "SWITCH",
|
|
354
|
+
match: function () {
|
|
355
|
+
return true;
|
|
356
|
+
},
|
|
357
|
+
beforeLeave: function () {
|
|
358
|
+
return undefined;
|
|
359
|
+
},
|
|
360
|
+
}, { isSwitch: true });
|
|
361
|
+
return (0, jsx_runtime_1.jsx)(RouterContext.Provider, __assign({ value: ctx }, { children: children }), void 0);
|
|
362
|
+
}
|
|
363
|
+
exports.Switch = Switch;
|
|
364
|
+
function RouteItemContext(props) {
|
|
365
|
+
var ctx = useForkedRouter({
|
|
366
|
+
match: function () { return true; },
|
|
367
|
+
beforeLeave: undefined,
|
|
368
|
+
debugName: undefined,
|
|
369
|
+
onChange: undefined,
|
|
370
|
+
});
|
|
371
|
+
return (0, jsx_runtime_1.jsx)(RouterContext.Provider, __assign({ value: ctx }, { children: props.children }), void 0);
|
|
372
|
+
}
|
|
373
|
+
exports.RouteItemContext = RouteItemContext;
|