Files
dingtalk-workspace-cli/internal/app/schema_source_register.go
T
玉澜andCursor 2a1fe47c50 refactor(schema): retire JSON Catalog delivery for runtime assembly
Move schema authority to declare-time ParamDecl/ContractFinal and
ResolveSchemaBuild so CI/runtime assemble instead of shipping JSON
exclusions/meta-index as delivery sources.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 09:08:17 +08:00

37 lines
1.3 KiB
Go

// Copyright 2026 Alibaba Group
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package app
import (
"sync"
"github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/cli"
"github.com/spf13/cobra"
)
var registerSchemaRuntimeDeliveryOnce sync.Once
// registerSchemaRuntimeDelivery installs the ResolveSchemaBuild root factory
// for production Catalog / ResolveMeta delivery. Called from NewRootCommand
// (and optionally cmd entrypoints). Intentionally NOT an init() side effect:
// importing app from package cli_test must not flip package-cli tests onto
// the assembly path.
func registerSchemaRuntimeDelivery() {
registerSchemaRuntimeDeliveryOnce.Do(func() {
cli.RegisterSchemaSourceRoot(func() *cobra.Command {
return NewSchemaSourceRootCommand()
})
})
}