(
features: Iterable<LuaLibFeature>,
luaTarget: LuaTarget,
emitHost: EmitHost,
luaLibModulesInfo: LuaLibModulesInfo = getLuaLibModulesInfo(luaTarget, emitHost)
)
| 189 | } |
| 190 | |
| 191 | export function resolveRecursiveLualibFeatures( |
| 192 | features: Iterable<LuaLibFeature>, |
| 193 | luaTarget: LuaTarget, |
| 194 | emitHost: EmitHost, |
| 195 | luaLibModulesInfo: LuaLibModulesInfo = getLuaLibModulesInfo(luaTarget, emitHost) |
| 196 | ): LuaLibFeature[] { |
| 197 | const loadedFeatures = new Set<LuaLibFeature>(); |
| 198 | const result: LuaLibFeature[] = []; |
| 199 | |
| 200 | function load(feature: LuaLibFeature): void { |
| 201 | if (loadedFeatures.has(feature)) return; |
| 202 | loadedFeatures.add(feature); |
| 203 | |
| 204 | const dependencies = luaLibModulesInfo[feature]?.dependencies; |
| 205 | if (dependencies) { |
| 206 | dependencies.forEach(load); |
| 207 | } |
| 208 | |
| 209 | result.push(feature); |
| 210 | } |
| 211 | |
| 212 | for (const feature of features) { |
| 213 | load(feature); |
| 214 | } |
| 215 | |
| 216 | return result; |
| 217 | } |
| 218 | |
| 219 | export function loadInlineLualibFeatures( |
| 220 | features: Iterable<LuaLibFeature>, |
no test coverage detected