@percy/cli-config
Advanced tools
Comparing version 1.0.0-beta.31 to 1.0.0-beta.32
@@ -12,4 +12,2 @@ "use strict"; | ||
var _pathType = require("path-type"); | ||
var _command = _interopRequireWildcard(require("@oclif/command")); | ||
@@ -29,8 +27,2 @@ | ||
function assignOrCreate(obj, key, value) { | ||
return Object.assign(obj || {}, { | ||
[key]: value | ||
}); | ||
} | ||
class Migrate extends _command.default { | ||
@@ -53,10 +45,7 @@ constructor(...args) { | ||
} | ||
} = this.parse(); | ||
_logger.default.loglevel('info'); // load config using the explorer directly rather than the load method to | ||
} = this.parse(); // load config using the explorer directly rather than the load method to | ||
// better control logs and prevent validation | ||
try { | ||
let result = !input || (0, _pathType.isDirectorySync)(input) ? _config.default.explorer.search(input) : _config.default.explorer.load(input); | ||
let result = !input || _fs.default.statSync(input).isDirectory() ? _config.default.explorer.search(input) : _config.default.explorer.load(input); | ||
@@ -89,6 +78,10 @@ if (result && result.config) { | ||
let format = _path.default.extname(output).replace(/^./, '') || 'yaml'; | ||
config = _config.default.stringify(format, this.migrate(config)); // update the package.json entry via string replacement | ||
let migrated = _config.default.migrate(config); | ||
let body = _config.default.stringify(format, migrated); // update the package.json entry via string replacement | ||
if (!dry && _path.default.basename(output) === 'package.json') { | ||
_fs.default.writeFileSync(output, _fs.default.readFileSync(output).replace(/(\s+)("percy":\s*){.*\1}/s, `$1$2${config.replace(/\n/g, '$$1')}`)); // write to output | ||
_fs.default.writeFileSync(output, _fs.default.readFileSync(output).replace(/(\s+)("percy":\s*){.*\1}/s, `$1$2${body.replace(/\n/g, '$$1')}`)); // write to output | ||
@@ -105,3 +98,3 @@ } else if (!dry) { | ||
_fs.default.writeFileSync(output, config); | ||
_fs.default.writeFileSync(output, body); | ||
} | ||
@@ -111,47 +104,3 @@ | ||
if (dry) _logger.default.instance.stdout.write('\n' + config); | ||
} // Migrating config options is recursive so no matter which input version is | ||
// provided, the output will be the latest version. | ||
migrate(input) { | ||
switch (input.version) { | ||
case 2: | ||
return input; | ||
// latest version | ||
default: | ||
return this.migrate(this.v1(input)); | ||
} | ||
} // Migrate config from v1 to v2. | ||
/* eslint-disable curly */ | ||
v1(input) { | ||
var _input$agent, _input$agent$assetDi, _input$agent2, _input$agent2$assetD, _input$agent3, _input$agent3$assetD, _input$agent4, _input$agent4$assetD, _input$agent5, _input$agent5$assetD, _output$upload, _input$staticSnapsho, _input$staticSnapsho2, _input$staticSnapsho3; | ||
let output = { | ||
version: 2 | ||
}; // previous snapshot options map 1:1 | ||
if (input.snapshot != null) output.snapshot = input.snapshot; // request-headers option moved | ||
if (((_input$agent = input.agent) === null || _input$agent === void 0 ? void 0 : (_input$agent$assetDi = _input$agent['asset-discovery']) === null || _input$agent$assetDi === void 0 ? void 0 : _input$agent$assetDi['request-headers']) != null) output.snapshot = assignOrCreate(output.snapshot, 'request-headers', input.agent['asset-discovery']['request-headers']); // only create discovery options when neccessary | ||
if (((_input$agent2 = input.agent) === null || _input$agent2 === void 0 ? void 0 : (_input$agent2$assetD = _input$agent2['asset-discovery']) === null || _input$agent2$assetD === void 0 ? void 0 : _input$agent2$assetD['allowed-hostnames']) != null) output.discovery = assignOrCreate(output.discovery, 'allowed-hostnames', input.agent['asset-discovery']['allowed-hostnames']); | ||
if (((_input$agent3 = input.agent) === null || _input$agent3 === void 0 ? void 0 : (_input$agent3$assetD = _input$agent3['asset-discovery']) === null || _input$agent3$assetD === void 0 ? void 0 : _input$agent3$assetD['network-idle-timeout']) != null) output.discovery = assignOrCreate(output.discovery, 'network-idle-timeout', input.agent['asset-discovery']['network-idle-timeout']); // page pooling was rewritten to be a concurrent task queue | ||
if (((_input$agent4 = input.agent) === null || _input$agent4 === void 0 ? void 0 : (_input$agent4$assetD = _input$agent4['asset-discovery']) === null || _input$agent4$assetD === void 0 ? void 0 : _input$agent4$assetD['page-pool-size-max']) != null) output.discovery = assignOrCreate(output.discovery, 'concurrency', input.agent['asset-discovery']['page-pool-size-max']); // cache-responses was renamed to match the CLI flag | ||
if (((_input$agent5 = input.agent) === null || _input$agent5 === void 0 ? void 0 : (_input$agent5$assetD = _input$agent5['asset-discovery']) === null || _input$agent5$assetD === void 0 ? void 0 : _input$agent5$assetD['cache-responses']) != null) output.discovery = assignOrCreate(output.discovery, 'disable-cache', !input.agent['asset-discovery']['cache-responses']); // image-snapshots was renamed | ||
if (input['image-snapshots'] != null) output.upload = input['image-snapshots']; // image-snapshots path was removed | ||
if (((_output$upload = output.upload) === null || _output$upload === void 0 ? void 0 : _output$upload.path) != null) delete output.upload.path; // static-snapshots and options were renamed | ||
if (((_input$staticSnapsho = input['static-snapshots']) === null || _input$staticSnapsho === void 0 ? void 0 : _input$staticSnapsho['base-url']) != null) output.static = assignOrCreate(output.static, 'base-url', input['static-snapshots']['base-url']); | ||
if (((_input$staticSnapsho2 = input['static-snapshots']) === null || _input$staticSnapsho2 === void 0 ? void 0 : _input$staticSnapsho2['snapshot-files']) != null) output.static = assignOrCreate(output.static, 'files', input['static-snapshots']['snapshot-files']); | ||
if (((_input$staticSnapsho3 = input['static-snapshots']) === null || _input$staticSnapsho3 === void 0 ? void 0 : _input$staticSnapsho3['ignore-files']) != null) output.static = assignOrCreate(output.static, 'ignore', input['static-snapshots']['ignore-files']); | ||
return output; | ||
if (dry) _logger.default.instance.stdout.write('\n' + body); | ||
} | ||
@@ -158,0 +107,0 @@ |
@@ -1,1 +0,1 @@ | ||
{"version":"1.0.0-beta.31","commands":{"config:create":{"id":"config:create","description":"Create a Percy config file","pluginName":"@percy/cli-config","pluginType":"core","aliases":[],"examples":["$ percy config:create","$ percy config:create --yaml","$ percy config:create --json","$ percy config:create --js","$ percy config:create --rc","$ percy config:create ./config/percy.yml"],"flags":{"rc":{"name":"rc","type":"boolean","description":"create a .percyrc file","allowNo":false},"yaml":{"name":"yaml","type":"boolean","description":"create a .percy.yaml file","allowNo":false},"yml":{"name":"yml","type":"boolean","description":"create a .percy.yml file","allowNo":false},"json":{"name":"json","type":"boolean","description":"create a .percy.json file","allowNo":false},"js":{"name":"js","type":"boolean","description":"create a .percy.js file","allowNo":false}},"args":[{"name":"filepath","description":"config filepath"}]},"config:migrate":{"id":"config:migrate","description":"Migrate a Percy config file to the latest version","pluginName":"@percy/cli-config","pluginType":"core","aliases":[],"examples":["$ percy config:migrate","$ percy config:migrate --dry-run","$ percy config:migrate ./config/percy.yml","$ percy config:migrate .percy.yml .percy.js"],"flags":{"dry-run":{"name":"dry-run","type":"boolean","char":"d","description":"prints the new config rather than writing it","allowNo":false}},"args":[{"name":"filepath","description":"current config filepath, detected by default"},{"name":"output","description":"new config filepath to write to, defaults to FILEPATH"}]},"config:validate":{"id":"config:validate","description":"Validate a Percy config file","pluginName":"@percy/cli-config","pluginType":"core","aliases":[],"examples":["$ percy config:validate","$ percy config:validate ./config/percy.yml"],"flags":{},"args":[{"name":"filepath","description":"config filepath, detected by default"}]}}} | ||
{"version":"1.0.0-beta.32","commands":{"config:create":{"id":"config:create","description":"Create a Percy config file","pluginName":"@percy/cli-config","pluginType":"core","aliases":[],"examples":["$ percy config:create","$ percy config:create --yaml","$ percy config:create --json","$ percy config:create --js","$ percy config:create --rc","$ percy config:create ./config/percy.yml"],"flags":{"rc":{"name":"rc","type":"boolean","description":"create a .percyrc file","allowNo":false},"yaml":{"name":"yaml","type":"boolean","description":"create a .percy.yaml file","allowNo":false},"yml":{"name":"yml","type":"boolean","description":"create a .percy.yml file","allowNo":false},"json":{"name":"json","type":"boolean","description":"create a .percy.json file","allowNo":false},"js":{"name":"js","type":"boolean","description":"create a .percy.js file","allowNo":false}},"args":[{"name":"filepath","description":"config filepath"}]},"config:migrate":{"id":"config:migrate","description":"Migrate a Percy config file to the latest version","pluginName":"@percy/cli-config","pluginType":"core","aliases":[],"examples":["$ percy config:migrate","$ percy config:migrate --dry-run","$ percy config:migrate ./config/percy.yml","$ percy config:migrate .percy.yml .percy.js"],"flags":{"dry-run":{"name":"dry-run","type":"boolean","char":"d","description":"prints the new config rather than writing it","allowNo":false}},"args":[{"name":"filepath","description":"current config filepath, detected by default"},{"name":"output","description":"new config filepath to write to, defaults to FILEPATH"}]},"config:validate":{"id":"config:validate","description":"Validate a Percy config file","pluginName":"@percy/cli-config","pluginType":"core","aliases":[],"examples":["$ percy config:validate","$ percy config:validate ./config/percy.yml"],"flags":{},"args":[{"name":"filepath","description":"config filepath, detected by default"}]}}} |
{ | ||
"name": "@percy/cli-config", | ||
"version": "1.0.0-beta.31", | ||
"version": "1.0.0-beta.32", | ||
"license": "MIT", | ||
@@ -10,2 +10,5 @@ "main": "dist/index.js", | ||
], | ||
"engines": { | ||
"node": ">=12" | ||
}, | ||
"scripts": { | ||
@@ -40,8 +43,7 @@ "build": "babel --root-mode upward src --out-dir dist", | ||
"@oclif/config": "^1.17.0", | ||
"@percy/config": "^1.0.0-beta.31", | ||
"@percy/core": "^1.0.0-beta.31", | ||
"@percy/logger": "^1.0.0-beta.31", | ||
"path-type": "^4.0.0" | ||
"@percy/config": "^1.0.0-beta.32", | ||
"@percy/core": "^1.0.0-beta.32", | ||
"@percy/logger": "^1.0.0-beta.32" | ||
}, | ||
"gitHead": "6971cd1f6cf69c8516a091ee59bf6dabf8780820" | ||
"gitHead": "edbef4c5ded9427447b25c13dda0ecd2639fc370" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
5
16892
226
- Removedpath-type@^4.0.0
Updated@percy/config@^1.0.0-beta.32
Updated@percy/core@^1.0.0-beta.32
Updated@percy/logger@^1.0.0-beta.32