xplorajs 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +104 -0
- package/dist/app/page.js +7 -0
- package/dist/assets/react-refresh.js +338 -0
- package/dist/assets/style.css +230 -0
- package/dist/cli.js +11 -0
- package/dist/commands/build.js +314 -0
- package/dist/commands/dev.js +400 -0
- package/dist/commands/start.js +139 -0
- package/dist/dev.js +21 -0
- package/dist/node_modules/react-refresh/runtime.js +7 -0
- package/dist/pages/index.js +7 -0
- package/dist/server.js +391 -0
- package/package.json +37 -0
|
@@ -0,0 +1,314 @@
|
|
|
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
|
+
}
|
|
14
|
+
}
|
|
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(undefined);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function _ts_generator(thisArg, body) {
|
|
31
|
+
var f, y, t, _ = {
|
|
32
|
+
label: 0,
|
|
33
|
+
sent: function() {
|
|
34
|
+
if (t[0] & 1) throw t[1];
|
|
35
|
+
return t[1];
|
|
36
|
+
},
|
|
37
|
+
trys: [],
|
|
38
|
+
ops: []
|
|
39
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
40
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
41
|
+
return this;
|
|
42
|
+
}), g;
|
|
43
|
+
function verb(n) {
|
|
44
|
+
return function(v) {
|
|
45
|
+
return step([
|
|
46
|
+
n,
|
|
47
|
+
v
|
|
48
|
+
]);
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function step(op) {
|
|
52
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
53
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
54
|
+
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;
|
|
55
|
+
if (y = 0, t) op = [
|
|
56
|
+
op[0] & 2,
|
|
57
|
+
t.value
|
|
58
|
+
];
|
|
59
|
+
switch(op[0]){
|
|
60
|
+
case 0:
|
|
61
|
+
case 1:
|
|
62
|
+
t = op;
|
|
63
|
+
break;
|
|
64
|
+
case 4:
|
|
65
|
+
_.label++;
|
|
66
|
+
return {
|
|
67
|
+
value: op[1],
|
|
68
|
+
done: false
|
|
69
|
+
};
|
|
70
|
+
case 5:
|
|
71
|
+
_.label++;
|
|
72
|
+
y = op[1];
|
|
73
|
+
op = [
|
|
74
|
+
0
|
|
75
|
+
];
|
|
76
|
+
continue;
|
|
77
|
+
case 7:
|
|
78
|
+
op = _.ops.pop();
|
|
79
|
+
_.trys.pop();
|
|
80
|
+
continue;
|
|
81
|
+
default:
|
|
82
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
83
|
+
_ = 0;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
87
|
+
_.label = op[1];
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
91
|
+
_.label = t[1];
|
|
92
|
+
t = op;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
if (t && _.label < t[2]) {
|
|
96
|
+
_.label = t[2];
|
|
97
|
+
_.ops.push(op);
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
if (t[2]) _.ops.pop();
|
|
101
|
+
_.trys.pop();
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
op = body.call(thisArg, _);
|
|
105
|
+
} catch (e) {
|
|
106
|
+
op = [
|
|
107
|
+
6,
|
|
108
|
+
e
|
|
109
|
+
];
|
|
110
|
+
y = 0;
|
|
111
|
+
} finally{
|
|
112
|
+
f = t = 0;
|
|
113
|
+
}
|
|
114
|
+
if (op[0] & 5) throw op[1];
|
|
115
|
+
return {
|
|
116
|
+
value: op[0] ? op[1] : void 0,
|
|
117
|
+
done: true
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
122
|
+
import { join } from "node:path";
|
|
123
|
+
import { glob } from "fast-glob";
|
|
124
|
+
import React from "react";
|
|
125
|
+
import { generateStaticPage } from "xplorajs-react";
|
|
126
|
+
function convertToRoute(filePath) {
|
|
127
|
+
var relativePath = filePath.replace("src/app/", "");
|
|
128
|
+
var path = relativePath.replace(/\.tsx$/, "").replace(/\/page$/, "").replace(/\[([^\]]+)\]/g, ":$1");
|
|
129
|
+
var params = (relativePath.match(/\[([^\]]+)\]/g) || []).map(function(param) {
|
|
130
|
+
return param.slice(1, -1);
|
|
131
|
+
});
|
|
132
|
+
return {
|
|
133
|
+
path: path === "page" ? "/" : "/".concat(path),
|
|
134
|
+
file: filePath,
|
|
135
|
+
isDynamic: params.length > 0,
|
|
136
|
+
params: params
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function processPage(page, route) {
|
|
140
|
+
return _async_to_generator(function() {
|
|
141
|
+
var module, PageComponent, getStaticProps, props, result, outputPath, error;
|
|
142
|
+
return _ts_generator(this, function(_state) {
|
|
143
|
+
switch(_state.label){
|
|
144
|
+
case 0:
|
|
145
|
+
_state.trys.push([
|
|
146
|
+
0,
|
|
147
|
+
5,
|
|
148
|
+
,
|
|
149
|
+
6
|
|
150
|
+
]);
|
|
151
|
+
return [
|
|
152
|
+
4,
|
|
153
|
+
import(join(process.cwd(), page))
|
|
154
|
+
];
|
|
155
|
+
case 1:
|
|
156
|
+
module = _state.sent();
|
|
157
|
+
PageComponent = module.default;
|
|
158
|
+
// Check if page has getStaticProps
|
|
159
|
+
getStaticProps = module.getStaticProps;
|
|
160
|
+
props = {};
|
|
161
|
+
if (!getStaticProps) return [
|
|
162
|
+
3,
|
|
163
|
+
3
|
|
164
|
+
];
|
|
165
|
+
return [
|
|
166
|
+
4,
|
|
167
|
+
getStaticProps()
|
|
168
|
+
];
|
|
169
|
+
case 2:
|
|
170
|
+
result = _state.sent();
|
|
171
|
+
props = result.props;
|
|
172
|
+
_state.label = 3;
|
|
173
|
+
case 3:
|
|
174
|
+
// Generate static HTML
|
|
175
|
+
outputPath = join(process.cwd(), "dist", route.path, "index.html");
|
|
176
|
+
return [
|
|
177
|
+
4,
|
|
178
|
+
generateStaticPage({
|
|
179
|
+
component: React.createElement(PageComponent, props),
|
|
180
|
+
outputPath: outputPath,
|
|
181
|
+
props: props
|
|
182
|
+
})
|
|
183
|
+
];
|
|
184
|
+
case 4:
|
|
185
|
+
_state.sent();
|
|
186
|
+
console.log("Generated ".concat(outputPath));
|
|
187
|
+
return [
|
|
188
|
+
3,
|
|
189
|
+
6
|
|
190
|
+
];
|
|
191
|
+
case 5:
|
|
192
|
+
error = _state.sent();
|
|
193
|
+
console.error("Error processing ".concat(page, ":"), error);
|
|
194
|
+
return [
|
|
195
|
+
3,
|
|
196
|
+
6
|
|
197
|
+
];
|
|
198
|
+
case 6:
|
|
199
|
+
return [
|
|
200
|
+
2
|
|
201
|
+
];
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
})();
|
|
205
|
+
}
|
|
206
|
+
export function build() {
|
|
207
|
+
return _async_to_generator(function() {
|
|
208
|
+
var pages, routes, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, page, route, err, routesConfig;
|
|
209
|
+
return _ts_generator(this, function(_state) {
|
|
210
|
+
switch(_state.label){
|
|
211
|
+
case 0:
|
|
212
|
+
console.log("Building application...");
|
|
213
|
+
// Create dist directory
|
|
214
|
+
return [
|
|
215
|
+
4,
|
|
216
|
+
mkdir(join(process.cwd(), "dist"), {
|
|
217
|
+
recursive: true
|
|
218
|
+
})
|
|
219
|
+
];
|
|
220
|
+
case 1:
|
|
221
|
+
_state.sent();
|
|
222
|
+
return [
|
|
223
|
+
4,
|
|
224
|
+
glob("src/app/**/*.tsx", {
|
|
225
|
+
ignore: [
|
|
226
|
+
"**/node_modules/**"
|
|
227
|
+
]
|
|
228
|
+
})
|
|
229
|
+
];
|
|
230
|
+
case 2:
|
|
231
|
+
pages = _state.sent();
|
|
232
|
+
routes = [];
|
|
233
|
+
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
234
|
+
_state.label = 3;
|
|
235
|
+
case 3:
|
|
236
|
+
_state.trys.push([
|
|
237
|
+
3,
|
|
238
|
+
8,
|
|
239
|
+
9,
|
|
240
|
+
10
|
|
241
|
+
]);
|
|
242
|
+
_iterator = pages[Symbol.iterator]();
|
|
243
|
+
_state.label = 4;
|
|
244
|
+
case 4:
|
|
245
|
+
if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
|
|
246
|
+
3,
|
|
247
|
+
7
|
|
248
|
+
];
|
|
249
|
+
page = _step.value;
|
|
250
|
+
route = convertToRoute(page);
|
|
251
|
+
routes.push(route);
|
|
252
|
+
return [
|
|
253
|
+
4,
|
|
254
|
+
processPage(page, route)
|
|
255
|
+
];
|
|
256
|
+
case 5:
|
|
257
|
+
_state.sent();
|
|
258
|
+
_state.label = 6;
|
|
259
|
+
case 6:
|
|
260
|
+
_iteratorNormalCompletion = true;
|
|
261
|
+
return [
|
|
262
|
+
3,
|
|
263
|
+
4
|
|
264
|
+
];
|
|
265
|
+
case 7:
|
|
266
|
+
return [
|
|
267
|
+
3,
|
|
268
|
+
10
|
|
269
|
+
];
|
|
270
|
+
case 8:
|
|
271
|
+
err = _state.sent();
|
|
272
|
+
_didIteratorError = true;
|
|
273
|
+
_iteratorError = err;
|
|
274
|
+
return [
|
|
275
|
+
3,
|
|
276
|
+
10
|
|
277
|
+
];
|
|
278
|
+
case 9:
|
|
279
|
+
try {
|
|
280
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
281
|
+
_iterator.return();
|
|
282
|
+
}
|
|
283
|
+
} finally{
|
|
284
|
+
if (_didIteratorError) {
|
|
285
|
+
throw _iteratorError;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return [
|
|
289
|
+
7
|
|
290
|
+
];
|
|
291
|
+
case 10:
|
|
292
|
+
// Generate routes configuration
|
|
293
|
+
routesConfig = {
|
|
294
|
+
routes: routes,
|
|
295
|
+
generatedAt: new Date().toISOString()
|
|
296
|
+
};
|
|
297
|
+
// Write routes configuration
|
|
298
|
+
return [
|
|
299
|
+
4,
|
|
300
|
+
writeFile(join(process.cwd(), ".xplora", "routes.json"), JSON.stringify(routesConfig, null, 2))
|
|
301
|
+
];
|
|
302
|
+
case 11:
|
|
303
|
+
_state.sent();
|
|
304
|
+
console.log("Build completed!");
|
|
305
|
+
console.log("Routes:", routes.map(function(r) {
|
|
306
|
+
return r.path;
|
|
307
|
+
}).join("\n"));
|
|
308
|
+
return [
|
|
309
|
+
2
|
|
310
|
+
];
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
})();
|
|
314
|
+
}
|