UNPKG

projen

Version:

CDK for software projects

44 lines 4.94 kB
"use strict"; 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=