flexily 0.0.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +200 -0
- package/dist/classic/layout.d.ts +57 -0
- package/dist/classic/layout.d.ts.map +1 -0
- package/dist/classic/layout.js +1558 -0
- package/dist/classic/layout.js.map +1 -0
- package/dist/classic/node.d.ts +648 -0
- package/dist/classic/node.d.ts.map +1 -0
- package/dist/classic/node.js +1002 -0
- package/dist/classic/node.js.map +1 -0
- package/dist/constants.d.ts +58 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +70 -0
- package/dist/constants.js.map +1 -0
- package/dist/index-classic.d.ts +30 -0
- package/dist/index-classic.d.ts.map +1 -0
- package/dist/index-classic.js +57 -0
- package/dist/index-classic.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/layout-flex-lines.d.ts +77 -0
- package/dist/layout-flex-lines.d.ts.map +1 -0
- package/dist/layout-flex-lines.js +317 -0
- package/dist/layout-flex-lines.js.map +1 -0
- package/dist/layout-helpers.d.ts +48 -0
- package/dist/layout-helpers.d.ts.map +1 -0
- package/dist/layout-helpers.js +108 -0
- package/dist/layout-helpers.js.map +1 -0
- package/dist/layout-measure.d.ts +25 -0
- package/dist/layout-measure.d.ts.map +1 -0
- package/dist/layout-measure.js +231 -0
- package/dist/layout-measure.js.map +1 -0
- package/dist/layout-stats.d.ts +19 -0
- package/dist/layout-stats.d.ts.map +1 -0
- package/dist/layout-stats.js +37 -0
- package/dist/layout-stats.js.map +1 -0
- package/dist/layout-traversal.d.ts +28 -0
- package/dist/layout-traversal.d.ts.map +1 -0
- package/dist/layout-traversal.js +65 -0
- package/dist/layout-traversal.js.map +1 -0
- package/dist/layout-zero.d.ts +26 -0
- package/dist/layout-zero.d.ts.map +1 -0
- package/dist/layout-zero.js +1601 -0
- package/dist/layout-zero.js.map +1 -0
- package/dist/logger.d.ts +14 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +61 -0
- package/dist/logger.js.map +1 -0
- package/dist/node-zero.d.ts +702 -0
- package/dist/node-zero.d.ts.map +1 -0
- package/dist/node-zero.js +1268 -0
- package/dist/node-zero.js.map +1 -0
- package/dist/testing.d.ts +69 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +179 -0
- package/dist/testing.js.map +1 -0
- package/dist/trace.d.ts +74 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +191 -0
- package/dist/trace.js.map +1 -0
- package/dist/types.d.ts +170 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +43 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +41 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +197 -0
- package/dist/utils.js.map +1 -0
- package/package.json +58 -3
- package/src/CLAUDE.md +512 -0
- package/src/beorn-logger.d.ts +10 -0
- package/src/classic/layout.ts +1783 -0
- package/src/classic/node.ts +1121 -0
- package/src/constants.ts +81 -0
- package/src/index-classic.ts +110 -0
- package/src/index.ts +110 -0
- package/src/layout-flex-lines.ts +346 -0
- package/src/layout-helpers.ts +140 -0
- package/src/layout-measure.ts +259 -0
- package/src/layout-stats.ts +43 -0
- package/src/layout-traversal.ts +70 -0
- package/src/layout-zero.ts +1792 -0
- package/src/logger.ts +67 -0
- package/src/node-zero.ts +1412 -0
- package/src/testing.ts +209 -0
- package/src/trace.ts +252 -0
- package/src/types.ts +229 -0
- package/src/utils.ts +217 -0
package/src/logger.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger with auto-detection
|
|
3
|
+
*
|
|
4
|
+
* Uses @beorn/logger if available (when used in km), falls back to debug library.
|
|
5
|
+
* Supports the conditional `?.` pattern for zero-cost when disabled.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// Debug library style: (msg, ...args) - printf-style formatting
|
|
9
|
+
type DebugFn = (msg: string, ...args: unknown[]) => void
|
|
10
|
+
|
|
11
|
+
interface ConditionalLogger {
|
|
12
|
+
debug?: DebugFn
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
let _logger: ConditionalLogger | null = null
|
|
16
|
+
|
|
17
|
+
function createFallbackLogger(namespace: string): ConditionalLogger {
|
|
18
|
+
// Dynamic require to avoid bundling debug if not needed
|
|
19
|
+
try {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
21
|
+
const createDebug = require("debug") as (ns: string) => DebugFn & { enabled: boolean }
|
|
22
|
+
const debug = createDebug(namespace)
|
|
23
|
+
return { debug: debug.enabled ? debug : undefined }
|
|
24
|
+
} catch {
|
|
25
|
+
// debug not installed either
|
|
26
|
+
return { debug: undefined }
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
async function detectLogger(namespace: string): Promise<ConditionalLogger> {
|
|
31
|
+
try {
|
|
32
|
+
const { createLogger } = await import("loggily")
|
|
33
|
+
const logger = createLogger(namespace)
|
|
34
|
+
// Wrap @beorn/logger to accept printf-style args
|
|
35
|
+
if (logger.debug) {
|
|
36
|
+
const originalDebug = logger.debug
|
|
37
|
+
return {
|
|
38
|
+
debug: (msg: string, ...args: unknown[]) => {
|
|
39
|
+
// Format printf-style placeholders
|
|
40
|
+
let i = 0
|
|
41
|
+
const formatted = msg.replace(/%[sdOo]/g, () => {
|
|
42
|
+
const arg = args[i++]
|
|
43
|
+
if (arg === undefined) return ""
|
|
44
|
+
if (arg === null) return "null"
|
|
45
|
+
if (typeof arg === "object") return JSON.stringify(arg)
|
|
46
|
+
return String(arg)
|
|
47
|
+
})
|
|
48
|
+
originalDebug(formatted)
|
|
49
|
+
},
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return { debug: undefined }
|
|
53
|
+
} catch {
|
|
54
|
+
return createFallbackLogger(namespace)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Eagerly initialize (top-level await)
|
|
59
|
+
// This runs once at module load time
|
|
60
|
+
_logger = await detectLogger("flexily:layout")
|
|
61
|
+
|
|
62
|
+
/** Logger instance - use with optional chaining: `log.debug?.('message')` */
|
|
63
|
+
export const log: ConditionalLogger = {
|
|
64
|
+
get debug() {
|
|
65
|
+
return _logger?.debug
|
|
66
|
+
},
|
|
67
|
+
}
|