@aws/pdk
Version:
All documentation is located at: https://aws.github.io/aws-pdk
43 lines • 5.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TypeSafeApiCommandEnvironment = void 0;
/*! Copyright [Amazon.com](http://amazon.com/), Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0 */
const monorepo_1 = require("../../../../monorepo");
const projen_1 = require("projen");
const javascript_1 = require("projen/lib/javascript");
const utils_1 = require("./utils");
/**
* Component for setting up the environemnt for type safe api commands
*/
class TypeSafeApiCommandEnvironment extends projen_1.Component {
/**
* Retrieves an instance of TypeSafeApiCommandEnvironment if one is associated to the given project.
*
* @param project project instance.
*/
static of(project) {
return project.components.find((c) => monorepo_1.ProjectUtils.isNamedInstanceOf(c, TypeSafeApiCommandEnvironment));
}
/**
* Retrieves an instance of TypeSafeApiCommandEnvironment if one is associated to the given project,
* otherwise creates a TypeSafeApiCommandEnvironment instance for the project.
*
* @param project project instance.
*/
static ensure(project) {
return (TypeSafeApiCommandEnvironment.of(project) ||
new TypeSafeApiCommandEnvironment(project));
}
constructor(project) {
super(project);
// Add all environment variables to the task environment
Object.entries((0, utils_1.getTypeSafeApiTaskEnvironment)()).forEach(([key, value]) => project.tasks.addEnvironment(key, value));
// Node projects need a dev dependency on PDK to ensure npx resolves to the correct pdk
if (monorepo_1.ProjectUtils.isNamedInstanceOf(project, javascript_1.NodeProject)) {
project.addDevDeps("@aws/pdk@^0");
}
}
}
exports.TypeSafeApiCommandEnvironment = TypeSafeApiCommandEnvironment;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1zYWZlLWFwaS1jb21tYW5kLWVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidHlwZS1zYWZlLWFwaS1jb21tYW5kLWVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBO3NDQUNzQztBQUN0Qyw0Q0FBNkM7QUFDN0MsbUNBQTRDO0FBQzVDLHNEQUFvRDtBQUNwRCxtQ0FBd0Q7QUFFeEQ7O0dBRUc7QUFDSCxNQUFhLDZCQUE4QixTQUFRLGtCQUFTO0lBQzFEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQWdCO1FBQ3hCLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNuQyx1QkFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSw2QkFBNkIsQ0FBQyxDQUNwQixDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBZ0I7UUFDNUIsT0FBTyxDQUNMLDZCQUE2QixDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUM7WUFDekMsSUFBSSw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsQ0FDM0MsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZLE9BQWdCO1FBQzFCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLHdEQUF3RDtRQUN4RCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUEscUNBQTZCLEdBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FDdkUsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUN6QyxDQUFDO1FBRUYsdUZBQXVGO1FBQ3ZGLElBQUksdUJBQVksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsd0JBQVcsQ0FBQyxFQUFFLENBQUM7WUFDekQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBdENELHNFQXNDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBDb3B5cmlnaHQgW0FtYXpvbi5jb21dKGh0dHA6Ly9hbWF6b24uY29tLyksIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCAqL1xuaW1wb3J0IHsgUHJvamVjdFV0aWxzIH0gZnJvbSBcIkBhd3MvbW9ub3JlcG9cIjtcbmltcG9ydCB7IENvbXBvbmVudCwgUHJvamVjdCB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSBcInByb2plbi9saWIvamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgZ2V0VHlwZVNhZmVBcGlUYXNrRW52aXJvbm1lbnQgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3Igc2V0dGluZyB1cCB0aGUgZW52aXJvbmVtbnQgZm9yIHR5cGUgc2FmZSBhcGkgY29tbWFuZHNcbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVTYWZlQXBpQ29tbWFuZEVudmlyb25tZW50IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbiBpbnN0YW5jZSBvZiBUeXBlU2FmZUFwaUNvbW1hbmRFbnZpcm9ubWVudCBpZiBvbmUgaXMgYXNzb2NpYXRlZCB0byB0aGUgZ2l2ZW4gcHJvamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHByb2plY3QgcHJvamVjdCBpbnN0YW5jZS5cbiAgICovXG4gIHN0YXRpYyBvZihwcm9qZWN0OiBQcm9qZWN0KTogVHlwZVNhZmVBcGlDb21tYW5kRW52aXJvbm1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBwcm9qZWN0LmNvbXBvbmVudHMuZmluZCgoYykgPT5cbiAgICAgIFByb2plY3RVdGlscy5pc05hbWVkSW5zdGFuY2VPZihjLCBUeXBlU2FmZUFwaUNvbW1hbmRFbnZpcm9ubWVudClcbiAgICApIGFzIFR5cGVTYWZlQXBpQ29tbWFuZEVudmlyb25tZW50IHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbiBpbnN0YW5jZSBvZiBUeXBlU2FmZUFwaUNvbW1hbmRFbnZpcm9ubWVudCBpZiBvbmUgaXMgYXNzb2NpYXRlZCB0byB0aGUgZ2l2ZW4gcHJvamVjdCxcbiAgICogb3RoZXJ3aXNlIGNyZWF0ZXMgYSBUeXBlU2FmZUFwaUNvbW1hbmRFbnZpcm9ubWVudCBpbnN0YW5jZSBmb3IgdGhlIHByb2plY3QuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9qZWN0IHByb2plY3QgaW5zdGFuY2UuXG4gICAqL1xuICBzdGF0aWMgZW5zdXJlKHByb2plY3Q6IFByb2plY3QpOiBUeXBlU2FmZUFwaUNvbW1hbmRFbnZpcm9ubWVudCB7XG4gICAgcmV0dXJuIChcbiAgICAgIFR5cGVTYWZlQXBpQ29tbWFuZEVudmlyb25tZW50Lm9mKHByb2plY3QpIHx8XG4gICAgICBuZXcgVHlwZVNhZmVBcGlDb21tYW5kRW52aXJvbm1lbnQocHJvamVjdClcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgLy8gQWRkIGFsbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gdGhlIHRhc2sgZW52aXJvbm1lbnRcbiAgICBPYmplY3QuZW50cmllcyhnZXRUeXBlU2FmZUFwaVRhc2tFbnZpcm9ubWVudCgpKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+XG4gICAgICBwcm9qZWN0LnRhc2tzLmFkZEVudmlyb25tZW50KGtleSwgdmFsdWUpXG4gICAgKTtcblxuICAgIC8vIE5vZGUgcHJvamVjdHMgbmVlZCBhIGRldiBkZXBlbmRlbmN5IG9uIFBESyB0byBlbnN1cmUgbnB4IHJlc29sdmVzIHRvIHRoZSBjb3JyZWN0IHBka1xuICAgIGlmIChQcm9qZWN0VXRpbHMuaXNOYW1lZEluc3RhbmNlT2YocHJvamVjdCwgTm9kZVByb2plY3QpKSB7XG4gICAgICBwcm9qZWN0LmFkZERldkRlcHMoXCJAYXdzL3Bka0BeMFwiKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==