projen
Version:
CDK for software projects
47 lines • 4.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NpmConfig = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const component_1 = require("../component");
const ini_1 = require("../ini");
/**
* File representing the local NPM config in .npmrc
*/
class NpmConfig extends component_1.Component {
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.NpmConfig", version: "0.103.12" };
/**
* The config object. This object can be mutated until the project is
* synthesized.
*/
config = {};
constructor(project, options = {}) {
super(project);
new ini_1.IniFile(project, ".npmrc", {
obj: this.config,
omitEmpty: options.omitEmpty,
});
if (options.registry) {
this.addRegistry(options.registry);
}
}
/**
* configure a scoped registry
*
* @param url the URL of the registry to use
* @param scope the scope the registry is used for; leave empty for the default registry
*/
addRegistry(url, scope) {
this.addConfig(scope ? `${scope}:registry` : "registry", url);
}
/**
* configure a generic property
*
* @param name the name of the property
* @param value the value of the property
*/
addConfig(name, value) {
this.config[name] = value;
}
}
exports.NpmConfig = NpmConfig;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhc2NyaXB0L25wbS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDRDQUF5QztBQUN6QyxnQ0FBaUM7QUF1QmpDOztHQUVHO0FBQ0gsTUFBYSxTQUFVLFNBQVEscUJBQVM7O0lBQ3RDOzs7T0FHRztJQUNjLE1BQU0sR0FBUSxFQUFFLENBQUM7SUFFbEMsWUFBWSxPQUFvQixFQUFFLFVBQTRCLEVBQUU7UUFDOUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxhQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRTtZQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDaEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1NBQzdCLENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxXQUFXLENBQUMsR0FBVyxFQUFFLEtBQWM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQzs7QUF0Q0gsOEJBdUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgSW5pRmlsZSB9IGZyb20gXCIuLi9pbmlcIjtcbmltcG9ydCB0eXBlIHsgTm9kZVByb2plY3QgfSBmcm9tIFwiLi4vamF2YXNjcmlwdFwiO1xuXG4vKipcbiAqIE9wdGlvbnMgdG8gY29uZmlndXJlIHRoZSBsb2NhbCBOUE0gY29uZmlnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnBtQ29uZmlnT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBVUkwgb2YgdGhlIHJlZ2lzdHJ5IG1pcnJvciB0byB1c2VcbiAgICpcbiAgICogWW91IGNhbiBjaGFuZ2UgdGhpcyBvciBhZGQgc2NvcGVkIHJlZ2lzdHJpZXMgdXNpbmcgdGhlIGFkZFJlZ2lzdHJ5IG1ldGhvZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZSBucG1qcyBkZWZhdWx0IHJlZ2lzdHJ5XG4gICAqL1xuICByZWFkb25seSByZWdpc3RyeT86IHN0cmluZztcblxuICAvKipcbiAgICogT21pdHMgZW1wdHkgb2JqZWN0cyBhbmQgYXJyYXlzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgb21pdEVtcHR5PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBGaWxlIHJlcHJlc2VudGluZyB0aGUgbG9jYWwgTlBNIGNvbmZpZyBpbiAubnBtcmNcbiAqL1xuZXhwb3J0IGNsYXNzIE5wbUNvbmZpZyBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgY29uZmlnIG9iamVjdC4gVGhpcyBvYmplY3QgY2FuIGJlIG11dGF0ZWQgdW50aWwgdGhlIHByb2plY3QgaXNcbiAgICogc3ludGhlc2l6ZWQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogYW55ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogTm9kZVByb2plY3QsIG9wdGlvbnM6IE5wbUNvbmZpZ09wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgbmV3IEluaUZpbGUocHJvamVjdCwgXCIubnBtcmNcIiwge1xuICAgICAgb2JqOiB0aGlzLmNvbmZpZyxcbiAgICAgIG9taXRFbXB0eTogb3B0aW9ucy5vbWl0RW1wdHksXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy5yZWdpc3RyeSkge1xuICAgICAgdGhpcy5hZGRSZWdpc3RyeShvcHRpb25zLnJlZ2lzdHJ5KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogY29uZmlndXJlIGEgc2NvcGVkIHJlZ2lzdHJ5XG4gICAqXG4gICAqIEBwYXJhbSB1cmwgdGhlIFVSTCBvZiB0aGUgcmVnaXN0cnkgdG8gdXNlXG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgdGhlIHJlZ2lzdHJ5IGlzIHVzZWQgZm9yOyBsZWF2ZSBlbXB0eSBmb3IgdGhlIGRlZmF1bHQgcmVnaXN0cnlcbiAgICovXG4gIHB1YmxpYyBhZGRSZWdpc3RyeSh1cmw6IHN0cmluZywgc2NvcGU/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmFkZENvbmZpZyhzY29wZSA/IGAke3Njb3BlfTpyZWdpc3RyeWAgOiBcInJlZ2lzdHJ5XCIsIHVybCk7XG4gIH1cblxuICAvKipcbiAgICogY29uZmlndXJlIGEgZ2VuZXJpYyBwcm9wZXJ0eVxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHlcbiAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHlcbiAgICovXG4gIHB1YmxpYyBhZGRDb25maWcobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maWdbbmFtZV0gPSB2YWx1ZTtcbiAgfVxufVxuIl19