Skip to content

Commit 3ba9d43

Browse files
committed
feat(parameters): add esmodule support (#1736)
1 parent 3977c60 commit 3ba9d43

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+247
-162
lines changed

Diff for: packages/parameters/jest.config.js renamed to packages/parameters/jest.config.cjs

+3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ module.exports = {
55
},
66
runner: 'groups',
77
preset: 'ts-jest',
8+
moduleNameMapper: {
9+
'^(\\.{1,2}/.*)\\.js$': '$1',
10+
},
811
transform: {
912
'^.+\\.ts?$': 'ts-jest',
1013
},

Diff for: packages/parameters/package.json

+58-39
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@
1717
"test:e2e:nodejs20x": "RUNTIME=nodejs20x jest --group=e2e",
1818
"test:e2e": "jest --group=e2e",
1919
"watch": "jest --watch",
20-
"build": "tsc --build --force",
20+
"build:cjs": "tsc --build --force && echo '{ \"type\": \"commonjs\" }' > lib/cjs/package.json",
21+
"build:esm": "tsc --project tsconfig.esm.json && echo '{ \"type\": \"module\" }' > lib/esm/package.json",
22+
"build": "npm run build:esm & npm run build:cjs",
2123
"lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .",
2224
"lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .",
2325
"prebuild": "rimraf ./lib",
24-
"prepack": "node ../../.github/scripts/release_patch_package_json.js ."
26+
"prepack": "rimraf ./lib/*.tsbuildinfo && node ../../.github/scripts/release_patch_package_json.js ."
2527
},
2628
"lint-staged": {
2729
"*.{js,ts}": "npm run lint-fix"
@@ -30,93 +32,110 @@
3032
"license": "MIT-0",
3133
"exports": {
3234
".": {
33-
"import": "./lib/index.js",
34-
"require": "./lib/index.js"
35+
"require": {
36+
"types": "./lib/cjs/index.d.ts",
37+
"default": "./lib/cjs/index.js"
38+
},
39+
"import": {
40+
"types": "./lib/esm/index.d.ts",
41+
"default": "./lib/esm/index.js"
42+
}
3543
},
3644
"./base/types": {
37-
"import": "./lib/types/BaseProvider.d.ts",
38-
"require": "./lib/types/BaseProvider.d.ts"
45+
"import": "./lib/esm/types/BaseProvider.d.ts",
46+
"require": "./lib/cjs/types/BaseProvider.d.ts"
3947
},
4048
"./base": {
41-
"import": "./lib/base/index.js",
42-
"require": "./lib/base/index.js"
49+
"import": "./lib/esm/base/index.js",
50+
"require": "./lib/cjs/base/index.js"
4351
},
4452
"./ssm/types": {
45-
"import": "./lib/types/SSMProvider.d.ts",
46-
"require": "./lib/types/SSMProvider.d.ts"
53+
"import": "./lib/esm/types/SSMProvider.d.ts",
54+
"require": "./lib/cjs/types/SSMProvider.d.ts"
4755
},
4856
"./ssm": {
49-
"import": "./lib/ssm/index.js",
50-
"require": "./lib/ssm/index.js"
57+
"import": "./lib/esm/ssm/index.js",
58+
"require": "./lib/cjs/ssm/index.js"
5159
},
5260
"./secrets/types": {
53-
"import": "./lib/types/SecretsProvider.d.ts",
54-
"require": "./lib/types/SecretsProvider.d.ts"
61+
"import": "./lib/esm/types/SecretsProvider.d.ts",
62+
"require": "./lib/cjs/types/SecretsProvider.d.ts"
5563
},
5664
"./secrets": {
57-
"import": "./lib/secrets/index.js",
58-
"require": "./lib/secrets/index.js"
65+
"import": "./lib/esm/secrets/index.js",
66+
"require": "./lib/cjs/secrets/index.js"
5967
},
6068
"./dynamodb/types": {
61-
"import": "./lib/types/AppConfigProvider.d.ts",
62-
"require": "./lib/types/AppConfigProvider.d.ts"
69+
"import": "./lib/esm/types/AppConfigProvider.d.ts",
70+
"require": "./lib/cjs/types/AppConfigProvider.d.ts"
6371
},
6472
"./dynamodb": {
65-
"import": "./lib/dynamodb/index.js",
66-
"require": "./lib/dynamodb/index.js"
73+
"import": "./lib/esm/dynamodb/index.js",
74+
"require": "./lib/cjs/dynamodb/index.js"
6775
},
6876
"./appconfig/types": {
69-
"import": "./lib/appconfig/index.js",
70-
"require": "./lib/appconfig/index.js"
77+
"import": "./lib/esm/appconfig/index.js",
78+
"require": "./lib/cjs/appconfig/index.js"
7179
},
7280
"./appconfig": {
73-
"import": "./lib/appconfig/index.js",
74-
"require": "./lib/appconfig/index.js"
81+
"import": "./lib/esm/appconfig/index.js",
82+
"require": "./lib/cjs/appconfig/index.js"
7583
},
7684
"./errors": {
77-
"import": "./lib/errors.js",
78-
"require": "./lib/errors.js"
85+
"import": "./lib/esm/errors.js",
86+
"require": "./lib/cjs/errors.js"
7987
}
8088
},
8189
"typesVersions": {
8290
"*": {
8391
"base/types": [
84-
"lib/types/BaseProvider.d.ts"
92+
"lib/cjs/types/BaseProvider.d.ts",
93+
"lib/esm/types/BaseProvider.d.ts"
8594
],
8695
"base": [
87-
"lib/base/index.d.ts"
96+
"lib/cjs/base/index.d.ts",
97+
"lib/esm/base/index.d.ts"
8898
],
8999
"ssm/types": [
90-
"lib/types/SSMProvider.d.ts"
100+
"lib/cjs/types/SSMProvider.d.ts",
101+
"lib/esm/types/SSMProvider.d.ts"
91102
],
92103
"ssm": [
93-
"lib/ssm/index.d.ts"
104+
"lib/cjs/ssm/index.d.ts",
105+
"lib/esm/ssm/index.d.ts"
94106
],
95107
"secrets/types": [
96-
"lib/types/SecretsProvider.d.ts"
108+
"lib/cjs/types/SecretsProvider.d.ts",
109+
"lib/esm/types/SecretsProvider.d.ts"
97110
],
98111
"secrets": [
99-
"lib/secrets/index.d.ts"
112+
"lib/cjs/secrets/index.d.ts",
113+
"lib/esm/secrets/index.d.ts"
100114
],
101115
"dynamodb/types": [
102-
"./lib/types/DynamoDBProvider.d.ts"
116+
"./lib/cjs/types/DynamoDBProvider.d.ts",
117+
"./lib/esm/types/DynamoDBProvider.d.ts"
103118
],
104119
"dynamodb": [
105-
"lib/dynamodb/index.d.ts"
120+
"lib/cjs/dynamodb/index.d.ts",
121+
"lib/esm/dynamodb/index.d.ts"
106122
],
107123
"appconfig/types": [
108-
"./lib/types/AppConfigProvider.d.ts"
124+
"./lib/cjs/types/AppConfigProvider.d.ts",
125+
"./lib/esm/types/AppConfigProvider.d.ts"
109126
],
110127
"appconfig": [
111-
"lib/appconfig/index.d.ts"
128+
"lib/cjs/appconfig/index.d.ts",
129+
"lib/esm/appconfig/index.d.ts"
112130
],
113131
"errors": [
114-
"lib/errors.d.ts"
132+
"lib/cjs/errors.d.ts",
133+
"lib/esm/errors.d.ts"
115134
]
116135
}
117136
},
118-
"main": "./lib/index.js",
119-
"types": "./lib/index.d.ts",
137+
"types": "./lib/cjs/index.d.ts",
138+
"main": "./lib/cjs/index.js",
120139
"files": [
121140
"lib"
122141
],

Diff for: packages/parameters/src/appconfig/AppConfigProvider.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { BaseProvider, DEFAULT_PROVIDERS } from '../base';
1+
import { BaseProvider } from '../base/BaseProvider.js';
22
import {
33
AppConfigDataClient,
44
StartConfigurationSessionCommand,
@@ -9,8 +9,8 @@ import type {
99
AppConfigProviderOptions,
1010
AppConfigGetOptions,
1111
AppConfigGetOutput,
12-
} from '../types/AppConfigProvider';
13-
import { APPCONFIG_TOKEN_EXPIRATION } from '../constants';
12+
} from '../types/AppConfigProvider.js';
13+
import { APPCONFIG_TOKEN_EXPIRATION } from '../constants.js';
1414

1515
/**
1616
* ## Intro
@@ -361,4 +361,4 @@ class AppConfigProvider extends BaseProvider {
361361
}
362362
}
363363

364-
export { AppConfigProvider, DEFAULT_PROVIDERS };
364+
export { AppConfigProvider };

Diff for: packages/parameters/src/appconfig/getAppConfig.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import { AppConfigProvider, DEFAULT_PROVIDERS } from './AppConfigProvider';
1+
import { AppConfigProvider } from './AppConfigProvider.js';
2+
import { DEFAULT_PROVIDERS } from '../base/index.js';
23
import type {
34
AppConfigGetOutput,
45
GetAppConfigOptions,
5-
} from '../types/AppConfigProvider';
6+
} from '../types/AppConfigProvider.js';
67

78
/**
89
* ## Intro

Diff for: packages/parameters/src/appconfig/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export * from './AppConfigProvider';
2-
export * from './getAppConfig';
1+
export { AppConfigProvider } from './AppConfigProvider.js';
2+
export { getAppConfig } from './getAppConfig.js';

Diff for: packages/parameters/src/base/BaseProvider.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ import {
55
isSdkClient,
66
isString,
77
} from '@aws-lambda-powertools/commons';
8-
import { GetOptions } from './GetOptions';
9-
import { GetMultipleOptions } from './GetMultipleOptions';
10-
import { ExpirableValue } from './ExpirableValue';
11-
import { GetParameterError, TransformParameterError } from '../errors';
12-
import { EnvironmentVariablesService } from '../config/EnvironmentVariablesService';
13-
import { transformValue } from './transformValue';
8+
import { GetOptions } from './GetOptions.js';
9+
import { GetMultipleOptions } from './GetMultipleOptions.js';
10+
import { ExpirableValue } from './ExpirableValue.js';
11+
import { GetParameterError, TransformParameterError } from '../errors.js';
12+
import { EnvironmentVariablesService } from '../config/EnvironmentVariablesService.js';
13+
import { transformValue } from './transformValue.js';
1414
import type {
1515
BaseProviderInterface,
1616
GetMultipleOptionsInterface,
1717
GetOptionsInterface,
18-
} from '../types/BaseProvider';
18+
} from '../types/BaseProvider.js';
1919

2020
/**
2121
* Base class for all providers.

Diff for: packages/parameters/src/base/DefaultProviders.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { BaseProviderInterface } from '../types/BaseProvider';
1+
import type { BaseProviderInterface } from '../types/BaseProvider.js';
22

33
// These providers are dinamycally intialized on first use of the helper functions
44
const DEFAULT_PROVIDERS: Record<string, BaseProviderInterface> = {};

Diff for: packages/parameters/src/base/ExpirableValue.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { ExpirableValueInterface } from '../types/BaseProvider';
1+
import type { ExpirableValueInterface } from '../types/BaseProvider.js';
22

33
/**
44
* Class to represent a value that can expire.

Diff for: packages/parameters/src/base/GetMultipleOptions.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { GetOptions } from './GetOptions';
2-
import { EnvironmentVariablesService } from '../config/EnvironmentVariablesService';
3-
import type { GetMultipleOptionsInterface } from '../types/BaseProvider';
1+
import { GetOptions } from './GetOptions.js';
2+
import { EnvironmentVariablesService } from '../config/EnvironmentVariablesService.js';
3+
import type { GetMultipleOptionsInterface } from '../types/BaseProvider.js';
44

55
/**
66
* Options for the `getMultiple` method.

Diff for: packages/parameters/src/base/GetOptions.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { EnvironmentVariablesService } from '../config/EnvironmentVariablesService';
2-
import { DEFAULT_MAX_AGE_SECS } from '../constants';
1+
import { EnvironmentVariablesService } from '../config/EnvironmentVariablesService.js';
2+
import { DEFAULT_MAX_AGE_SECS } from '../constants.js';
33
import type {
44
GetOptionsInterface,
55
TransformOptions,
6-
} from '../types/BaseProvider';
6+
} from '../types/BaseProvider.js';
77

88
/**
99
* Options for the `get` method.

Diff for: packages/parameters/src/base/index.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export * from './DefaultProviders';
2-
export * from './BaseProvider';
3-
export * from './GetOptions';
4-
export * from './GetMultipleOptions';
1+
export { BaseProvider } from './BaseProvider.js';
2+
export { DEFAULT_PROVIDERS, clearCaches } from './DefaultProviders.js';
3+
export { GetOptions } from './GetOptions.js';
4+
export { GetMultipleOptions } from './GetMultipleOptions.js';

Diff for: packages/parameters/src/base/transformValue.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import type { JSONValue } from '@aws-lambda-powertools/commons/types';
22
import { isString } from '@aws-lambda-powertools/commons';
33
import { fromBase64 } from '@aws-sdk/util-base64-node';
4-
import { TRANSFORM_METHOD_BINARY, TRANSFORM_METHOD_JSON } from '../constants';
5-
import { TransformParameterError } from '../errors';
6-
import type { TransformOptions } from '../types/BaseProvider';
4+
import {
5+
TRANSFORM_METHOD_BINARY,
6+
TRANSFORM_METHOD_JSON,
7+
} from '../constants.js';
8+
import { TransformParameterError } from '../errors.js';
9+
import type { TransformOptions } from '../types/BaseProvider.js';
710

811
/**
912
* Utility function to transform a value.

Diff for: packages/parameters/src/config/EnvironmentVariablesService.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { ConfigServiceInterface } from './ConfigServiceInterface';
2-
import { DEFAULT_MAX_AGE_SECS } from '../constants';
1+
import { ConfigServiceInterface } from '../types/ConfigServiceInterface.js';
2+
import { DEFAULT_MAX_AGE_SECS } from '../constants.js';
33
import { EnvironmentVariablesService as CommonEnvironmentVariablesService } from '@aws-lambda-powertools/commons';
44

55
class EnvironmentVariablesService

Diff for: packages/parameters/src/dynamodb/DynamoDBProvider.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { BaseProvider } from '../base';
1+
import { BaseProvider } from '../base/BaseProvider.js';
22
import {
33
DynamoDBClient,
44
GetItemCommand,
@@ -12,7 +12,7 @@ import type {
1212
DynamoDBGetMultipleOptions,
1313
DynamoDBGetOutput,
1414
DynamoDBGetMultipleOutput,
15-
} from '../types/DynamoDBProvider';
15+
} from '../types/DynamoDBProvider.js';
1616
import type {
1717
GetItemCommandInput,
1818
QueryCommandInput,

Diff for: packages/parameters/src/dynamodb/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export * from './DynamoDBProvider';
1+
export { DynamoDBProvider } from './DynamoDBProvider.js';

Diff for: packages/parameters/src/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export * from './errors';
2-
export * from './constants';
1+
export * from './errors.js';
2+
export * from './constants.js';

Diff for: packages/parameters/src/secrets/SecretsProvider.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { BaseProvider } from '../base';
1+
import { BaseProvider } from '../base/BaseProvider.js';
22
import {
33
SecretsManagerClient,
44
GetSecretValueCommand,
@@ -8,7 +8,7 @@ import type {
88
SecretsProviderOptions,
99
SecretsGetOptions,
1010
SecretsGetOutput,
11-
} from '../types/SecretsProvider';
11+
} from '../types/SecretsProvider.js';
1212

1313
/**
1414
* ## Intro

Diff for: packages/parameters/src/secrets/getSecret.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { DEFAULT_PROVIDERS } from '../base';
2-
import { SecretsProvider } from './SecretsProvider';
1+
import { DEFAULT_PROVIDERS } from '../base/DefaultProviders.js';
2+
import { SecretsProvider } from './SecretsProvider.js';
33
import type {
44
SecretsGetOptions,
55
SecretsGetOutput,
6-
} from '../types/SecretsProvider';
6+
} from '../types/SecretsProvider.js';
77

88
/**
99
* ## Intro

Diff for: packages/parameters/src/secrets/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export * from './SecretsProvider';
2-
export * from './getSecret';
1+
export { SecretsProvider } from './SecretsProvider.js';
2+
export { getSecret } from './getSecret.js';

Diff for: packages/parameters/src/ssm/SSMProvider.ts

+10-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { BaseProvider, DEFAULT_PROVIDERS } from '../base';
2-
import { transformValue } from '../base/transformValue';
3-
import { GetParameterError } from '../errors';
4-
import { DEFAULT_MAX_AGE_SECS } from '../constants';
1+
import { BaseProvider } from '../base/BaseProvider.js';
2+
import { transformValue } from '../base/transformValue.js';
3+
import { GetParameterError } from '../errors.js';
4+
import { DEFAULT_MAX_AGE_SECS } from '../constants.js';
55
import {
66
SSMClient,
77
GetParameterCommand,
@@ -26,7 +26,12 @@ import type {
2626
SSMGetParametersByNameOptions,
2727
SSMSplitBatchAndDecryptParametersOutputType,
2828
SSMGetParametersByNameFromCacheOutputType,
29+
<<<<<<< HEAD
2930
} from '../types/SSMProvider';
31+
=======
32+
} from '../types/SSMProvider.js';
33+
import type { PaginationConfiguration } from '@aws-sdk/types';
34+
>>>>>>> 6153463c (feat(parameters): add esmodule support (#1736))
3035

3136
/**
3237
* ## Intro
@@ -902,4 +907,4 @@ class SSMProvider extends BaseProvider {
902907
}
903908
}
904909

905-
export { SSMProvider, DEFAULT_PROVIDERS };
910+
export { SSMProvider };

0 commit comments

Comments
 (0)