@manyducks.co/dolla 2.0.0-alpha.61 → 2.0.0-alpha.63

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.
Files changed (40) hide show
  1. package/README.md +20 -26
  2. package/dist/core/context.d.ts +23 -4
  3. package/dist/core/index.d.ts +5 -3
  4. package/dist/core/markup.d.ts +6 -11
  5. package/dist/core/nodes/dynamic.d.ts +3 -3
  6. package/dist/core/nodes/element.d.ts +2 -0
  7. package/dist/core/nodes/repeat.d.ts +1 -1
  8. package/dist/core/nodes/view.d.ts +4 -4
  9. package/dist/core/scheduler.d.ts +17 -0
  10. package/dist/core/signals.d.ts +48 -14
  11. package/dist/core/views/default-crash-view.d.ts +1 -1
  12. package/dist/core/views/for.d.ts +23 -0
  13. package/dist/core/views/show.d.ts +26 -0
  14. package/dist/hooks/index.d.ts +5 -8
  15. package/dist/hooks.js +26 -31
  16. package/dist/hooks.js.map +1 -1
  17. package/dist/i18n.js +23 -23
  18. package/dist/i18n.js.map +1 -1
  19. package/dist/index.js +69 -53
  20. package/dist/index.js.map +1 -1
  21. package/dist/jsx-dev-runtime.js +1 -1
  22. package/dist/jsx-runtime.js +1 -1
  23. package/dist/logger-B7RBYtzP.js +82 -0
  24. package/dist/logger-B7RBYtzP.js.map +1 -0
  25. package/dist/{markup-CX27GJ1M.js → markup-CW_lWDfq.js} +410 -325
  26. package/dist/markup-CW_lWDfq.js.map +1 -0
  27. package/dist/router/router.d.ts +10 -5
  28. package/dist/{router-CjCkk4dA.js → router-CBGsADQ4.js} +100 -100
  29. package/dist/router-CBGsADQ4.js.map +1 -0
  30. package/dist/router.js +1 -1
  31. package/dist/{signals-gCwiIe5X.js → signals-DbDmN2gr.js} +190 -161
  32. package/dist/signals-DbDmN2gr.js.map +1 -0
  33. package/docs/signals.md +16 -14
  34. package/notes/scratch.md +23 -1
  35. package/package.json +3 -2
  36. package/dist/logger-Bl496yfY.js +0 -91
  37. package/dist/logger-Bl496yfY.js.map +0 -1
  38. package/dist/markup-CX27GJ1M.js.map +0 -1
  39. package/dist/router-CjCkk4dA.js.map +0 -1
  40. package/dist/signals-gCwiIe5X.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-B7RBYtzP.js","sources":["../src/core/logger.ts"],"sourcesContent":["import { isString } from \"../typeChecking.js\";\nimport type { Env } from \"../types.js\";\nimport { createMatcher, noOp, okhash, type MatcherFunction } from \"../utils.js\";\nimport { getEnv } from \"./env.js\";\nimport { get, untracked, type MaybeSignal } from \"./signals.js\";\n\nexport interface LogLevels {\n info: boolean | Env;\n log: boolean | Env;\n warn: boolean | Env;\n error: boolean | Env;\n}\n\nexport interface Logger {\n info(...args: any[]): void;\n log(...args: any[]): void;\n warn(...args: any[]): void;\n error(...args: any[]): void;\n crash(error: Error): Error;\n}\n\nexport interface LoggerOptions {\n /**\n * Tag value to print with logs.\n */\n tag?: string;\n\n /**\n * Label for tag value. Will be printed without a label if not specified.\n */\n tagName?: string;\n\n /**\n * Console object to use for logging (mostly for testing). Uses window.console by default.\n */\n console?: any;\n}\n\nexport interface LoggerCrashProps {\n error: Error;\n loggerName: string;\n tag?: string;\n tagName?: string;\n}\n\nlet levels: LogLevels = {\n info: \"development\",\n log: \"development\",\n warn: \"development\",\n error: true,\n};\nlet match: MatcherFunction = createMatcher(\"*,-dolla.*\");\nlet crashListeners: ((context: LoggerCrashProps) => void)[] = [];\nlet isCrashed = false;\n\n/**\n * Listen for logged crashes.\n */\nexport function onLoggerCrash(listener: (context: LoggerCrashProps) => void) {\n crashListeners.push(listener);\n\n return function cancel() {\n crashListeners.splice(crashListeners.indexOf(listener), 1);\n };\n}\n\nexport function createLogger(name: MaybeSignal<string>, options?: LoggerOptions): Logger {\n const _console = options?.console ?? _getDefaultConsole();\n\n const bind = (method: keyof LogLevels) => {\n let _name = untracked(name);\n if (levels[method] === false || (isString(levels[method]) && levels[method] !== getEnv()) || !match(_name)) {\n return noOp;\n } else {\n let label = `%c${_name}`;\n if (options?.tag) {\n if (options.tagName) {\n label += ` %c[${options.tagName}: %c${options.tag}%c]`;\n } else {\n label += ` %c[%c${options.tag}%c]`;\n }\n } else {\n label += `%c%c%c`;\n }\n return _console[method].bind(\n _console,\n label,\n `color:${okhash(label)};font-weight:bold`,\n `color:#777`,\n `color:#aaa`,\n `color:#777`,\n );\n }\n };\n\n return {\n get info() {\n return bind(\"info\");\n },\n get log() {\n return bind(\"log\");\n },\n get warn() {\n return bind(\"warn\");\n },\n get error() {\n return bind(\"error\");\n },\n crash(error: Error) {\n if (!isCrashed) {\n isCrashed = true;\n const ctx: LoggerCrashProps = {\n error,\n loggerName: get(name),\n tag: options?.tag,\n tagName: options?.tagName,\n };\n\n for (const listener of crashListeners) {\n listener(ctx);\n }\n\n throw error;\n }\n\n return error;\n },\n };\n}\n\nexport function setLogFilter(filter: string | RegExp) {\n match = createMatcher(filter);\n}\n\nexport function setLogLevels(options: Partial<LogLevels>) {\n for (const key in options) {\n const value = options[key as keyof LogLevels];\n if (value) {\n levels[key as keyof LogLevels] = value;\n }\n }\n}\n\nfunction _getDefaultConsole() {\n if (typeof window !== \"undefined\" && window.console) {\n return window.console;\n }\n if (typeof global !== \"undefined\" && global.console) {\n return global.console;\n }\n}\n"],"names":["levels","match","createMatcher","crashListeners","isCrashed","onLoggerCrash","listener","createLogger","name","options","_console","_getDefaultConsole","bind","method","_name","untracked","isString","getEnv","noOp","label","okhash","error","ctx","get","setLogFilter","filter","setLogLevels","key","value"],"mappings":";;AA6CA,IAAIA,IAAoB;AAAA,EACtB,MAAM;AAAA,EACN,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AACT,GACIC,IAAyBC,EAAc,YAAY,GACnDC,IAA0D,CAAC,GAC3DC,IAAY;AAKT,SAASC,EAAcC,GAA+C;AAC3E,SAAAH,EAAe,KAAKG,CAAQ,GAErB,WAAkB;AACvB,IAAAH,EAAe,OAAOA,EAAe,QAAQG,CAAQ,GAAG,CAAC;AAAA,EAC3D;AACF;AAEgB,SAAAC,EAAaC,GAA2BC,GAAiC;AACjF,QAAAC,KAAWD,KAAA,gBAAAA,EAAS,YAAWE,EAAmB,GAElDC,IAAO,CAACC,MAA4B;AACpC,QAAAC,IAAQC,EAAUP,CAAI;AAC1B,QAAIR,EAAOa,CAAM,MAAM,MAAUG,EAAShB,EAAOa,CAAM,CAAC,KAAKb,EAAOa,CAAM,MAAMI,OAAa,CAAChB,EAAMa,CAAK;AAChG,aAAAI;AACF;AACD,UAAAC,IAAQ,KAAKL,CAAK;AACtB,aAAIL,KAAA,QAAAA,EAAS,MACPA,EAAQ,UACVU,KAAS,OAAOV,EAAQ,OAAO,OAAOA,EAAQ,GAAG,QAExCU,KAAA,SAASV,EAAQ,GAAG,QAGtBU,KAAA,UAEJT,EAASG,CAAM,EAAE;AAAA,QACtBH;AAAA,QACAS;AAAA,QACA,SAASC,EAAOD,CAAK,CAAC;AAAA,QACtB;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ;AAEO,SAAA;AAAA,IACL,IAAI,OAAO;AACT,aAAOP,EAAK,MAAM;AAAA,IACpB;AAAA,IACA,IAAI,MAAM;AACR,aAAOA,EAAK,KAAK;AAAA,IACnB;AAAA,IACA,IAAI,OAAO;AACT,aAAOA,EAAK,MAAM;AAAA,IACpB;AAAA,IACA,IAAI,QAAQ;AACV,aAAOA,EAAK,OAAO;AAAA,IACrB;AAAA,IACA,MAAMS,GAAc;AAClB,UAAI,CAACjB,GAAW;AACF,QAAAA,IAAA;AACZ,cAAMkB,IAAwB;AAAA,UAC5B,OAAAD;AAAA,UACA,YAAYE,EAAIf,CAAI;AAAA,UACpB,KAAKC,KAAA,gBAAAA,EAAS;AAAA,UACd,SAASA,KAAA,gBAAAA,EAAS;AAAA,QACpB;AAEA,mBAAWH,KAAYH;AACrB,UAAAG,EAASgB,CAAG;AAGR,cAAAD;AAAA,MAAA;AAGD,aAAAA;AAAA,IAAA;AAAA,EAEX;AACF;AAEO,SAASG,EAAaC,GAAyB;AACpD,EAAAxB,IAAQC,EAAcuB,CAAM;AAC9B;AAEO,SAASC,EAAajB,GAA6B;AACxD,aAAWkB,KAAOlB,GAAS;AACnB,UAAAmB,IAAQnB,EAAQkB,CAAsB;AAC5C,IAAIC,MACF5B,EAAO2B,CAAsB,IAAIC;AAAA,EACnC;AAEJ;AAEA,SAASjB,IAAqB;AAC5B,MAAI,OAAO,SAAW,OAAe,OAAO;AAC1C,WAAO,OAAO;AAEhB,MAAI,OAAO,SAAW,OAAe,OAAO;AAC1C,WAAO,OAAO;AAElB;"}