From f39632375d5dfc8b1783bd094f269f37da37d5c9 Mon Sep 17 00:00:00 2001 From: Eugene Date: Sat, 30 May 2020 16:44:58 +0300 Subject: [PATCH] feat: add yaml interop for require --- package-lock.json | 27 +++------------------------ package.json | 3 ++- src/core-v2/build.ts | 1 + src/core-v2/yaml-interop.ts | 13 +++++++++++++ 4 files changed, 19 insertions(+), 25 deletions(-) create mode 100644 src/core-v2/yaml-interop.ts diff --git a/package-lock.json b/package-lock.json index 5c0fc08..27f3089 100644 --- a/package-lock.json +++ b/package-lock.json @@ -301,23 +301,6 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/runtime": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", - "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", - "dev": true - } - } - }, "@babel/template": { "version": "7.8.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", @@ -9393,13 +9376,9 @@ "dev": true }, "yaml": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.9.2.tgz", - "integrity": "sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.9.2" - } + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" }, "yargs": { "version": "15.3.1", diff --git a/package.json b/package.json index 1c286cb..f2999f9 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,8 @@ "ora": "4.0.4", "style-dictionary": "2.10.0", "ts-node": "8.8.2", - "typescript": "3.8.3" + "typescript": "3.8.3", + "yaml": "1.10.0" }, "devDependencies": { "@commitlint/cli": "8.3.5", diff --git a/src/core-v2/build.ts b/src/core-v2/build.ts index 8af0bee..9b5d25f 100644 --- a/src/core-v2/build.ts +++ b/src/core-v2/build.ts @@ -1,3 +1,4 @@ +import './yaml-interop' import StyleDictionaryApi from 'style-dictionary' import { createWhitepaperConfig } from './whitepaper-config' diff --git a/src/core-v2/yaml-interop.ts b/src/core-v2/yaml-interop.ts new file mode 100644 index 0000000..02789cf --- /dev/null +++ b/src/core-v2/yaml-interop.ts @@ -0,0 +1,13 @@ +import Module from 'module' +import { readFileSync } from 'fs' +import YAML from 'yaml' + +Module.prototype.require = new Proxy(Module.prototype.require, { + apply(target, thisArg, args) { + if (/\.ya?ml$/.test(args[0])) { + const file = readFileSync(args[0], 'utf8') + return YAML.parse(file) + } + return Reflect.apply(target, thisArg, args) + }, +})