func export()

in Generator/Sources/NeedleFramework/Generating/DependencyGraphExporter.swift [46:64]


    func export(_ components: [Component], with imports: [String], to path: String, using executor: SequenceExecutor, withTimeout timeout: TimeInterval, include headerDocPath: String?) throws {
        // Enqueue tasks.
        let taskHandleTuples = enqueueExportDependencyProviders(for: components, using: executor)
        let dynamicTtaskHandleTuples = enqueueExportDynamicDependencyProviders(for: components, using: executor)
        let headerDocContentHandle = try enqueueLoadHeaderDoc(from: headerDocPath, using: executor)

        // Wait for execution to complete.
        let providers = try awaitSerialization(using: taskHandleTuples, withTimeout: timeout)
        let dynamicProviders = try awaitSerialization(using: dynamicTtaskHandleTuples, withTimeout: timeout)
        let headerDocContent = try headerDocContentHandle?.await(withTimeout: timeout) ?? ""

        let fileContents = OutputSerializer(providers: providers, dynamicProviders: dynamicProviders, imports: imports, headerDocContent: headerDocContent).serialize()
        let currentFileContents = try? String(contentsOfFile: path, encoding: .utf8)
        guard currentFileContents != fileContents else {
            info("Not writing the file as content is unchanged")
            return
        }
        try fileContents.write(toFile: path, atomically: true, encoding: .utf8)
    }