(level: LogLevel | "none")
| 1825 | } |
| 1826 | |
| 1827 | function withMinimumLogLevel(level: LogLevel | "none") { |
| 1828 | return defineHandlerFor<Logging>().with((self) => { |
| 1829 | const disabledLevels = new Set( |
| 1830 | level === "none" ? logLevels : logLevels.slice(0, logLevels.indexOf(level)), |
| 1831 | ); |
| 1832 | return self.handle( |
| 1833 | (name): name is Logging["name"] => |
| 1834 | typeof name === "string" && |
| 1835 | name.startsWith("logging.") && |
| 1836 | disabledLevels.has(name.slice("logging.".length) as LogLevel), |
| 1837 | function* ({ effect, resume }): Generator<Logging, void> { |
| 1838 | effect.defaultHandler = ({ resume }) => resume(); |
| 1839 | yield effect; |
| 1840 | resume(); |
| 1841 | }, |
| 1842 | ); |
| 1843 | }); |
| 1844 | } |
| 1845 | |
| 1846 | const program1 = effected(function* () { |
| 1847 | yield* logDebug("Debug message"); |
no test coverage detected