Skip to content

Commit 62eaf0a

Browse files
committed
feat(chore): export alias for bc
1 parent 27e8daa commit 62eaf0a

File tree

4 files changed

+312
-9
lines changed

4 files changed

+312
-9
lines changed

packages/sdk/package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@
1010
"type": "module",
1111
"exports": {
1212
".": {
13-
"types": "./dist/index.gen.d.ts",
14-
"import": "./dist/index.gen.js",
15-
"require": "./dist/index.gen.cjs",
16-
"default": "./dist/index.gen.js"
13+
"types": "./dist/index.d.ts",
14+
"import": "./dist/index.js",
15+
"require": "./dist/index.cjs",
16+
"default": "./dist/index.js"
1717
},
1818
"./*": {
19-
"types": "./dist/*/index.gen.d.ts",
20-
"import": "./dist/*/index.gen.js",
21-
"require": "./dist/*/index.gen.cjs",
22-
"default": "./dist/*/index.gen.js"
19+
"types": "./dist/*/index.d.ts",
20+
"import": "./dist/*/index.js",
21+
"require": "./dist/*/index.cjs",
22+
"default": "./dist/*/index.js"
2323
}
2424
},
2525
"repository": {

packages/sdk/src/index.ts

Lines changed: 240 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,240 @@
1+
/* Auto-generated. Do not edit manually. */
2+
3+
import { Accountv3 } from '@scaleway/sdk-account'
4+
import { Applesiliconv1alpha1 } from '@scaleway/sdk-applesilicon'
5+
import { AuditTrailv1alpha1 } from '@scaleway/sdk-audit-trail'
6+
import { Baremetalv1 , Baremetalv3 } from '@scaleway/sdk-baremetal'
7+
import { Billingv2beta1 } from '@scaleway/sdk-billing'
8+
import { Blockv1 , Blockv1alpha1 } from '@scaleway/sdk-block'
9+
import { Cockpitv1 } from '@scaleway/sdk-cockpit'
10+
import { Containerv1beta1 } from '@scaleway/sdk-container'
11+
import { Dediboxv1 } from '@scaleway/sdk-dedibox'
12+
import { Domainv2beta1 } from '@scaleway/sdk-domain'
13+
import { EdgeServicesv1beta1 } from '@scaleway/sdk-edge-services'
14+
import { Filev1alpha1 } from '@scaleway/sdk-file'
15+
import { Flexibleipv1alpha1 } from '@scaleway/sdk-flexibleip'
16+
import { Functionv1beta1 } from '@scaleway/sdk-function'
17+
import { Iamv1alpha1 } from '@scaleway/sdk-iam'
18+
import { Inferencev1 , Inferencev1beta1 } from '@scaleway/sdk-inference'
19+
import { Instancev1 } from '@scaleway/sdk-instance'
20+
import { Interlinkv1beta1 } from '@scaleway/sdk-interlink'
21+
import { Iotv1 } from '@scaleway/sdk-iot'
22+
import { Ipamv1 } from '@scaleway/sdk-ipam'
23+
import { Jobsv1alpha1 } from '@scaleway/sdk-jobs'
24+
import { K8sv1 } from '@scaleway/sdk-k8s'
25+
import { KeyManagerv1alpha1 } from '@scaleway/sdk-key-manager'
26+
import { Lbv1 } from '@scaleway/sdk-lb'
27+
import { Marketplacev2 } from '@scaleway/sdk-marketplace'
28+
import { Mnqv1beta1 } from '@scaleway/sdk-mnq'
29+
import { Mongodbv1alpha1 } from '@scaleway/sdk-mongodb'
30+
import { ProductCatalogv2alpha1 } from '@scaleway/sdk-product-catalog'
31+
import { Qaasv1alpha1 } from '@scaleway/sdk-qaas'
32+
import { Rdbv1 } from '@scaleway/sdk-rdb'
33+
import { Redisv1 } from '@scaleway/sdk-redis'
34+
import { Registryv1 } from '@scaleway/sdk-registry'
35+
import { Secretv1beta1 } from '@scaleway/sdk-secret'
36+
import { ServerlessSqldbv1alpha1 } from '@scaleway/sdk-serverless-sqldb'
37+
import { Temv1alpha1 } from '@scaleway/sdk-tem'
38+
import { Testv1 } from '@scaleway/sdk-test'
39+
import { Vpcv2 } from '@scaleway/sdk-vpc'
40+
import { Vpcgwv1 , Vpcgwv2 } from '@scaleway/sdk-vpcgw'
41+
import { Webhostingv1 } from '@scaleway/sdk-webhosting'
42+
43+
export { Accountv3 }
44+
export const Account = {
45+
v3: Accountv3,
46+
}
47+
48+
export { Applesiliconv1alpha1 }
49+
export const Applesilicon = {
50+
v1alpha1: Applesiliconv1alpha1,
51+
}
52+
53+
export { AuditTrailv1alpha1 }
54+
export const AuditTrail = {
55+
v1alpha1: AuditTrailv1alpha1,
56+
}
57+
58+
export { Baremetalv1, Baremetalv3 }
59+
export const Baremetal = {
60+
v1: Baremetalv1,
61+
v3: Baremetalv3,
62+
}
63+
64+
export { Billingv2beta1 }
65+
export const Billing = {
66+
v2beta1: Billingv2beta1,
67+
}
68+
69+
export { Blockv1, Blockv1alpha1 }
70+
export const Block = {
71+
v1: Blockv1,
72+
v1alpha1: Blockv1alpha1,
73+
}
74+
75+
export { Cockpitv1 }
76+
export const Cockpit = {
77+
v1: Cockpitv1,
78+
}
79+
80+
export { Containerv1beta1 }
81+
export const Container = {
82+
v1beta1: Containerv1beta1,
83+
}
84+
85+
export { Dediboxv1 }
86+
export const Dedibox = {
87+
v1: Dediboxv1,
88+
}
89+
90+
export { Domainv2beta1 }
91+
export const Domain = {
92+
v2beta1: Domainv2beta1,
93+
}
94+
95+
export { EdgeServicesv1beta1 }
96+
export const EdgeServices = {
97+
v1beta1: EdgeServicesv1beta1,
98+
}
99+
100+
export { Filev1alpha1 }
101+
export const File = {
102+
v1alpha1: Filev1alpha1,
103+
}
104+
105+
export { Flexibleipv1alpha1 }
106+
export const Flexibleip = {
107+
v1alpha1: Flexibleipv1alpha1,
108+
}
109+
110+
export { Functionv1beta1 }
111+
export const Function = {
112+
v1beta1: Functionv1beta1,
113+
}
114+
115+
export { Iamv1alpha1 }
116+
export const Iam = {
117+
v1alpha1: Iamv1alpha1,
118+
}
119+
120+
export { Inferencev1, Inferencev1beta1 }
121+
export const Inference = {
122+
v1: Inferencev1,
123+
v1beta1: Inferencev1beta1,
124+
}
125+
126+
export { Instancev1 }
127+
export const Instance = {
128+
v1: Instancev1,
129+
}
130+
131+
export { Interlinkv1beta1 }
132+
export const Interlink = {
133+
v1beta1: Interlinkv1beta1,
134+
}
135+
136+
export { Iotv1 }
137+
export const Iot = {
138+
v1: Iotv1,
139+
}
140+
141+
export { Ipamv1 }
142+
export const Ipam = {
143+
v1: Ipamv1,
144+
}
145+
146+
export { Jobsv1alpha1 }
147+
export const Jobs = {
148+
v1alpha1: Jobsv1alpha1,
149+
}
150+
151+
export { K8sv1 }
152+
export const K8s = {
153+
v1: K8sv1,
154+
}
155+
156+
export { KeyManagerv1alpha1 }
157+
export const KeyManager = {
158+
v1alpha1: KeyManagerv1alpha1,
159+
}
160+
161+
export { Lbv1 }
162+
export const Lb = {
163+
v1: Lbv1,
164+
}
165+
166+
export { Marketplacev2 }
167+
export const Marketplace = {
168+
v2: Marketplacev2,
169+
}
170+
171+
export { Mnqv1beta1 }
172+
export const Mnq = {
173+
v1beta1: Mnqv1beta1,
174+
}
175+
176+
export { Mongodbv1alpha1 }
177+
export const Mongodb = {
178+
v1alpha1: Mongodbv1alpha1,
179+
}
180+
181+
export { ProductCatalogv2alpha1 }
182+
export const ProductCatalog = {
183+
v2alpha1: ProductCatalogv2alpha1,
184+
}
185+
186+
export { Qaasv1alpha1 }
187+
export const Qaas = {
188+
v1alpha1: Qaasv1alpha1,
189+
}
190+
191+
export { Rdbv1 }
192+
export const Rdb = {
193+
v1: Rdbv1,
194+
}
195+
196+
export { Redisv1 }
197+
export const Redis = {
198+
v1: Redisv1,
199+
}
200+
201+
export { Registryv1 }
202+
export const Registry = {
203+
v1: Registryv1,
204+
}
205+
206+
export { Secretv1beta1 }
207+
export const Secret = {
208+
v1beta1: Secretv1beta1,
209+
}
210+
211+
export { ServerlessSqldbv1alpha1 }
212+
export const ServerlessSqldb = {
213+
v1alpha1: ServerlessSqldbv1alpha1,
214+
}
215+
216+
export { Temv1alpha1 }
217+
export const Tem = {
218+
v1alpha1: Temv1alpha1,
219+
}
220+
221+
export { Testv1 }
222+
export const Test = {
223+
v1: Testv1,
224+
}
225+
226+
export { Vpcv2 }
227+
export const Vpc = {
228+
v2: Vpcv2,
229+
}
230+
231+
export { Vpcgwv1, Vpcgwv2 }
232+
export const Vpcgw = {
233+
v1: Vpcgwv1,
234+
v2: Vpcgwv2,
235+
}
236+
237+
export { Webhostingv1 }
238+
export const Webhosting = {
239+
v1: Webhostingv1,
240+
}

packages/sdk/vite.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { defaultConfig } from '../../vite.config'
88
export default mergeConfig(defineConfig(defaultConfig), {
99
build: {
1010
lib: {
11-
entry: 'src/index.gen.ts',
11+
entry: 'src/index.ts',
1212
},
1313
},
1414
})

scripts/generateAlias.ts

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import { readdirSync, statSync, writeFileSync } from 'fs'
2+
import { join } from 'path'
3+
4+
const GENERATED_PATH = 'packages_generated'
5+
const OUTPUT_PATH = 'packages/sdk/src/index.ts'
6+
7+
// Convertit "foo_bar" ou "foo-bar" en "FooBar"
8+
const toPascal = (s: string) =>
9+
s
10+
.split(/[_-]/)
11+
.map(part => part.charAt(0).toUpperCase() + part.slice(1))
12+
.join('')
13+
14+
// Convertit "foo_bar" en "foo-bar" pour le slug npm
15+
const toSlug = (s: string) => s.replace(/_/g, '-')
16+
17+
const services = readdirSync(GENERATED_PATH).filter(folder => {
18+
const fullPath = join(GENERATED_PATH, folder)
19+
20+
return statSync(fullPath).isDirectory()
21+
})
22+
23+
let output = `/* Auto-generated. Do not edit manually. */\n\n`
24+
25+
for (const service of services) {
26+
const slug = toSlug(service) // ex. "audit-trail"
27+
const pascal = toPascal(service) // ex. "AuditTrail"
28+
const srcPath = join(GENERATED_PATH, service, 'src')
29+
30+
let versions: string[] = []
31+
try {
32+
versions = readdirSync(srcPath).filter(vFolder => {
33+
const vPath = join(srcPath, vFolder)
34+
35+
return statSync(vPath).isDirectory() && /^v[0-9a-z]+$/i.test(vFolder)
36+
})
37+
} catch {
38+
console.warn(`⚠️ Pas de dossier 'src' pour ${service}, ignoré.`)
39+
// eslint-disable-next-line no-continue
40+
continue
41+
}
42+
// eslint-disable-next-line no-continue
43+
if (versions.length === 0) continue
44+
45+
const imports: string[] = []
46+
const mappings: string[] = []
47+
48+
for (const version of versions) {
49+
const importName = `${pascal}${version}` // ex. AuditTrailv1alpha1
50+
imports.push(`import { ${importName} } from '@scaleway/sdk-${slug}'`)
51+
mappings.push(` ${version}: ${importName},`)
52+
}
53+
54+
output += `${imports.join('\n') }\n\n`
55+
const importedNames = imports
56+
.map(line => /{ (.*?) }/.exec(line)![1])
57+
.join(', ')
58+
output += `export { ${importedNames} }\n`
59+
output += `export const ${pascal} = {\n${mappings.join('\n')}\n}\n\n`
60+
}
61+
62+
writeFileSync(OUTPUT_PATH, output)
63+
console.log(`✅ Fichier généré : ${OUTPUT_PATH}`)

0 commit comments

Comments
 (0)