Skip to content

Commit d9a62ea

Browse files
authored
feat(parameters): add esmodule support (#1736)
1 parent c7a8511 commit d9a62ea

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

+245
-164
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
@@ -16,11 +16,13 @@
1616
"test:e2e:nodejs18x": "RUNTIME=nodejs18x jest --group=e2e",
1717
"test:e2e": "jest --group=e2e",
1818
"watch": "jest --watch",
19-
"build": "tsc --build --force",
19+
"build:cjs": "tsc --build --force && echo '{ \"type\": \"commonjs\" }' > lib/cjs/package.json",
20+
"build:esm": "tsc --project tsconfig.esm.json && echo '{ \"type\": \"module\" }' > lib/esm/package.json",
21+
"build": "npm run build:esm & npm run build:cjs",
2022
"lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .",
2123
"lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .",
2224
"prebuild": "rimraf ./lib",
23-
"prepack": "node ../../.github/scripts/release_patch_package_json.js ."
25+
"prepack": "rimraf ./lib/*.tsbuildinfo && node ../../.github/scripts/release_patch_package_json.js ."
2426
},
2527
"lint-staged": {
2628
"*.{js,ts}": "npm run lint-fix"
@@ -29,93 +31,110 @@
2931
"license": "MIT-0",
3032
"exports": {
3133
".": {
32-
"import": "./lib/index.js",
33-
"require": "./lib/index.js"
34+
"require": {
35+
"types": "./lib/cjs/index.d.ts",
36+
"default": "./lib/cjs/index.js"
37+
},
38+
"import": {
39+
"types": "./lib/esm/index.d.ts",
40+
"default": "./lib/esm/index.js"
41+
}
3442
},
3543
"./base/types": {
36-
"import": "./lib/types/BaseProvider.d.ts",
37-
"require": "./lib/types/BaseProvider.d.ts"
44+
"import": "./lib/esm/types/BaseProvider.d.ts",
45+
"require": "./lib/cjs/types/BaseProvider.d.ts"
3846
},
3947
"./base": {
40-
"import": "./lib/base/index.js",
41-
"require": "./lib/base/index.js"
48+
"import": "./lib/esm/base/index.js",
49+
"require": "./lib/cjs/base/index.js"
4250
},
4351
"./ssm/types": {
44-
"import": "./lib/types/SSMProvider.d.ts",
45-
"require": "./lib/types/SSMProvider.d.ts"
52+
"import": "./lib/esm/types/SSMProvider.d.ts",
53+
"require": "./lib/cjs/types/SSMProvider.d.ts"
4654
},
4755
"./ssm": {
48-
"import": "./lib/ssm/index.js",
49-
"require": "./lib/ssm/index.js"
56+
"import": "./lib/esm/ssm/index.js",
57+
"require": "./lib/cjs/ssm/index.js"
5058
},
5159
"./secrets/types": {
52-
"import": "./lib/types/SecretsProvider.d.ts",
53-
"require": "./lib/types/SecretsProvider.d.ts"
60+
"import": "./lib/esm/types/SecretsProvider.d.ts",
61+
"require": "./lib/cjs/types/SecretsProvider.d.ts"
5462
},
5563
"./secrets": {
56-
"import": "./lib/secrets/index.js",
57-
"require": "./lib/secrets/index.js"
64+
"import": "./lib/esm/secrets/index.js",
65+
"require": "./lib/cjs/secrets/index.js"
5866
},
5967
"./dynamodb/types": {
60-
"import": "./lib/types/AppConfigProvider.d.ts",
61-
"require": "./lib/types/AppConfigProvider.d.ts"
68+
"import": "./lib/esm/types/AppConfigProvider.d.ts",
69+
"require": "./lib/cjs/types/AppConfigProvider.d.ts"
6270
},
6371
"./dynamodb": {
64-
"import": "./lib/dynamodb/index.js",
65-
"require": "./lib/dynamodb/index.js"
72+
"import": "./lib/esm/dynamodb/index.js",
73+
"require": "./lib/cjs/dynamodb/index.js"
6674
},
6775
"./appconfig/types": {
68-
"import": "./lib/appconfig/index.js",
69-
"require": "./lib/appconfig/index.js"
76+
"import": "./lib/esm/appconfig/index.js",
77+
"require": "./lib/cjs/appconfig/index.js"
7078
},
7179
"./appconfig": {
72-
"import": "./lib/appconfig/index.js",
73-
"require": "./lib/appconfig/index.js"
80+
"import": "./lib/esm/appconfig/index.js",
81+
"require": "./lib/cjs/appconfig/index.js"
7482
},
7583
"./errors": {
76-
"import": "./lib/errors.js",
77-
"require": "./lib/errors.js"
84+
"import": "./lib/esm/errors.js",
85+
"require": "./lib/cjs/errors.js"
7886
}
7987
},
8088
"typesVersions": {
8189
"*": {
8290
"base/types": [
83-
"lib/types/BaseProvider.d.ts"
91+
"lib/cjs/types/BaseProvider.d.ts",
92+
"lib/esm/types/BaseProvider.d.ts"
8493
],
8594
"base": [
86-
"lib/base/index.d.ts"
95+
"lib/cjs/base/index.d.ts",
96+
"lib/esm/base/index.d.ts"
8797
],
8898
"ssm/types": [
89-
"lib/types/SSMProvider.d.ts"
99+
"lib/cjs/types/SSMProvider.d.ts",
100+
"lib/esm/types/SSMProvider.d.ts"
90101
],
91102
"ssm": [
92-
"lib/ssm/index.d.ts"
103+
"lib/cjs/ssm/index.d.ts",
104+
"lib/esm/ssm/index.d.ts"
93105
],
94106
"secrets/types": [
95-
"lib/types/SecretsProvider.d.ts"
107+
"lib/cjs/types/SecretsProvider.d.ts",
108+
"lib/esm/types/SecretsProvider.d.ts"
96109
],
97110
"secrets": [
98-
"lib/secrets/index.d.ts"
111+
"lib/cjs/secrets/index.d.ts",
112+
"lib/esm/secrets/index.d.ts"
99113
],
100114
"dynamodb/types": [
101-
"./lib/types/DynamoDBProvider.d.ts"
115+
"./lib/cjs/types/DynamoDBProvider.d.ts",
116+
"./lib/esm/types/DynamoDBProvider.d.ts"
102117
],
103118
"dynamodb": [
104-
"lib/dynamodb/index.d.ts"
119+
"lib/cjs/dynamodb/index.d.ts",
120+
"lib/esm/dynamodb/index.d.ts"
105121
],
106122
"appconfig/types": [
107-
"./lib/types/AppConfigProvider.d.ts"
123+
"./lib/cjs/types/AppConfigProvider.d.ts",
124+
"./lib/esm/types/AppConfigProvider.d.ts"
108125
],
109126
"appconfig": [
110-
"lib/appconfig/index.d.ts"
127+
"lib/cjs/appconfig/index.d.ts",
128+
"lib/esm/appconfig/index.d.ts"
111129
],
112130
"errors": [
113-
"lib/errors.d.ts"
131+
"lib/cjs/errors.d.ts",
132+
"lib/esm/errors.d.ts"
114133
]
115134
}
116135
},
117-
"main": "./lib/index.js",
118-
"types": "./lib/index.d.ts",
136+
"types": "./lib/cjs/index.d.ts",
137+
"main": "./lib/cjs/index.js",
119138
"files": [
120139
"lib"
121140
],

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

+3-3
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,7 +9,7 @@ import type {
99
AppConfigProviderOptions,
1010
AppConfigGetOptions,
1111
AppConfigGetOutput,
12-
} from '../types/AppConfigProvider';
12+
} from '../types/AppConfigProvider.js';
1313
import {
1414
addUserAgentMiddleware,
1515
isSdkClient,
@@ -360,4 +360,4 @@ class AppConfigProvider extends BaseProvider {
360360
}
361361
}
362362

