projen
Version:
CDK for software projects
44 lines • 4.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodeConfigFile = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const component_1 = require("../component");
const json_1 = require("../json");
const node_config_1 = require("./node-config");
/**
* Represents a Node.js configuration file, loaded via
* `--experimental-config-file`.
*
* @see https://nodejs.org/api/cli.html#configuration-via-nodeconfig
*/
class NodeConfigFile extends component_1.Component {
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.NodeConfigFile", version: "0.103.12" };
/**
* Returns the `NodeConfigFile` instance associated with a project or
* `undefined` if there is none.
*/
static of(project) {
const isIt = (o) => o instanceof NodeConfigFile;
return project.components.find(isIt);
}
/**
* Escape hatch for the generated configuration file.
*/
config;
/**
* The underlying Node.js configuration file.
*/
file;
constructor(project, options = {}) {
super(project);
const { filePath = "node.config.json", ...config } = options;
this.config = config;
this.file = new json_1.JsonFile(project, filePath, {
obj: () => (0, node_config_1.toJson_NodeConfigSchema)(this.config),
omitEmpty: true,
marker: false,
});
}
}
exports.NodeConfigFile = NodeConfigFile;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jb25maWctZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhc2NyaXB0L25vZGUtY29uZmlnLWZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDRDQUF5QztBQUN6QyxrQ0FBbUM7QUFHbkMsK0NBQXdEO0FBZ0J4RDs7Ozs7R0FLRztBQUNILE1BQWEsY0FBZSxTQUFRLHFCQUFTOztJQUMzQzs7O09BR0c7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQWdCO1FBQy9CLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBVSxFQUF1QixFQUFFLENBQy9DLENBQUMsWUFBWSxjQUFjLENBQUM7UUFDOUIsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDYSxNQUFNLENBQW1CO0lBRXpDOztPQUVHO0lBQ2EsSUFBSSxDQUFXO0lBRS9CLFlBQVksT0FBZ0IsRUFBRSxVQUFpQyxFQUFFO1FBQy9ELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sRUFBRSxRQUFRLEdBQUcsa0JBQWtCLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGVBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFO1lBQzFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFBLHFDQUF1QixFQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDL0MsU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNLEVBQUUsS0FBSztTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBaENILHdDQWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IEpzb25GaWxlIH0gZnJvbSBcIi4uL2pzb25cIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5pbXBvcnQgdHlwZSB7IE5vZGVDb25maWdTY2hlbWEgfSBmcm9tIFwiLi9ub2RlLWNvbmZpZ1wiO1xuaW1wb3J0IHsgdG9Kc29uX05vZGVDb25maWdTY2hlbWEgfSBmcm9tIFwiLi9ub2RlLWNvbmZpZ1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBOb2RlQ29uZmlnRmlsZWAuXG4gKlxuICogQHNlZSBodHRwczovL25vZGVqcy5vcmcvYXBpL2NsaS5odG1sI2NvbmZpZ3VyYXRpb24tdmlhLW5vZGVjb25maWdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb2RlQ29uZmlnRmlsZU9wdGlvbnMgZXh0ZW5kcyBOb2RlQ29uZmlnU2NoZW1hIHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9mIHRoZSBnZW5lcmF0ZWQgTm9kZS5qcyBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibm9kZS5jb25maWcuanNvblwiXG4gICAqL1xuICByZWFkb25seSBmaWxlUGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgTm9kZS5qcyBjb25maWd1cmF0aW9uIGZpbGUsIGxvYWRlZCB2aWFcbiAqIGAtLWV4cGVyaW1lbnRhbC1jb25maWctZmlsZWAuXG4gKlxuICogQHNlZSBodHRwczovL25vZGVqcy5vcmcvYXBpL2NsaS5odG1sI2NvbmZpZ3VyYXRpb24tdmlhLW5vZGVjb25maWdcbiAqL1xuZXhwb3J0IGNsYXNzIE5vZGVDb25maWdGaWxlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBOb2RlQ29uZmlnRmlsZWAgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIGEgcHJvamVjdCBvclxuICAgKiBgdW5kZWZpbmVkYCBpZiB0aGVyZSBpcyBub25lLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihwcm9qZWN0OiBQcm9qZWN0KTogTm9kZUNvbmZpZ0ZpbGUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzSXQgPSAobzogdW5rbm93bik6IG8gaXMgTm9kZUNvbmZpZ0ZpbGUgPT5cbiAgICAgIG8gaW5zdGFuY2VvZiBOb2RlQ29uZmlnRmlsZTtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNJdCk7XG4gIH1cblxuICAvKipcbiAgICogRXNjYXBlIGhhdGNoIGZvciB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25maWc6IE5vZGVDb25maWdTY2hlbWE7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIE5vZGUuanMgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZpbGU6IEpzb25GaWxlO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IE5vZGVDb25maWdGaWxlT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICBjb25zdCB7IGZpbGVQYXRoID0gXCJub2RlLmNvbmZpZy5qc29uXCIsIC4uLmNvbmZpZyB9ID0gb3B0aW9ucztcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcblxuICAgIHRoaXMuZmlsZSA9IG5ldyBKc29uRmlsZShwcm9qZWN0LCBmaWxlUGF0aCwge1xuICAgICAgb2JqOiAoKSA9PiB0b0pzb25fTm9kZUNvbmZpZ1NjaGVtYSh0aGlzLmNvbmZpZyksXG4gICAgICBvbWl0RW1wdHk6IHRydWUsXG4gICAgICBtYXJrZXI6IGZhbHNlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=