@kubb/fabric-core 0.0.0-canary-20251021145629 → 0.0.0-canary-20251022151827
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/App-DZuROf6f.d.ts +292 -0
- package/dist/App-zyf9KG3p.d.cts +292 -0
- package/dist/chunk-CUT6urMc.cjs +30 -0
- package/dist/defineApp-D3B0bU-z.d.cts +14 -0
- package/dist/defineApp-DJVMk9lc.d.ts +14 -0
- package/dist/index.cjs +164 -83
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -8
- package/dist/index.d.ts +4 -8
- package/dist/index.js +153 -72
- package/dist/index.js.map +1 -1
- package/dist/parsers/typescript.cjs +5 -6
- package/dist/parsers/typescript.d.cts +3 -51
- package/dist/parsers/typescript.d.ts +3 -51
- package/dist/parsers/typescript.js +2 -3
- package/dist/parsers.cjs +7 -0
- package/dist/parsers.d.cts +14 -0
- package/dist/parsers.d.ts +14 -0
- package/dist/parsers.js +4 -0
- package/dist/plugins.cjs +76 -0
- package/dist/plugins.cjs.map +1 -0
- package/dist/plugins.d.cts +28 -0
- package/dist/plugins.d.ts +28 -0
- package/dist/plugins.js +71 -0
- package/dist/plugins.js.map +1 -0
- package/dist/tsxParser-C741ZKCN.js +26 -0
- package/dist/tsxParser-C741ZKCN.js.map +1 -0
- package/dist/tsxParser-HDf_3TMc.cjs +37 -0
- package/dist/tsxParser-HDf_3TMc.cjs.map +1 -0
- package/dist/types.d.cts +2 -2
- package/dist/types.d.ts +2 -2
- package/dist/{typescript-C60gWBu8.js → typescriptParser-BBGeFKlP.js} +52 -69
- package/dist/typescriptParser-BBGeFKlP.js.map +1 -0
- package/dist/{typescript-Z90jN87k.cjs → typescriptParser-BBbbmG5W.cjs} +61 -108
- package/dist/typescriptParser-BBbbmG5W.cjs.map +1 -0
- package/dist/typescriptParser-C-sBy1iR.d.cts +50 -0
- package/dist/typescriptParser-CtMmz0UV.d.ts +50 -0
- package/package.json +13 -13
- package/src/App.ts +91 -0
- package/src/FileManager.ts +11 -4
- package/src/FileProcessor.ts +49 -46
- package/src/createFile.ts +1 -1
- package/src/defineApp.ts +47 -72
- package/src/index.ts +1 -1
- package/src/parsers/createParser.ts +8 -0
- package/src/parsers/defaultParser.ts +10 -0
- package/src/parsers/index.ts +5 -0
- package/src/parsers/tsxParser.ts +11 -0
- package/src/parsers/types.ts +12 -2
- package/src/parsers/{typescript.ts → typescriptParser.ts} +8 -4
- package/src/plugins/createPlugin.ts +10 -0
- package/src/plugins/fsPlugin.ts +112 -0
- package/src/plugins/index.ts +3 -0
- package/src/plugins/types.ts +15 -0
- package/src/types.ts +4 -1
- package/src/utils/AsyncEventEmitter.ts +37 -0
- package/src/utils/getRelativePath.ts +32 -0
- package/src/utils/trimExtName.ts +3 -0
- package/dist/KubbFile-BrN7Wwp6.d.cts +0 -119
- package/dist/KubbFile-BzVkcu9M.d.ts +0 -119
- package/dist/createFileParser-BD8yn0LT.cjs +0 -14
- package/dist/createFileParser-BD8yn0LT.cjs.map +0 -1
- package/dist/createFileParser-Cix3AMLd.js +0 -8
- package/dist/createFileParser-Cix3AMLd.js.map +0 -1
- package/dist/default-DCpuPmrL.js +0 -10
- package/dist/default-DCpuPmrL.js.map +0 -1
- package/dist/default-DNBu_jsL.cjs +0 -15
- package/dist/default-DNBu_jsL.cjs.map +0 -1
- package/dist/defineApp-C5tn5VBE.d.ts +0 -99
- package/dist/defineApp-CBbnq9oD.d.cts +0 -99
- package/dist/parsers/default.cjs +0 -4
- package/dist/parsers/default.d.cts +0 -8
- package/dist/parsers/default.d.ts +0 -8
- package/dist/parsers/default.js +0 -4
- package/dist/parsers/tsx.cjs +0 -5
- package/dist/parsers/tsx.d.cts +0 -8
- package/dist/parsers/tsx.d.ts +0 -8
- package/dist/parsers/tsx.js +0 -5
- package/dist/tsx-BSUaIML3.cjs +0 -16
- package/dist/tsx-BSUaIML3.cjs.map +0 -1
- package/dist/tsx-DBAk9dqS.js +0 -11
- package/dist/tsx-DBAk9dqS.js.map +0 -1
- package/dist/types-CkbelZaS.d.ts +0 -15
- package/dist/types-GueHciQ3.d.cts +0 -15
- package/dist/typescript-C60gWBu8.js.map +0 -1
- package/dist/typescript-Z90jN87k.cjs.map +0 -1
- package/src/fs.ts +0 -167
- package/src/parsers/createFileParser.ts +0 -5
- package/src/parsers/default.ts +0 -7
- package/src/parsers/tsx.ts +0 -8
package/dist/index.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as
|
|
3
|
-
import { t as tsxParser } from "./tsx-DBAk9dqS.js";
|
|
4
|
-
import { t as defaultParser } from "./default-DCpuPmrL.js";
|
|
5
|
-
import path from "node:path";
|
|
1
|
+
import { i as typescriptParser, o as trimExtName } from "./typescriptParser-BBGeFKlP.js";
|
|
2
|
+
import { n as defaultParser, t as tsxParser } from "./tsxParser-C741ZKCN.js";
|
|
6
3
|
import { orderBy } from "natural-orderby";
|
|
7
4
|
import { createHash } from "node:crypto";
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { isDeepEqual, isFunction, isPromise, uniqueBy } from "remeda";
|
|
10
7
|
import pLimit from "p-limit";
|
|
8
|
+
import { EventEmitter } from "node:events";
|
|
11
9
|
|
|
12
10
|
//#region \0@oxc-project+runtime@0.95.0/helpers/checkPrivateRedeclaration.js
|
|
13
11
|
function _checkPrivateRedeclaration(e, t) {
|
|
@@ -156,15 +154,23 @@ function createFile(file) {
|
|
|
156
154
|
}
|
|
157
155
|
|
|
158
156
|
//#endregion
|
|
159
|
-
//#region src/utils/
|
|
157
|
+
//#region src/utils/AsyncEventEmitter.ts
|
|
160
158
|
var _emitter = /* @__PURE__ */ new WeakMap();
|
|
161
|
-
var
|
|
159
|
+
var AsyncEventEmitter = class {
|
|
162
160
|
constructor(maxListener = 100) {
|
|
163
161
|
_classPrivateFieldInitSpec(this, _emitter, new EventEmitter());
|
|
164
162
|
_classPrivateFieldGet2(_emitter, this).setMaxListeners(maxListener);
|
|
165
163
|
}
|
|
166
|
-
emit(eventName, ...
|
|
167
|
-
_classPrivateFieldGet2(_emitter, this).
|
|
164
|
+
async emit(eventName, ...eventArgs) {
|
|
165
|
+
const listeners = _classPrivateFieldGet2(_emitter, this).listeners(eventName);
|
|
166
|
+
if (listeners.length === 0) return;
|
|
167
|
+
await Promise.all(listeners.map(async (listener) => {
|
|
168
|
+
try {
|
|
169
|
+
return await listener(...eventArgs);
|
|
170
|
+
} catch (err) {
|
|
171
|
+
console.error(`Error in async listener for "${eventName}":`, err);
|
|
172
|
+
}
|
|
173
|
+
}));
|
|
168
174
|
}
|
|
169
175
|
on(eventName, handler) {
|
|
170
176
|
_classPrivateFieldGet2(_emitter, this).on(eventName, handler);
|
|
@@ -178,46 +184,124 @@ var EventEmitter$1 = class {
|
|
|
178
184
|
};
|
|
179
185
|
|
|
180
186
|
//#endregion
|
|
181
|
-
//#region
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
187
|
+
//#region \0@oxc-project+runtime@0.95.0/helpers/classPrivateMethodInitSpec.js
|
|
188
|
+
function _classPrivateMethodInitSpec(e, a) {
|
|
189
|
+
_checkPrivateRedeclaration(e, a), a.add(e);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
//#endregion
|
|
193
|
+
//#region \0@oxc-project+runtime@0.95.0/helpers/typeof.js
|
|
194
|
+
function _typeof(o) {
|
|
195
|
+
"@babel/helpers - typeof";
|
|
196
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o$1) {
|
|
197
|
+
return typeof o$1;
|
|
198
|
+
} : function(o$1) {
|
|
199
|
+
return o$1 && "function" == typeof Symbol && o$1.constructor === Symbol && o$1 !== Symbol.prototype ? "symbol" : typeof o$1;
|
|
200
|
+
}, _typeof(o);
|
|
194
201
|
}
|
|
202
|
+
|
|
203
|
+
//#endregion
|
|
204
|
+
//#region \0@oxc-project+runtime@0.95.0/helpers/toPrimitive.js
|
|
205
|
+
function toPrimitive(t, r) {
|
|
206
|
+
if ("object" != _typeof(t) || !t) return t;
|
|
207
|
+
var e = t[Symbol.toPrimitive];
|
|
208
|
+
if (void 0 !== e) {
|
|
209
|
+
var i = e.call(t, r || "default");
|
|
210
|
+
if ("object" != _typeof(i)) return i;
|
|
211
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
212
|
+
}
|
|
213
|
+
return ("string" === r ? String : Number)(t);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
//#endregion
|
|
217
|
+
//#region \0@oxc-project+runtime@0.95.0/helpers/toPropertyKey.js
|
|
218
|
+
function toPropertyKey(t) {
|
|
219
|
+
var i = toPrimitive(t, "string");
|
|
220
|
+
return "symbol" == _typeof(i) ? i : i + "";
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
//#endregion
|
|
224
|
+
//#region \0@oxc-project+runtime@0.95.0/helpers/defineProperty.js
|
|
225
|
+
function _defineProperty(e, r, t) {
|
|
226
|
+
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
227
|
+
value: t,
|
|
228
|
+
enumerable: !0,
|
|
229
|
+
configurable: !0,
|
|
230
|
+
writable: !0
|
|
231
|
+
}) : e[r] = t, e;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
//#endregion
|
|
235
|
+
//#region src/FileProcessor.ts
|
|
195
236
|
var _limit = /* @__PURE__ */ new WeakMap();
|
|
196
|
-
var
|
|
197
|
-
|
|
198
|
-
|
|
237
|
+
var _FileProcessor_brand = /* @__PURE__ */ new WeakSet();
|
|
238
|
+
var FileProcessor = class {
|
|
239
|
+
constructor({ events = new AsyncEventEmitter() } = {}) {
|
|
240
|
+
_classPrivateMethodInitSpec(this, _FileProcessor_brand);
|
|
199
241
|
_classPrivateFieldInitSpec(this, _limit, pLimit(100));
|
|
242
|
+
_defineProperty(this, "events", void 0);
|
|
243
|
+
this.events = events;
|
|
200
244
|
return this;
|
|
201
245
|
}
|
|
202
|
-
async parse(file, { extname } = {}) {
|
|
203
|
-
|
|
246
|
+
async parse(file, { parsers = _get_defaultParser.call(_assertClassBrand(_FileProcessor_brand, this)), extname } = {}) {
|
|
247
|
+
if (!extname) {
|
|
248
|
+
console.warn("[parser] No extname found, default parser will be used");
|
|
249
|
+
return defaultParser.parse(file, { extname });
|
|
250
|
+
}
|
|
251
|
+
const parser = [...parsers].find((item) => {
|
|
252
|
+
var _item$extNames;
|
|
253
|
+
return (_item$extNames = item.extNames) === null || _item$extNames === void 0 ? void 0 : _item$extNames.includes(extname);
|
|
254
|
+
});
|
|
255
|
+
if (!parser) {
|
|
256
|
+
console.warn(`[parser] No parser found for ${extname}, default parser will be used`);
|
|
257
|
+
return defaultParser.parse(file, { extname });
|
|
258
|
+
}
|
|
259
|
+
return parser.parse(file, { extname });
|
|
204
260
|
}
|
|
205
|
-
async run(files, { dryRun, extension } = {}) {
|
|
206
|
-
this.emit("start", { files });
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
261
|
+
async run(files, { parsers, dryRun, extension } = {}) {
|
|
262
|
+
await this.events.emit("process:start", { files });
|
|
263
|
+
let processed = 0;
|
|
264
|
+
const total = files.length;
|
|
265
|
+
const promises = files.map((resolvedFile, index) => _classPrivateFieldGet2(_limit, this).call(this, async () => {
|
|
266
|
+
const extname = (extension === null || extension === void 0 ? void 0 : extension[resolvedFile.extname]) || path.extname(resolvedFile.path);
|
|
267
|
+
await this.events.emit("file:start", {
|
|
268
|
+
file: resolvedFile,
|
|
269
|
+
index,
|
|
270
|
+
total
|
|
271
|
+
});
|
|
210
272
|
if (!dryRun) {
|
|
211
|
-
const source = await this.parse(resolvedFile, {
|
|
212
|
-
|
|
273
|
+
const source = await this.parse(resolvedFile, {
|
|
274
|
+
extname,
|
|
275
|
+
parsers
|
|
276
|
+
});
|
|
277
|
+
await this.events.emit("process:progress", {
|
|
278
|
+
file: resolvedFile,
|
|
279
|
+
source,
|
|
280
|
+
processed,
|
|
281
|
+
percentage: processed / total * 100,
|
|
282
|
+
total
|
|
283
|
+
});
|
|
213
284
|
}
|
|
214
|
-
this.emit("file:
|
|
285
|
+
await this.events.emit("file:end", {
|
|
286
|
+
file: resolvedFile,
|
|
287
|
+
index,
|
|
288
|
+
total
|
|
289
|
+
});
|
|
290
|
+
processed++;
|
|
215
291
|
}));
|
|
216
292
|
await Promise.all(promises);
|
|
217
|
-
this.emit("
|
|
293
|
+
await this.events.emit("process:end", { files });
|
|
218
294
|
return files;
|
|
219
295
|
}
|
|
220
296
|
};
|
|
297
|
+
function _get_defaultParser() {
|
|
298
|
+
console.warn(`[parser] using default parsers, please consider using the "use" method to add custom parsers.`);
|
|
299
|
+
return new Set([
|
|
300
|
+
typescriptParser,
|
|
301
|
+
tsxParser,
|
|
302
|
+
defaultParser
|
|
303
|
+
]);
|
|
304
|
+
}
|
|
221
305
|
|
|
222
306
|
//#endregion
|
|
223
307
|
//#region src/FileManager.ts
|
|
@@ -230,11 +314,11 @@ function mergeFile(a, b) {
|
|
|
230
314
|
};
|
|
231
315
|
}
|
|
232
316
|
var _cache = /* @__PURE__ */ new WeakMap();
|
|
233
|
-
var _processor = /* @__PURE__ */ new WeakMap();
|
|
234
317
|
var FileManager = class {
|
|
235
|
-
constructor() {
|
|
318
|
+
constructor({ events = new AsyncEventEmitter() } = {}) {
|
|
236
319
|
_classPrivateFieldInitSpec(this, _cache, new Cache());
|
|
237
|
-
|
|
320
|
+
_defineProperty(this, "processor", void 0);
|
|
321
|
+
this.processor = new FileProcessor({ events });
|
|
238
322
|
return this;
|
|
239
323
|
}
|
|
240
324
|
async add(...files) {
|
|
@@ -270,29 +354,24 @@ var FileManager = class {
|
|
|
270
354
|
return orderBy(_classPrivateFieldGet2(_cache, this).keys(), [(v) => v.length, (v) => trimExtName(v).endsWith("index")]).map((key) => _classPrivateFieldGet2(_cache, this).get(key)).filter(Boolean);
|
|
271
355
|
}
|
|
272
356
|
async write(options) {
|
|
273
|
-
return
|
|
357
|
+
return this.processor.run(this.files, options);
|
|
274
358
|
}
|
|
275
359
|
};
|
|
276
360
|
|
|
277
361
|
//#endregion
|
|
278
362
|
//#region src/defineApp.ts
|
|
279
|
-
const isFunction = (val) => typeof val === "function";
|
|
280
363
|
function defineApp(instance) {
|
|
281
364
|
function createApp$1(rootComponent, options) {
|
|
282
|
-
const
|
|
283
|
-
const
|
|
365
|
+
const events = new AsyncEventEmitter();
|
|
366
|
+
const installedPlugins = /* @__PURE__ */ new Set();
|
|
367
|
+
const installedParsers = /* @__PURE__ */ new Set();
|
|
368
|
+
const fileManager = new FileManager({ events });
|
|
284
369
|
const context = {
|
|
370
|
+
events,
|
|
285
371
|
options,
|
|
286
372
|
fileManager,
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
},
|
|
290
|
-
clear() {
|
|
291
|
-
context.fileManager.clear();
|
|
292
|
-
},
|
|
293
|
-
get files() {
|
|
294
|
-
return fileManager.files;
|
|
295
|
-
}
|
|
373
|
+
installedPlugins,
|
|
374
|
+
installedParsers
|
|
296
375
|
};
|
|
297
376
|
const { render, renderToString, waitUntilExit } = instance.call(context, rootComponent, context);
|
|
298
377
|
const app = {
|
|
@@ -308,28 +387,30 @@ function defineApp(instance) {
|
|
|
308
387
|
return fileManager.files;
|
|
309
388
|
},
|
|
310
389
|
waitUntilExit,
|
|
311
|
-
addFile
|
|
312
|
-
|
|
313
|
-
extension: { ".ts": ".ts" },
|
|
314
|
-
dryRun: false
|
|
315
|
-
}) {
|
|
316
|
-
await fileManager.write({
|
|
317
|
-
extension: options$1.extension,
|
|
318
|
-
dryRun: options$1.dryRun
|
|
319
|
-
});
|
|
390
|
+
async addFile(...newFiles) {
|
|
391
|
+
await fileManager.add(...newFiles);
|
|
320
392
|
},
|
|
321
|
-
use(
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
installedPlugins.
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
393
|
+
use(pluginOrParser, ...options$1) {
|
|
394
|
+
const args = Array.isArray(options$1) ? options$1 : [options$1[0]];
|
|
395
|
+
if (pluginOrParser.type === "plugin") {
|
|
396
|
+
if (installedPlugins.has(pluginOrParser)) console.warn("Plugin has already been applied to target app.");
|
|
397
|
+
else installedPlugins.add(pluginOrParser);
|
|
398
|
+
if (pluginOrParser.override && isFunction(pluginOrParser.override)) {
|
|
399
|
+
const overrider = pluginOrParser.override;
|
|
400
|
+
const extraApp = overrider(app, context, ...args);
|
|
401
|
+
Object.assign(app, extraApp);
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
if (pluginOrParser.type === "parser") if (installedParsers.has(pluginOrParser)) console.warn("Parser has already been applied to target app.");
|
|
405
|
+
else installedParsers.add(pluginOrParser);
|
|
406
|
+
if (pluginOrParser && isFunction(pluginOrParser.install)) {
|
|
407
|
+
const installer = pluginOrParser.install;
|
|
408
|
+
installer(app, context, ...args);
|
|
329
409
|
}
|
|
330
410
|
return app;
|
|
331
411
|
}
|
|
332
412
|
};
|
|
413
|
+
events.emit("start", { app });
|
|
333
414
|
return app;
|
|
334
415
|
}
|
|
335
416
|
return createApp$1;
|
|
@@ -352,5 +433,5 @@ const createApp = defineApp(() => {
|
|
|
352
433
|
});
|
|
353
434
|
|
|
354
435
|
//#endregion
|
|
355
|
-
export { FileManager, FileProcessor, createApp, createFile,
|
|
436
|
+
export { FileManager, FileProcessor, createApp, createFile, defineApp };
|
|
356
437
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["name","EventEmitter","NodeEventEmitter","parsers: Record<KubbFile.Extname, Parser<any>>","EventEmitter","resolvedFiles: Array<KubbFile.ResolvedFile>","path","createApp","app: App","options"],"sources":["../src/utils/Cache.ts","../src/createFile.ts","../src/utils/EventEmitter.ts","../src/FileProcessor.ts","../src/FileManager.ts","../src/defineApp.ts","../src/createApp.ts"],"sourcesContent":["export class Cache<T> {\n #buffer = new Map<string, T>()\n\n get(key: string): T | null {\n return this.#buffer.get(key) ?? null\n }\n\n set(key: string, value: T): void {\n this.#buffer.set(key, value)\n }\n\n delete(key: string): void {\n this.#buffer.delete(key)\n }\n\n clear(): void {\n this.#buffer.clear()\n }\n\n keys(): string[] {\n return [...this.#buffer.keys()]\n }\n\n values(): Array<T> {\n return [...this.#buffer.values()]\n }\n\n flush(): void {\n // No-op for base cache\n }\n}\n","import type * as KubbFile from './KubbFile.ts'\nimport { trimExtName } from './fs.ts'\nimport { createHash } from 'node:crypto'\nimport path from 'node:path'\nimport { isDeepEqual, uniqueBy } from 'remeda'\nimport { orderBy } from 'natural-orderby'\n\nfunction hashObject(obj: Record<string, unknown>): string {\n const str = JSON.stringify(obj, Object.keys(obj).sort())\n return createHash('sha256').update(str).digest('hex')\n}\n\nexport function combineSources(sources: Array<KubbFile.Source>): Array<KubbFile.Source> {\n return uniqueBy(sources, (obj) => [obj.name, obj.isExportable, obj.isTypeOnly] as const)\n}\n\nexport function combineExports(exports: Array<KubbFile.Export>): Array<KubbFile.Export> {\n return orderBy(exports, [\n (v) => !!Array.isArray(v.name),\n (v) => !v.isTypeOnly,\n (v) => v.path,\n (v) => !!v.name,\n (v) => (Array.isArray(v.name) ? orderBy(v.name) : v.name),\n ]).reduce(\n (prev, curr) => {\n const name = curr.name\n const prevByPath = prev.findLast((imp) => imp.path === curr.path)\n const prevByPathAndIsTypeOnly = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)\n\n if (prevByPathAndIsTypeOnly) {\n // we already have an export that has the same path but uses `isTypeOnly` (export type ...)\n return prev\n }\n\n const uniquePrev = prev.findLast(\n (imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly && imp.asAlias === curr.asAlias,\n )\n\n // we already have an item that was unique enough or name field is empty or prev asAlias is set but current has no changes\n if (uniquePrev || (Array.isArray(name) && !name.length) || (prevByPath?.asAlias && !curr.asAlias)) {\n return prev\n }\n\n if (!prevByPath) {\n return [\n ...prev,\n {\n ...curr,\n name: Array.isArray(name) ? [...new Set(name)] : name,\n },\n ]\n }\n\n // merge all names when prev and current both have the same isTypeOnly set\n if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(curr.name) && prevByPath.isTypeOnly === curr.isTypeOnly) {\n prevByPath.name = [...new Set([...prevByPath.name, ...curr.name])]\n\n return prev\n }\n\n return [...prev, curr]\n },\n [] as Array<KubbFile.Export>,\n )\n}\n\nexport function combineImports(imports: Array<KubbFile.Import>, exports: Array<KubbFile.Export>, source?: string): Array<KubbFile.Import> {\n return orderBy(imports, [\n (v) => !!Array.isArray(v.name),\n (v) => !v.isTypeOnly,\n (v) => v.path,\n (v) => !!v.name,\n (v) => (Array.isArray(v.name) ? orderBy(v.name) : v.name),\n ]).reduce(\n (prev, curr) => {\n let name = Array.isArray(curr.name) ? [...new Set(curr.name)] : curr.name\n\n const hasImportInSource = (importName: string) => {\n if (!source) {\n return true\n }\n\n const checker = (name?: string) => {\n return name && source.includes(name)\n }\n\n return checker(importName) || exports.some(({ name }) => (Array.isArray(name) ? name.some(checker) : checker(name)))\n }\n\n if (curr.path === curr.root) {\n // root and path are the same file, remove the \"./\" import\n return prev\n }\n\n // merge all names and check if the importName is being used in the generated source and if not filter those imports out\n if (Array.isArray(name)) {\n name = name.filter((item) => (typeof item === 'string' ? hasImportInSource(item) : hasImportInSource(item.propertyName)))\n }\n\n const prevByPath = prev.findLast((imp) => imp.path === curr.path && imp.isTypeOnly === curr.isTypeOnly)\n const uniquePrev = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly)\n const prevByPathNameAndIsTypeOnly = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)\n\n if (prevByPathNameAndIsTypeOnly) {\n // we already have an export that has the same path but uses `isTypeOnly` (import type ...)\n return prev\n }\n\n // already unique enough or name is empty\n if (uniquePrev || (Array.isArray(name) && !name.length)) {\n return prev\n }\n\n // new item, append name\n if (!prevByPath) {\n return [\n ...prev,\n {\n ...curr,\n name,\n },\n ]\n }\n\n // merge all names when prev and current both have the same isTypeOnly set\n if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(name) && prevByPath.isTypeOnly === curr.isTypeOnly) {\n prevByPath.name = [...new Set([...prevByPath.name, ...name])]\n\n return prev\n }\n\n // no import was found in the source, ignore import\n if (!Array.isArray(name) && name && !hasImportInSource(name)) {\n return prev\n }\n\n return [...prev, curr]\n },\n [] as Array<KubbFile.Import>,\n )\n}\n\n/**\n * Helper to create a file with name and id set\n */\nexport function createFile<TMeta extends object = object>(file: KubbFile.File<TMeta>): KubbFile.ResolvedFile<TMeta> {\n const extname = path.extname(file.baseName) as KubbFile.Extname\n if (!extname) {\n throw new Error(`No extname found for ${file.baseName}`)\n }\n\n const source = file.sources.map((item) => item.value).join('\\n\\n')\n const exports = file.exports?.length ? combineExports(file.exports) : []\n const imports = file.imports?.length && source ? combineImports(file.imports, exports, source) : []\n const sources = file.sources?.length ? combineSources(file.sources) : []\n\n return {\n ...file,\n id: hashObject({ path: file.path }),\n name: trimExtName(file.baseName),\n extname,\n imports: imports,\n exports: exports,\n sources: sources,\n meta: file.meta || ({} as TMeta),\n }\n}\n","import { EventEmitter as NodeEventEmitter } from 'node:events'\n\nexport class EventEmitter<TEvents extends Record<string, any>> {\n constructor(maxListener = 100) {\n this.#emitter.setMaxListeners(maxListener)\n }\n #emitter = new NodeEventEmitter()\n\n emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArg: TEvents[TEventName]): void {\n this.#emitter.emit(eventName, ...(eventArg as any))\n }\n\n on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.on(eventName, handler as any)\n }\n\n off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.off(eventName, handler as any)\n }\n removeAll(): void {\n this.#emitter.removeAllListeners()\n }\n}\n","import type * as KubbFile from './KubbFile.ts'\nimport { EventEmitter } from './utils/EventEmitter.ts'\nimport { write } from './fs.ts'\nimport pLimit from 'p-limit'\nimport type { Parser } from './parsers/types.ts'\nimport { typeScriptParser } from './parsers/typescript.ts'\nimport { tsxParser } from './parsers/tsx.ts'\nimport { defaultParser } from './parsers/default.ts'\n\ntype FileProcessorEvents = {\n start: [{ files: KubbFile.ResolvedFile[] }]\n finish: [{ files: KubbFile.ResolvedFile[] }]\n 'file:start': [{ file: KubbFile.ResolvedFile }]\n 'file:finish': [{ file: KubbFile.ResolvedFile }]\n}\n\nexport type ProcessFilesProps = {\n extension?: Record<KubbFile.Extname, KubbFile.Extname | ''>\n dryRun?: boolean\n}\n\ntype GetSourceOptions = {\n extname?: KubbFile.Extname\n}\n\nasync function getParser<TMeta extends object = object>(extname: KubbFile.Extname | undefined): Promise<Parser<TMeta>> {\n const parsers: Record<KubbFile.Extname, Parser<any>> = {\n '.ts': typeScriptParser,\n '.js': typeScriptParser,\n '.jsx': tsxParser,\n '.tsx': tsxParser,\n '.json': defaultParser,\n }\n\n if (!extname) {\n return defaultParser\n }\n\n const parser = parsers[extname]\n\n if (!parser) {\n console.warn(`[parser] No parser found for ${extname}, default parser will be used`)\n }\n\n return parser || defaultParser\n}\n\nexport class FileProcessor extends EventEmitter<FileProcessorEvents> {\n #limit = pLimit(100)\n\n constructor(maxListener = 1000) {\n super(maxListener)\n return this\n }\n\n async parse(file: KubbFile.ResolvedFile, { extname }: GetSourceOptions = {}): Promise<string> {\n const parser = await getParser(file.extname)\n\n return parser.print(file, { extname })\n }\n\n async run(files: Array<KubbFile.ResolvedFile>, { dryRun, extension }: ProcessFilesProps = {}): Promise<KubbFile.ResolvedFile[]> {\n this.emit('start', { files })\n\n const promises = files.map((resolvedFile) =>\n this.#limit(async () => {\n const extname = extension?.[resolvedFile.extname] || undefined\n\n this.emit('file:start', { file: resolvedFile })\n\n if (!dryRun) {\n const source = await this.parse(resolvedFile, { extname })\n await write(resolvedFile.path, source, { sanity: false })\n }\n\n this.emit('file:finish', { file: resolvedFile })\n }),\n )\n\n await Promise.all(promises)\n\n this.emit('finish', { files })\n\n return files\n }\n}\n","import type * as KubbFile from './KubbFile.ts'\nimport { Cache } from './utils/Cache.ts'\nimport { trimExtName } from './fs.ts'\nimport { orderBy } from 'natural-orderby'\nimport { createFile } from './createFile.ts'\nimport { FileProcessor, type ProcessFilesProps } from './FileProcessor.ts'\n\nfunction mergeFile<TMeta extends object = object>(a: KubbFile.File<TMeta>, b: KubbFile.File<TMeta>): KubbFile.File<TMeta> {\n return {\n ...a,\n sources: [...(a.sources || []), ...(b.sources || [])],\n imports: [...(a.imports || []), ...(b.imports || [])],\n exports: [...(a.exports || []), ...(b.exports || [])],\n }\n}\n\nexport class FileManager {\n #cache = new Cache<KubbFile.ResolvedFile>()\n #processor = new FileProcessor()\n\n constructor() {\n return this\n }\n\n async add(...files: Array<KubbFile.File>) {\n const resolvedFiles: Array<KubbFile.ResolvedFile> = []\n\n const mergedFiles = new Map<string, KubbFile.File>()\n\n files.forEach((file) => {\n const existing = mergedFiles.get(file.path)\n if (existing) {\n mergedFiles.set(file.path, mergeFile(existing, file))\n } else {\n mergedFiles.set(file.path, file)\n }\n })\n\n for (const file of mergedFiles.values()) {\n const existing = this.#cache.get(file.path)\n\n const merged = existing ? mergeFile(existing, file) : file\n const resolvedFile = createFile(merged)\n\n this.#cache.set(resolvedFile.path, resolvedFile)\n this.flush()\n\n resolvedFiles.push(resolvedFile)\n }\n\n return resolvedFiles\n }\n\n flush() {\n this.#cache.flush()\n }\n\n getByPath(path: KubbFile.Path): KubbFile.ResolvedFile | null {\n return this.#cache.get(path)\n }\n\n deleteByPath(path: KubbFile.Path): void {\n this.#cache.delete(path)\n }\n\n clear(): void {\n this.#cache.clear()\n }\n\n get files(): Array<KubbFile.ResolvedFile> {\n const cachedKeys = this.#cache.keys()\n\n // order by path length and if file is a barrel file\n const keys = orderBy(cachedKeys, [(v) => v.length, (v) => trimExtName(v).endsWith('index')])\n\n const files = keys.map((key) => this.#cache.get(key))\n\n return files.filter(Boolean)\n }\n\n async write(options: ProcessFilesProps): Promise<KubbFile.ResolvedFile[]> {\n return this.#processor.run(this.files, options)\n }\n}\n","import type * as KubbFile from './KubbFile.ts'\nimport { FileManager } from './FileManager.ts'\nimport { isPromise } from 'remeda'\n\nconst isFunction = (val: unknown): val is Function => typeof val === 'function'\n\ntype Component = any\n\ntype PluginInstallFunction<Options = any[]> = Options extends unknown[] ? (app: App, ...options: Options) => any : (app: App, options: Options) => any\n\nexport type ObjectPlugin<Options = any[]> = {\n install: PluginInstallFunction<Options>\n}\nexport type FunctionPlugin<Options = any[]> = PluginInstallFunction<Options> & Partial<ObjectPlugin<Options>>\n\ntype AppRenderer = {\n render(): Promise<void> | void\n renderToString(): Promise<string> | string\n waitUntilExit(): Promise<void>\n}\n\nexport type AppContext<TOptions = unknown> = {\n options?: TOptions\n fileManager: FileManager\n addFile(...files: Array<KubbFile.File>): Promise<void>\n files: Array<KubbFile.ResolvedFile>\n clear: () => void\n}\n\ntype RootRenderFunction<THostElement, TContext extends AppContext> = (this: TContext, container: THostElement, context: TContext) => AppRenderer\n\ntype Plugin<Options = any[], P extends unknown[] = Options extends unknown[] ? Options : [Options]> = FunctionPlugin<P> | ObjectPlugin<P>\n\ntype WriteOptions = {\n extension?: Record<KubbFile.Extname, KubbFile.Extname | ''>\n dryRun?: boolean\n}\n\nexport interface App {\n _component: Component\n render(): Promise<void>\n renderToString(): Promise<string>\n files: Array<KubbFile.ResolvedFile>\n use<Options>(plugin: Plugin<Options>, options: NoInfer<Options>): this\n write(options?: WriteOptions): Promise<void>\n addFile(...files: Array<KubbFile.File>): Promise<void>\n waitUntilExit(): Promise<void>\n}\n\nexport type DefineApp<TContext extends AppContext> = (rootComponent?: Component, options?: TContext['options']) => App\n\nexport function defineApp<THostElement, TContext extends AppContext>(instance: RootRenderFunction<THostElement, TContext>): DefineApp<TContext> {\n function createApp(rootComponent: Component, options?: TContext['options']): App {\n const installedPlugins = new WeakSet()\n const fileManager = new FileManager()\n const context = {\n options,\n fileManager,\n async addFile(...newFiles) {\n await fileManager.add(...newFiles)\n },\n clear() {\n context.fileManager.clear()\n },\n get files() {\n return fileManager.files\n },\n } as TContext\n\n const { render, renderToString, waitUntilExit } = instance.call(context, rootComponent, context)\n\n const app: App = {\n _component: rootComponent,\n async render() {\n if (isPromise(render)) {\n await render()\n } else {\n render()\n }\n },\n async renderToString() {\n return renderToString()\n },\n get files() {\n return fileManager.files\n },\n waitUntilExit,\n addFile: context.addFile,\n async write(\n options = {\n extension: { '.ts': '.ts' },\n dryRun: false,\n },\n ) {\n await fileManager.write({\n extension: options.extension,\n dryRun: options.dryRun,\n })\n },\n use(plugin: Plugin, ...options: any[]) {\n if (installedPlugins.has(plugin)) {\n console.warn('Plugin has already been applied to target app.')\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin)\n plugin.install(app, ...options)\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin)\n plugin(app, ...options)\n }\n\n return app\n },\n }\n\n return app\n }\n\n return createApp\n}\n","import { defineApp } from './defineApp.ts'\n\nexport const createApp = defineApp(() => {\n return {\n async render() {\n throw new Error('Method not implemented')\n },\n async renderToString() {\n throw new Error('Method not implemented')\n },\n async waitUntilExit() {\n throw new Error('Method not implemented')\n },\n }\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["name","NodeEventEmitter","resolvedFiles: Array<KubbFile.ResolvedFile>","path","createApp","options"],"sources":["../src/utils/Cache.ts","../src/createFile.ts","../src/utils/AsyncEventEmitter.ts","../src/FileProcessor.ts","../src/FileManager.ts","../src/defineApp.ts","../src/createApp.ts"],"sourcesContent":["export class Cache<T> {\n #buffer = new Map<string, T>()\n\n get(key: string): T | null {\n return this.#buffer.get(key) ?? null\n }\n\n set(key: string, value: T): void {\n this.#buffer.set(key, value)\n }\n\n delete(key: string): void {\n this.#buffer.delete(key)\n }\n\n clear(): void {\n this.#buffer.clear()\n }\n\n keys(): string[] {\n return [...this.#buffer.keys()]\n }\n\n values(): Array<T> {\n return [...this.#buffer.values()]\n }\n\n flush(): void {\n // No-op for base cache\n }\n}\n","import type * as KubbFile from './KubbFile.ts'\nimport { trimExtName } from './utils/trimExtName.ts'\nimport { createHash } from 'node:crypto'\nimport path from 'node:path'\nimport { isDeepEqual, uniqueBy } from 'remeda'\nimport { orderBy } from 'natural-orderby'\n\nfunction hashObject(obj: Record<string, unknown>): string {\n const str = JSON.stringify(obj, Object.keys(obj).sort())\n return createHash('sha256').update(str).digest('hex')\n}\n\nexport function combineSources(sources: Array<KubbFile.Source>): Array<KubbFile.Source> {\n return uniqueBy(sources, (obj) => [obj.name, obj.isExportable, obj.isTypeOnly] as const)\n}\n\nexport function combineExports(exports: Array<KubbFile.Export>): Array<KubbFile.Export> {\n return orderBy(exports, [\n (v) => !!Array.isArray(v.name),\n (v) => !v.isTypeOnly,\n (v) => v.path,\n (v) => !!v.name,\n (v) => (Array.isArray(v.name) ? orderBy(v.name) : v.name),\n ]).reduce(\n (prev, curr) => {\n const name = curr.name\n const prevByPath = prev.findLast((imp) => imp.path === curr.path)\n const prevByPathAndIsTypeOnly = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)\n\n if (prevByPathAndIsTypeOnly) {\n // we already have an export that has the same path but uses `isTypeOnly` (export type ...)\n return prev\n }\n\n const uniquePrev = prev.findLast(\n (imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly && imp.asAlias === curr.asAlias,\n )\n\n // we already have an item that was unique enough or name field is empty or prev asAlias is set but current has no changes\n if (uniquePrev || (Array.isArray(name) && !name.length) || (prevByPath?.asAlias && !curr.asAlias)) {\n return prev\n }\n\n if (!prevByPath) {\n return [\n ...prev,\n {\n ...curr,\n name: Array.isArray(name) ? [...new Set(name)] : name,\n },\n ]\n }\n\n // merge all names when prev and current both have the same isTypeOnly set\n if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(curr.name) && prevByPath.isTypeOnly === curr.isTypeOnly) {\n prevByPath.name = [...new Set([...prevByPath.name, ...curr.name])]\n\n return prev\n }\n\n return [...prev, curr]\n },\n [] as Array<KubbFile.Export>,\n )\n}\n\nexport function combineImports(imports: Array<KubbFile.Import>, exports: Array<KubbFile.Export>, source?: string): Array<KubbFile.Import> {\n return orderBy(imports, [\n (v) => !!Array.isArray(v.name),\n (v) => !v.isTypeOnly,\n (v) => v.path,\n (v) => !!v.name,\n (v) => (Array.isArray(v.name) ? orderBy(v.name) : v.name),\n ]).reduce(\n (prev, curr) => {\n let name = Array.isArray(curr.name) ? [...new Set(curr.name)] : curr.name\n\n const hasImportInSource = (importName: string) => {\n if (!source) {\n return true\n }\n\n const checker = (name?: string) => {\n return name && source.includes(name)\n }\n\n return checker(importName) || exports.some(({ name }) => (Array.isArray(name) ? name.some(checker) : checker(name)))\n }\n\n if (curr.path === curr.root) {\n // root and path are the same file, remove the \"./\" import\n return prev\n }\n\n // merge all names and check if the importName is being used in the generated source and if not filter those imports out\n if (Array.isArray(name)) {\n name = name.filter((item) => (typeof item === 'string' ? hasImportInSource(item) : hasImportInSource(item.propertyName)))\n }\n\n const prevByPath = prev.findLast((imp) => imp.path === curr.path && imp.isTypeOnly === curr.isTypeOnly)\n const uniquePrev = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly)\n const prevByPathNameAndIsTypeOnly = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)\n\n if (prevByPathNameAndIsTypeOnly) {\n // we already have an export that has the same path but uses `isTypeOnly` (import type ...)\n return prev\n }\n\n // already unique enough or name is empty\n if (uniquePrev || (Array.isArray(name) && !name.length)) {\n return prev\n }\n\n // new item, append name\n if (!prevByPath) {\n return [\n ...prev,\n {\n ...curr,\n name,\n },\n ]\n }\n\n // merge all names when prev and current both have the same isTypeOnly set\n if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(name) && prevByPath.isTypeOnly === curr.isTypeOnly) {\n prevByPath.name = [...new Set([...prevByPath.name, ...name])]\n\n return prev\n }\n\n // no import was found in the source, ignore import\n if (!Array.isArray(name) && name && !hasImportInSource(name)) {\n return prev\n }\n\n return [...prev, curr]\n },\n [] as Array<KubbFile.Import>,\n )\n}\n\n/**\n * Helper to create a file with name and id set\n */\nexport function createFile<TMeta extends object = object>(file: KubbFile.File<TMeta>): KubbFile.ResolvedFile<TMeta> {\n const extname = path.extname(file.baseName) as KubbFile.Extname\n if (!extname) {\n throw new Error(`No extname found for ${file.baseName}`)\n }\n\n const source = file.sources.map((item) => item.value).join('\\n\\n')\n const exports = file.exports?.length ? combineExports(file.exports) : []\n const imports = file.imports?.length && source ? combineImports(file.imports, exports, source) : []\n const sources = file.sources?.length ? combineSources(file.sources) : []\n\n return {\n ...file,\n id: hashObject({ path: file.path }),\n name: trimExtName(file.baseName),\n extname,\n imports: imports,\n exports: exports,\n sources: sources,\n meta: file.meta || ({} as TMeta),\n }\n}\n","import { EventEmitter as NodeEventEmitter } from 'node:events'\n\nexport class AsyncEventEmitter<TEvents extends Record<string, any>> {\n constructor(maxListener = 100) {\n this.#emitter.setMaxListeners(maxListener)\n }\n #emitter = new NodeEventEmitter()\n\n async emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArgs: TEvents[TEventName]): Promise<void> {\n const listeners = this.#emitter.listeners(eventName) as Array<(...args: TEvents[TEventName]) => any>\n\n if (listeners.length === 0) {\n return undefined\n }\n\n await Promise.all(\n listeners.map(async (listener) => {\n try {\n return await listener(...eventArgs)\n } catch (err) {\n console.error(`Error in async listener for \"${eventName}\":`, err)\n }\n }),\n )\n }\n\n on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.on(eventName, handler as any)\n }\n\n off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.off(eventName, handler as any)\n }\n removeAll(): void {\n this.#emitter.removeAllListeners()\n }\n}\n","import type * as KubbFile from './KubbFile.ts'\nimport pLimit from 'p-limit'\nimport path from 'node:path'\n\nimport type { Parser } from './parsers/types.ts'\nimport { defaultParser } from './parsers/defaultParser.ts'\nimport { AsyncEventEmitter } from './utils/AsyncEventEmitter.ts'\nimport type { AppEvents } from './App.ts'\nimport { typescriptParser } from './parsers/typescriptParser.ts'\nimport { tsxParser } from './parsers/tsxParser.ts'\n\nexport type ProcessFilesProps = {\n parsers?: Set<Parser>\n extension?: Record<KubbFile.Extname, KubbFile.Extname | ''>\n dryRun?: boolean\n}\n\ntype GetParseOptions = {\n parsers?: Set<Parser>\n extname?: KubbFile.Extname\n}\n\ntype Options = {\n events?: AsyncEventEmitter<AppEvents>\n}\n\nexport class FileProcessor {\n #limit = pLimit(100)\n events: AsyncEventEmitter<AppEvents>\n\n constructor({ events = new AsyncEventEmitter<AppEvents>() }: Options = {}) {\n this.events = events\n\n return this\n }\n\n get #defaultParser(): Set<Parser> {\n console.warn(`[parser] using default parsers, please consider using the \"use\" method to add custom parsers.`)\n\n return new Set<Parser>([typescriptParser, tsxParser, defaultParser])\n }\n\n async parse(file: KubbFile.ResolvedFile, { parsers = this.#defaultParser, extname }: GetParseOptions = {}): Promise<string> {\n if (!extname) {\n console.warn('[parser] No extname found, default parser will be used')\n return defaultParser.parse(file, { extname })\n }\n\n const parser = [...parsers].find((item) => item.extNames?.includes(extname))\n\n if (!parser) {\n console.warn(`[parser] No parser found for ${extname}, default parser will be used`)\n\n return defaultParser.parse(file, { extname })\n }\n\n return parser.parse(file, { extname })\n }\n\n async run(files: Array<KubbFile.ResolvedFile>, { parsers, dryRun, extension }: ProcessFilesProps = {}): Promise<KubbFile.ResolvedFile[]> {\n await this.events.emit('process:start', { files })\n\n let processed = 0\n const total = files.length\n\n const promises = files.map((resolvedFile, index) =>\n this.#limit(async () => {\n const extname = extension?.[resolvedFile.extname] || (path.extname(resolvedFile.path) as KubbFile.Extname)\n\n await this.events.emit('file:start', { file: resolvedFile, index, total })\n\n if (!dryRun) {\n const source = await this.parse(resolvedFile, { extname, parsers })\n await this.events.emit('process:progress', { file: resolvedFile, source, processed, percentage: (processed / total) * 100, total })\n }\n\n await this.events.emit('file:end', { file: resolvedFile, index, total })\n\n processed++\n }),\n )\n\n await Promise.all(promises)\n\n await this.events.emit('process:end', { files })\n\n return files\n }\n}\n","import type * as KubbFile from './KubbFile.ts'\nimport { Cache } from './utils/Cache.ts'\nimport { trimExtName } from './utils/trimExtName.ts'\nimport { orderBy } from 'natural-orderby'\nimport { createFile } from './createFile.ts'\nimport { FileProcessor, type ProcessFilesProps } from './FileProcessor.ts'\nimport { AsyncEventEmitter } from './utils/AsyncEventEmitter.ts'\nimport type { AppEvents } from './App.ts'\n\nfunction mergeFile<TMeta extends object = object>(a: KubbFile.File<TMeta>, b: KubbFile.File<TMeta>): KubbFile.File<TMeta> {\n return {\n ...a,\n sources: [...(a.sources || []), ...(b.sources || [])],\n imports: [...(a.imports || []), ...(b.imports || [])],\n exports: [...(a.exports || []), ...(b.exports || [])],\n }\n}\n\ntype Options = {\n events?: AsyncEventEmitter<AppEvents>\n}\n\nexport class FileManager {\n #cache = new Cache<KubbFile.ResolvedFile>()\n processor: FileProcessor\n\n constructor({ events = new AsyncEventEmitter<AppEvents>() }: Options = {}) {\n this.processor = new FileProcessor({ events })\n return this\n }\n\n async add(...files: Array<KubbFile.File>) {\n const resolvedFiles: Array<KubbFile.ResolvedFile> = []\n\n const mergedFiles = new Map<string, KubbFile.File>()\n\n files.forEach((file) => {\n const existing = mergedFiles.get(file.path)\n if (existing) {\n mergedFiles.set(file.path, mergeFile(existing, file))\n } else {\n mergedFiles.set(file.path, file)\n }\n })\n\n for (const file of mergedFiles.values()) {\n const existing = this.#cache.get(file.path)\n\n const merged = existing ? mergeFile(existing, file) : file\n const resolvedFile = createFile(merged)\n\n this.#cache.set(resolvedFile.path, resolvedFile)\n this.flush()\n\n resolvedFiles.push(resolvedFile)\n }\n\n return resolvedFiles\n }\n\n flush() {\n this.#cache.flush()\n }\n\n getByPath(path: KubbFile.Path): KubbFile.ResolvedFile | null {\n return this.#cache.get(path)\n }\n\n deleteByPath(path: KubbFile.Path): void {\n this.#cache.delete(path)\n }\n\n clear(): void {\n this.#cache.clear()\n }\n\n get files(): Array<KubbFile.ResolvedFile> {\n const cachedKeys = this.#cache.keys()\n\n // order by path length and if file is a barrel file\n const keys = orderBy(cachedKeys, [(v) => v.length, (v) => trimExtName(v).endsWith('index')])\n\n const files = keys.map((key) => this.#cache.get(key))\n\n return files.filter(Boolean)\n }\n\n async write(options: ProcessFilesProps): Promise<KubbFile.ResolvedFile[]> {\n return this.processor.run(this.files, options)\n }\n}\n","import { FileManager } from './FileManager.ts'\nimport { isFunction, isPromise } from 'remeda'\nimport type { Plugin } from './plugins/types.ts'\nimport type { Parser } from './parsers/types.ts'\nimport { AsyncEventEmitter } from './utils/AsyncEventEmitter.ts'\nimport type { App, AppContext, Component, AppEvents } from './App.ts'\n\ntype AppRenderer = {\n render(): Promise<void> | void\n renderToString(): Promise<string> | string\n waitUntilExit(): Promise<void>\n}\n\ntype RootRenderFunction<THostElement, TContext extends AppContext> = (this: TContext, container: THostElement, context: TContext) => AppRenderer\n\nexport type DefineApp<TContext extends AppContext> = (rootComponent?: Component, options?: TContext['options']) => App\n\nexport function defineApp<THostElement, TContext extends AppContext>(instance: RootRenderFunction<THostElement, TContext>): DefineApp<TContext> {\n function createApp(rootComponent: Component, options?: TContext['options']): App {\n const events = new AsyncEventEmitter<AppEvents>()\n const installedPlugins = new Set<Plugin>()\n const installedParsers = new Set<Parser>()\n const fileManager = new FileManager({ events })\n const context = {\n events,\n options,\n fileManager,\n installedPlugins,\n installedParsers,\n } as TContext\n\n const { render, renderToString, waitUntilExit } = instance.call(context, rootComponent, context)\n\n const app = {\n _component: rootComponent,\n async render() {\n if (isPromise(render)) {\n await render()\n } else {\n render()\n }\n },\n async renderToString() {\n return renderToString()\n },\n get files() {\n return fileManager.files\n },\n waitUntilExit,\n async addFile(...newFiles) {\n await fileManager.add(...newFiles)\n },\n use(pluginOrParser, ...options) {\n const args = Array.isArray(options) ? options : [options[0]]\n\n if (pluginOrParser.type === 'plugin') {\n if (installedPlugins.has(pluginOrParser)) {\n console.warn('Plugin has already been applied to target app.')\n } else {\n installedPlugins.add(pluginOrParser)\n }\n\n if (pluginOrParser.override && isFunction(pluginOrParser.override)) {\n const overrider = pluginOrParser.override\n\n const extraApp = (overrider as any)(app, context, ...args)\n Object.assign(app, extraApp)\n }\n }\n if (pluginOrParser.type === 'parser') {\n if (installedParsers.has(pluginOrParser)) {\n console.warn('Parser has already been applied to target app.')\n } else {\n installedParsers.add(pluginOrParser)\n }\n }\n\n if (pluginOrParser && isFunction(pluginOrParser.install)) {\n const installer = pluginOrParser.install\n\n ;(installer as any)(app, context, ...args)\n }\n\n return app\n },\n } as App\n\n events.emit('start', { app })\n\n return app\n }\n\n return createApp\n}\n","import { defineApp } from './defineApp.ts'\n\nexport const createApp = defineApp(() => {\n return {\n async render() {\n throw new Error('Method not implemented')\n },\n async renderToString() {\n throw new Error('Method not implemented')\n },\n async waitUntilExit() {\n throw new Error('Method not implemented')\n },\n }\n})\n"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
const
|
|
2
|
-
require('../createFileParser-BD8yn0LT.cjs');
|
|
1
|
+
const require_typescriptParser = require('../typescriptParser-BBbbmG5W.cjs');
|
|
3
2
|
|
|
4
|
-
exports.createExport =
|
|
5
|
-
exports.createImport =
|
|
6
|
-
exports.print =
|
|
7
|
-
exports.
|
|
3
|
+
exports.createExport = require_typescriptParser.createExport;
|
|
4
|
+
exports.createImport = require_typescriptParser.createImport;
|
|
5
|
+
exports.print = require_typescriptParser.print;
|
|
6
|
+
exports.typescriptParser = require_typescriptParser.typescriptParser;
|
|
@@ -1,51 +1,3 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import { t as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
//#region src/parsers/typescript.d.ts
|
|
6
|
-
type PrintOptions = {
|
|
7
|
-
source?: string;
|
|
8
|
-
baseName?: string;
|
|
9
|
-
scriptKind?: ts.ScriptKind;
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Convert AST TypeScript/TSX nodes to a string based on the TypeScript printer.
|
|
13
|
-
* Ensures consistent output across environments.
|
|
14
|
-
* Also works as a formatter when `source` is provided without `elements`.
|
|
15
|
-
*/
|
|
16
|
-
declare function print(elements?: Array<ts.Node>, {
|
|
17
|
-
source,
|
|
18
|
-
baseName,
|
|
19
|
-
scriptKind
|
|
20
|
-
}?: PrintOptions): string;
|
|
21
|
-
declare function createImport({
|
|
22
|
-
name,
|
|
23
|
-
path,
|
|
24
|
-
root,
|
|
25
|
-
isTypeOnly,
|
|
26
|
-
isNameSpace
|
|
27
|
-
}: {
|
|
28
|
-
name: string | Array<string | {
|
|
29
|
-
propertyName: string;
|
|
30
|
-
name?: string;
|
|
31
|
-
}>;
|
|
32
|
-
path: string;
|
|
33
|
-
root?: string;
|
|
34
|
-
isTypeOnly?: boolean;
|
|
35
|
-
isNameSpace?: boolean;
|
|
36
|
-
}): ts.ImportDeclaration;
|
|
37
|
-
declare function createExport({
|
|
38
|
-
path,
|
|
39
|
-
asAlias,
|
|
40
|
-
isTypeOnly,
|
|
41
|
-
name
|
|
42
|
-
}: {
|
|
43
|
-
path: string;
|
|
44
|
-
asAlias?: boolean;
|
|
45
|
-
isTypeOnly?: boolean;
|
|
46
|
-
name?: string | Array<ts.Identifier | string>;
|
|
47
|
-
}): ts.ExportDeclaration;
|
|
48
|
-
declare const typeScriptParser: Parser<object>;
|
|
49
|
-
//#endregion
|
|
50
|
-
export { createExport, createImport, print, typeScriptParser };
|
|
51
|
-
//# sourceMappingURL=typescript.d.cts.map
|
|
1
|
+
import "../App-zyf9KG3p.cjs";
|
|
2
|
+
import { i as typescriptParser, n as createImport, r as print, t as createExport } from "../typescriptParser-C-sBy1iR.cjs";
|
|
3
|
+
export { createExport, createImport, print, typescriptParser };
|
|
@@ -1,51 +1,3 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import { t as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
//#region src/parsers/typescript.d.ts
|
|
6
|
-
type PrintOptions = {
|
|
7
|
-
source?: string;
|
|
8
|
-
baseName?: string;
|
|
9
|
-
scriptKind?: ts.ScriptKind;
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Convert AST TypeScript/TSX nodes to a string based on the TypeScript printer.
|
|
13
|
-
* Ensures consistent output across environments.
|
|
14
|
-
* Also works as a formatter when `source` is provided without `elements`.
|
|
15
|
-
*/
|
|
16
|
-
declare function print(elements?: Array<ts.Node>, {
|
|
17
|
-
source,
|
|
18
|
-
baseName,
|
|
19
|
-
scriptKind
|
|
20
|
-
}?: PrintOptions): string;
|
|
21
|
-
declare function createImport({
|
|
22
|
-
name,
|
|
23
|
-
path,
|
|
24
|
-
root,
|
|
25
|
-
isTypeOnly,
|
|
26
|
-
isNameSpace
|
|
27
|
-
}: {
|
|
28
|
-
name: string | Array<string | {
|
|
29
|
-
propertyName: string;
|
|
30
|
-
name?: string;
|
|
31
|
-
}>;
|
|
32
|
-
path: string;
|
|
33
|
-
root?: string;
|
|
34
|
-
isTypeOnly?: boolean;
|
|
35
|
-
isNameSpace?: boolean;
|
|
36
|
-
}): ts.ImportDeclaration;
|
|
37
|
-
declare function createExport({
|
|
38
|
-
path,
|
|
39
|
-
asAlias,
|
|
40
|
-
isTypeOnly,
|
|
41
|
-
name
|
|
42
|
-
}: {
|
|
43
|
-
path: string;
|
|
44
|
-
asAlias?: boolean;
|
|
45
|
-
isTypeOnly?: boolean;
|
|
46
|
-
name?: string | Array<ts.Identifier | string>;
|
|
47
|
-
}): ts.ExportDeclaration;
|
|
48
|
-
declare const typeScriptParser: Parser<object>;
|
|
49
|
-
//#endregion
|
|
50
|
-
export { createExport, createImport, print, typeScriptParser };
|
|
51
|
-
//# sourceMappingURL=typescript.d.ts.map
|
|
1
|
+
import "../App-DZuROf6f.js";
|
|
2
|
+
import { i as typescriptParser, n as createImport, r as print, t as createExport } from "../typescriptParser-CtMmz0UV.js";
|
|
3
|
+
export { createExport, createImport, print, typescriptParser };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { i as
|
|
2
|
-
import "../createFileParser-Cix3AMLd.js";
|
|
1
|
+
import { i as typescriptParser, n as createImport, r as print, t as createExport } from "../typescriptParser-BBGeFKlP.js";
|
|
3
2
|
|
|
4
|
-
export { createExport, createImport, print,
|
|
3
|
+
export { createExport, createImport, print, typescriptParser };
|
package/dist/parsers.cjs
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const require_typescriptParser = require('./typescriptParser-BBbbmG5W.cjs');
|
|
2
|
+
const require_tsxParser = require('./tsxParser-HDf_3TMc.cjs');
|
|
3
|
+
|
|
4
|
+
exports.createParser = require_typescriptParser.createParser;
|
|
5
|
+
exports.defaultParser = require_tsxParser.defaultParser;
|
|
6
|
+
exports.tsxParser = require_tsxParser.tsxParser;
|
|
7
|
+
exports.typescriptParser = require_typescriptParser.typescriptParser;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { o as Parser, s as UserParser } from "./App-zyf9KG3p.cjs";
|
|
2
|
+
import { i as typescriptParser } from "./typescriptParser-C-sBy1iR.cjs";
|
|
3
|
+
|
|
4
|
+
//#region src/parsers/createParser.d.ts
|
|
5
|
+
declare function createParser<TOptions = any[], TMeta extends object = any>(parser: UserParser<TOptions, TMeta>): Parser<TOptions, TMeta>;
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region src/parsers/defaultParser.d.ts
|
|
8
|
+
declare const defaultParser: Parser<[], any>;
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/parsers/tsxParser.d.ts
|
|
11
|
+
declare const tsxParser: Parser<[], any>;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { createParser, defaultParser, tsxParser, typescriptParser };
|
|
14
|
+
//# sourceMappingURL=parsers.d.cts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { o as Parser, s as UserParser } from "./App-DZuROf6f.js";
|
|
2
|
+
import { i as typescriptParser } from "./typescriptParser-CtMmz0UV.js";
|
|
3
|
+
|
|
4
|
+
//#region src/parsers/createParser.d.ts
|
|
5
|
+
declare function createParser<TOptions = any[], TMeta extends object = any>(parser: UserParser<TOptions, TMeta>): Parser<TOptions, TMeta>;
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region src/parsers/defaultParser.d.ts
|
|
8
|
+
declare const defaultParser: Parser<[], any>;
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/parsers/tsxParser.d.ts
|
|
11
|
+
declare const tsxParser: Parser<[], any>;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { createParser, defaultParser, tsxParser, typescriptParser };
|
|
14
|
+
//# sourceMappingURL=parsers.d.ts.map
|
package/dist/parsers.js
ADDED