363-
export { AppConfigProvider, DEFAULT_PROVIDERS };
363+
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
@@ -3,17 +3,17 @@ import {
33
isRecord,
44
isString,
55
} from '@aws-lambda-powertools/commons';
6-
import { GetOptions } from './GetOptions';
7-
import { GetMultipleOptions } from './GetMultipleOptions';
8-
import { ExpirableValue } from './ExpirableValue';
9-
import { GetParameterError, TransformParameterError } from '../errors';
10-
import { EnvironmentVariablesService } from '../config/EnvironmentVariablesService';
11-
import { transformValue } from './transformValue';
6+
import { GetOptions } from './GetOptions.js';
7+
import { GetMultipleOptions } from './GetMultipleOptions.js';
8+
import { ExpirableValue } from './ExpirableValue.js';
9+
import { GetParameterError, TransformParameterError } from '../errors.js';
10+
import { EnvironmentVariablesService } from '../config/EnvironmentVariablesService.js';
11+
import { transformValue } from './transformValue.js';
1212
import type {
1313
BaseProviderInterface,
1414
GetMultipleOptionsInterface,
1515
GetOptionsInterface,
16-
} from '../types/BaseProvider';
16+
} from '../types/BaseProvider.js';
1717

1818
/**
1919
* 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,
@@ -11,7 +11,7 @@ import type {
1111
DynamoDBGetMultipleOptions,
1212
DynamoDBGetOutput,
1313
DynamoDBGetMultipleOutput,
14-
} from '../types/DynamoDBProvider';
14+
} from '../types/DynamoDBProvider.js';
1515
import type {
1616
GetItemCommandInput,
1717
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
import {
1313
addUserAgentMiddleware,
1414
isSdkClient,

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

+6-6
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,
@@ -25,7 +25,7 @@ import type {
2525
SSMGetParametersByNameOptions,
2626
SSMSplitBatchAndDecryptParametersOutputType,
2727
SSMGetParametersByNameFromCacheOutputType,
28-
} from '../types/SSMProvider';
28+
} from '../types/SSMProvider.js';
2929
import type { PaginationConfiguration } from '@aws-sdk/types';
3030
import {
3131
addUserAgentMiddleware,
@@ -915,4 +915,4 @@ class SSMProvider extends BaseProvider {
915915
}
916916
}
917917

918-
export { SSMProvider, DEFAULT_PROVIDERS };
918+
export { SSMProvider };

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

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { SSMProvider, DEFAULT_PROVIDERS } from './SSMProvider';
2-
import type { SSMGetOptions, SSMGetOutput } from '../types/SSMProvider';
1+
import { DEFAULT_PROVIDERS } from '../base/DefaultProviders.js';
2+
import { SSMProvider } from './SSMProvider.js';
3+
import type { SSMGetOptions, SSMGetOutput } from '../types/SSMProvider.js';
34

45
/**
56
* ## Intro

0 commit comments

Comments
 (0)