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.
@@ -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
+ }