UNPKG

1.31 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3/**
4 * Writes lib/sdk-api-metadata.generated.ts from the metadata gathered from the
5 * aws-sdk package.
6 */
7
8const fs = require('fs');
9const path = require('path');
10
11const packageInfo = require('aws-sdk/package.json');
12const sdkMetadata = require('aws-sdk/apis/metadata.json');
13
14fs.writeFileSync(
15 path.resolve(__dirname, '..', 'lib', 'sdk-api-metadata.generated.ts'),
16 [
17 'export interface AwsSdkMetadata {',
18 ' readonly [service: string]: {',
19 ' readonly name: string;',
20 ' readonly cors?: boolean;',
21 ' readonly dualstackAvailable?: boolean;',
22 ' readonly prefix?: string;',
23 ' readonly versions?: readonly string[];',
24 ' readonly xmlNoDefaultLists?: boolean;',
25 ' readonly [key: string]: unknown;',
26 ' };',
27 '}',
28 '',
29 // The generated code is probably not going to be super clean as far as linters are concerned...
30 '/* eslint-disable */',
31 '/* tslint:disable */',
32 '',
33 // Just mention where the data comes from, as a basic courtesy...
34 '/**',
35 ` * Extracted from ${packageInfo.name} version ${packageInfo.version} (${packageInfo.license}).`,
36 ' */',
37 // And finally, we export the data:
38 `export const metadata: AwsSdkMetadata = ${JSON.stringify(sdkMetadata, null, 2)};`,
39 ].join('\n'),
40);