@@ -4,10 +4,16 @@ import { createProviderIdentifierConfig } from "./provider-identifiers.js"
44
55const config = createProviderIdentifierConfig ( {
66 providerIdentifiers : {
7+ anthropic : "anthropic" ,
8+ openaiNative : "openai-native" ,
79 openrouter : "openrouter" ,
10+ poe : "poe" ,
811 vercelAiGateway : "vercel-ai-gateway" ,
912 } ,
10- retiredProviderIdentifiers : { } ,
13+ retiredProviderIdentifiers : {
14+ groq : "groq" ,
15+ roo : "roo" ,
16+ } ,
1117} )
1218const rule = config . plugins . zoo . rules [ "no-raw-provider-identifiers" ]
1319
@@ -40,3 +46,59 @@ ruleTester.run("no-raw-provider-identifiers provider map keys", rule, {
4046 } ,
4147 ] ,
4248} )
49+
50+ ruleTester . run ( "no-raw-provider-identifiers provider-like values" , rule , {
51+ valid : [
52+ "const apiProvider = retiredProviderIdentifiers.roo" ,
53+ "const provider = retiredProviderIdentifiers.groq" ,
54+ 'const config = { apiProvider: "external-provider" }' ,
55+ "const config = { apiProvider: providerIdentifiers.poe }" ,
56+ 'const response = { protocol: "anthropic", format: "openrouter" }' ,
57+ ] ,
58+ invalid : [
59+ {
60+ code : 'const apiProvider = "roo"' ,
61+ errors : [
62+ {
63+ messageId : "useCanonical" ,
64+ data : { replacement : "retiredProviderIdentifiers.roo" , value : "roo" } ,
65+ type : "Literal" ,
66+ } ,
67+ ] ,
68+ } ,
69+ {
70+ code : "const persistedProvider = `groq`" ,
71+ errors : [
72+ {
73+ messageId : "useCanonical" ,
74+ data : { replacement : "retiredProviderIdentifiers.groq" , value : "groq" } ,
75+ type : "TemplateLiteral" ,
76+ } ,
77+ ] ,
78+ } ,
79+ {
80+ code : 'const config = { apiProvider: "poe", imageProvider: `openrouter` }' ,
81+ errors : [
82+ { messageId : "useCanonical" , data : { replacement : "providerIdentifiers.poe" , value : "poe" } } ,
83+ {
84+ messageId : "useCanonical" ,
85+ data : { replacement : "providerIdentifiers.openrouter" , value : "openrouter" } ,
86+ } ,
87+ ] ,
88+ } ,
89+ {
90+ code : 'config["apiProvider"] = "poe"; if (imageProvider === "openrouter") {}' ,
91+ errors : [
92+ { messageId : "useCanonical" , data : { replacement : "providerIdentifiers.poe" , value : "poe" } } ,
93+ {
94+ messageId : "useCanonical" ,
95+ data : { replacement : "providerIdentifiers.openrouter" , value : "openrouter" } ,
96+ } ,
97+ ] ,
98+ } ,
99+ {
100+ code : 'switch (config.apiProvider) { case "poe": break; case providerIdentifiers.openrouter: break }' ,
101+ errors : [ { messageId : "useCanonical" , data : { replacement : "providerIdentifiers.poe" , value : "poe" } } ] ,
102+ } ,
103+ ] ,
104+ } )
0 commit comments