@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 = ['dir-gen-name', 'sdk-factory-path'];
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,4 +1,3 @@
1
1
  import { Project } from 'ts-morph';
2
2
  export declare const project: Project;
3
3
  export declare const rawStringTypes: string[];
4
- export declare const sdkPaths: string[][];
@@ -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, sdkPaths } from './config.js';
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
- export const generateAPI = ({ dirGenName, sdkFactoryPath, }) => {
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');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scaleway/generate-react-sdk",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "generate react sdk",
5
5
  "type": "module",
6
6
  "private": false,