@scaleway/generate-react-sdk 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/buildAPI.js
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { generateAPI } from './generateAPI/index.js';
|
|
3
3
|
import { parseArgsCLI } from './parseArgsCLI.js';
|
|
4
|
-
const requiresValueArgs = [
|
|
4
|
+
const requiresValueArgs = [
|
|
5
|
+
'dir-gen-name',
|
|
6
|
+
'sdk-factory-path',
|
|
7
|
+
'package-name-filter',
|
|
8
|
+
];
|
|
5
9
|
// Parse CLI arguments
|
|
6
10
|
const { cliArgs } = parseArgsCLI({ requiresValueArgs });
|
|
7
11
|
const dirGenName = cliArgs['dir-gen-name'] || 'src/__generated__';
|
|
8
12
|
const sdkFactoryPath = cliArgs['sdk-factory-path'] ||
|
|
9
13
|
'../contexts/SDKCacheProvider/sdkFactory';
|
|
14
|
+
const packageNameFilter = cliArgs['package-name-filter'] || '@scaleway/sdk-';
|
|
10
15
|
generateAPI({
|
|
11
16
|
dirGenName,
|
|
12
17
|
sdkFactoryPath,
|
|
18
|
+
packageNameFilter,
|
|
13
19
|
});
|
|
14
20
|
process.stdout.write('✅ generateAPI !');
|
|
@@ -1,24 +1,5 @@
|
|
|
1
|
-
import { readFileSync } from 'node:fs';
|
|
2
|
-
import { resolve } from 'node:path';
|
|
3
1
|
import { Project } from 'ts-morph';
|
|
4
2
|
// Load the entry file
|
|
5
3
|
export const project = new Project();
|
|
6
4
|
// We dont want these types to be suffixed by namespaces
|
|
7
5
|
export const rawStringTypes = ['string', 'Blob', 'string[]'];
|
|
8
|
-
// Read package.json
|
|
9
|
-
const packageJson = JSON.parse(readFileSync(resolve(resolve('./'), 'package.json'), 'utf8'));
|
|
10
|
-
// Generate SDK paths from dependencies
|
|
11
|
-
export const sdkPaths = [
|
|
12
|
-
...Object.keys(packageJson.dependencies ?? {}),
|
|
13
|
-
...Object.keys(packageJson.devDependencies ?? {}),
|
|
14
|
-
...Object.keys(packageJson.peerDependencies ?? {}),
|
|
15
|
-
]
|
|
16
|
-
.filter(dep => dep.startsWith('@scaleway/sdk'))
|
|
17
|
-
.filter(dep => !['@scaleway/sdk-client'].includes(dep))
|
|
18
|
-
.map(dep => {
|
|
19
|
-
const declarationFile = 'dist/index.gen.d.ts';
|
|
20
|
-
return [
|
|
21
|
-
dep,
|
|
22
|
-
resolve(resolve('./'), `./node_modules/${dep}/${declarationFile}`),
|
|
23
|
-
];
|
|
24
|
-
});
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export declare const directoryOfSrcFolder: string;
|
|
2
|
-
export declare const generateAPI: ({ dirGenName, sdkFactoryPath, }: {
|
|
2
|
+
export declare const generateAPI: ({ dirGenName, sdkFactoryPath, packageNameFilter, }: {
|
|
3
3
|
dirGenName: string;
|
|
4
4
|
sdkFactoryPath: string;
|
|
5
|
+
/**
|
|
6
|
+
* Name of the package starting with
|
|
7
|
+
*/
|
|
8
|
+
packageNameFilter: string;
|
|
5
9
|
}) => void;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { exec } from 'node:child_process';
|
|
2
|
-
import { existsSync, rmdirSync } from 'node:fs';
|
|
2
|
+
import { existsSync, readFileSync, rmdirSync } from 'node:fs';
|
|
3
3
|
import { join, resolve } from 'node:path';
|
|
4
4
|
import { exit, stdout } from 'node:process';
|
|
5
|
-
import { project
|
|
5
|
+
import { project } from './config.js';
|
|
6
6
|
import { emitFiles } from './emitFiles.js';
|
|
7
7
|
import { generateType } from './generateType.js';
|
|
8
8
|
import { processDeclarationFile } from './processDeclarationFile.js';
|
|
9
9
|
export const directoryOfSrcFolder = join(resolve('./'));
|
|
10
|
-
|
|
10
|
+
// Read package.json
|
|
11
|
+
const packageJson = JSON.parse(readFileSync(resolve(resolve('./'), 'package.json'), 'utf8'));
|
|
12
|
+
export const generateAPI = ({ dirGenName, sdkFactoryPath, packageNameFilter, }) => {
|
|
11
13
|
let result = {};
|
|
12
14
|
const dir = join(directoryOfSrcFolder, dirGenName);
|
|
13
15
|
if (existsSync(dir)) {
|
|
@@ -15,6 +17,21 @@ export const generateAPI = ({ dirGenName, sdkFactoryPath, }) => {
|
|
|
15
17
|
recursive: true,
|
|
16
18
|
});
|
|
17
19
|
}
|
|
20
|
+
// Generate SDK paths from dependencies
|
|
21
|
+
const sdkPaths = [
|
|
22
|
+
...Object.keys(packageJson.dependencies ?? {}),
|
|
23
|
+
...Object.keys(packageJson.devDependencies ?? {}),
|
|
24
|
+
...Object.keys(packageJson.peerDependencies ?? {}),
|
|
25
|
+
]
|
|
26
|
+
.filter(dep => dep.startsWith(packageNameFilter))
|
|
27
|
+
.filter(dep => !['@scaleway/sdk-client'].includes(dep))
|
|
28
|
+
.map(dep => {
|
|
29
|
+
const declarationFile = 'dist/index.gen.d.ts';
|
|
30
|
+
return [
|
|
31
|
+
dep,
|
|
32
|
+
resolve(resolve('./'), `./node_modules/${dep}/${declarationFile}`),
|
|
33
|
+
];
|
|
34
|
+
});
|
|
18
35
|
for (const [packageName, sdkPath] of sdkPaths) {
|
|
19
36
|
if (!(packageName && sdkPath)) {
|
|
20
37
|
throw new Error('packageName or sdkPath is undefined');
|