From 94bd99f865318c8d2390d8ff265fb4cd8ef512b9 Mon Sep 17 00:00:00 2001 From: kreuzerk Date: Wed, 28 Oct 2020 18:22:46 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20enrich=20options=20with?= =?UTF-8?q?=20default=20options?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 92 +++++++++++++++++++++++++++----------- package.json | 4 +- svg-icons-builder/index.ts | 22 ++++----- 3 files changed, 78 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5335bf2..50e97fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2055,26 +2055,26 @@ "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" }, "csso": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", - "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.1.0.tgz", + "integrity": "sha512-h+6w/W1WqXaJA4tb1dk7r5tVbOm97MsKxzwnvOR04UQ6GILroryjMWu3pmCCtL2mLaEStQ0fZgeGiy99mo7iyg==", "requires": { - "css-tree": "1.0.0-alpha.39" + "css-tree": "^1.0.0" }, "dependencies": { "css-tree": { - "version": "1.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", - "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0.tgz", + "integrity": "sha512-CdVYz/Yuqw0VdKhXPBIgi8DO3NicJVYZNWeX9XcIuSp9ZoFT5IcleVRW07O5rMjdcx1mb+MEJPknTTEW7DdsYw==", "requires": { - "mdn-data": "2.0.6", + "mdn-data": "2.0.12", "source-map": "^0.6.1" } }, "mdn-data": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", - "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==" + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.12.tgz", + "integrity": "sha512-ULbAlgzVb8IqZ0Hsxm6hHSlQl3Jckst2YEQS7fODu9ilNWy2LvcoSY7TRFIktABP2mdppBioc66va90T+NUs8Q==" }, "source-map": { "version": "0.6.1", @@ -3351,7 +3351,7 @@ }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://pkgs.dev.azure.com/diemobiliar/RWC/_packaging/npm-main/npm/registry/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, @@ -5922,21 +5922,63 @@ } }, "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "string_decoder": { @@ -6002,9 +6044,9 @@ } }, "svg-to-ts": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/svg-to-ts/-/svg-to-ts-5.6.1.tgz", - "integrity": "sha512-KE4qfle+lrpY7o7XkTuE0bkPbLAKF5yP6owcQGCY18tMR//bnFwKPsi9GMFi7QpacGY6KAY7OdCcepo/43EatQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/svg-to-ts/-/svg-to-ts-5.7.0.tgz", + "integrity": "sha512-LjVPqMcGgOui9ps9vk/ki5yUNkdJX5I5N/Y61JzyX/jR3AQkfBjSTP2WdhNoDplmTurw/IP98KT7gizmot9PCA==", "requires": { "chalk": "^3.0.0", "commander": "^4.0.1", @@ -6029,8 +6071,8 @@ }, "prettier": { "version": "1.19.1", - "resolved": "https://pkgs.dev.azure.com/diemobiliar/RWC/_packaging/npm-main/npm/registry/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=" + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" }, "typescript": { "version": "3.9.7", diff --git a/package.json b/package.json index c8b7ae9..a60b9d3 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,8 @@ "dependencies": { "@angular-devkit/core": "^10.1.6", "@angular-devkit/schematics": "^10.1.6", - "typescript": "~4.0.2", - "svg-to-ts": "^5.6.1" + "svg-to-ts": "^5.7.0", + "typescript": "~4.0.2" }, "devDependencies": { "@angular-devkit/architect": "^0.1001.7", diff --git a/svg-icons-builder/index.ts b/svg-icons-builder/index.ts index 351b7b5..a999a30 100644 --- a/svg-icons-builder/index.ts +++ b/svg-icons-builder/index.ts @@ -1,31 +1,27 @@ import { BuilderContext, BuilderOutput, createBuilder } from '@angular-devkit/architect'; import { JsonObject } from '@angular-devkit/core'; -/* - TODO - we should export this from svg-to-ts - otherwise we rely on internals and it would break if - we refactor something in svg-to-ts - */ import { CommonConversionOptions, ConstantsConversionOptions, ConversionType, FileConversionOptions, ObjectConversionOptions, -} from 'svg-to-ts/src/lib/options/conversion-options'; -import { convertToFiles } from 'svg-to-ts/src/lib/converters/files.converter'; -import { convertToConstants } from 'svg-to-ts/src/lib/converters/constants.converter'; -import { convertToSingleObject } from 'svg-to-ts/src/lib/converters/object.converter'; + convertToFiles, + convertToConstants, + convertToSingleObject, + mergeWithDefaults, +} from 'svg-to-ts'; -interface Options extends CommonConversionOptions, JsonObject { - generateCompleteIconSet: boolean; // TODO: should this be exportCompleteIconSet -} +interface Options extends CommonConversionOptions, JsonObject {} -export default createBuilder((conversionOptions: Options, context: BuilderContext) => { +export default createBuilder((options: Options, context: BuilderContext) => { return new Promise(async (resolve, reject) => { try { - if (!conversionOptions) { + if (!options.conversionType) { reject(); } + const conversionOptions = await mergeWithDefaults(options); if (conversionOptions.conversionType === ConversionType.FILES) { context.logger.info('We are using the conversion type "files"'); await convertToFiles((conversionOptions as unknown) as FileConversionOptions);