diff options
Diffstat (limited to 'node_modules/postcss-load-config/src/index.js')
| -rw-r--r-- | node_modules/postcss-load-config/src/index.js | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/node_modules/postcss-load-config/src/index.js b/node_modules/postcss-load-config/src/index.js deleted file mode 100644 index ce86aaad..00000000 --- a/node_modules/postcss-load-config/src/index.js +++ /dev/null @@ -1,185 +0,0 @@ -'use strict' - -const resolve = require('path').resolve -const url = require('url') - -const config = require('lilconfig') -const yaml = require('yaml') - -const loadOptions = require('./options.js') -const loadPlugins = require('./plugins.js') - -/* istanbul ignore next */ -const interopRequireDefault = (obj) => obj && obj.__esModule ? obj : { default: obj } - -/** - * Process the result from cosmiconfig - * - * @param {Object} ctx Config Context - * @param {Object} result Cosmiconfig result - * - * @return {Object} PostCSS Config - */ -const processResult = (ctx, result) => { - const file = result.filepath || '' - let config = interopRequireDefault(result.config).default || {} - - if (typeof config === 'function') { - config = config(ctx) - } else { - config = Object.assign({}, config, ctx) - } - - if (!config.plugins) { - config.plugins = [] - } - - return { - plugins: loadPlugins(config, file), - options: loadOptions(config, file), - file - } -} - -/** - * Builds the Config Context - * - * @param {Object} ctx Config Context - * - * @return {Object} Config Context - */ -const createContext = (ctx) => { - /** - * @type {Object} - * - * @prop {String} cwd=process.cwd() Config search start location - * @prop {String} env=process.env.NODE_ENV Config Enviroment, will be set to `development` by `postcss-load-config` if `process.env.NODE_ENV` is `undefined` - */ - ctx = Object.assign({ - cwd: process.cwd(), - env: process.env.NODE_ENV - }, ctx) - - if (!ctx.env) { - process.env.NODE_ENV = 'development' - } - - return ctx -} - -const importDefault = async filepath => { - const module = await import(url.pathToFileURL(filepath).href) - return module.default -} - -const addTypeScriptLoader = (options = {}, loader) => { - const moduleName = 'postcss' - - return { - ...options, - searchPlaces: [ - ...(options.searchPlaces || []), - 'package.json', - `.${moduleName}rc`, - `.${moduleName}rc.json`, - `.${moduleName}rc.yaml`, - `.${moduleName}rc.yml`, - `.${moduleName}rc.ts`, - `.${moduleName}rc.cts`, - `.${moduleName}rc.js`, - `.${moduleName}rc.cjs`, - `.${moduleName}rc.mjs`, - `${moduleName}.config.ts`, - `${moduleName}.config.cts`, - `${moduleName}.config.js`, - `${moduleName}.config.cjs`, - `${moduleName}.config.mjs` - ], - loaders: { - ...options.loaders, - '.yaml': (filepath, content) => yaml.parse(content), - '.yml': (filepath, content) => yaml.parse(content), - '.js': importDefault, - '.cjs': importDefault, - '.mjs': importDefault, - '.ts': loader, - '.cts': loader - } - } -} - -const withTypeScriptLoader = (rcFunc) => { - return (ctx, path, options) => { - return rcFunc(ctx, path, addTypeScriptLoader(options, (configFile) => { - let registerer = { enabled () {} } - - try { - // Register TypeScript compiler instance - registerer = require('ts-node').register({ - // transpile to cjs even if compilerOptions.module in tsconfig is not Node16/NodeNext. - moduleTypes: { '**/*.cts': 'cjs' } - }) - - return require(configFile) - } catch (err) { - if (err.code === 'MODULE_NOT_FOUND') { - throw new Error( - `'ts-node' is required for the TypeScript configuration files. Make sure it is installed\nError: ${err.message}` - ) - } - - throw err - } finally { - registerer.enabled(false) - } - })) - } -} - -/** - * Load Config - * - * @method rc - * - * @param {Object} ctx Config Context - * @param {String} path Config Path - * @param {Object} options Config Options - * - * @return {Promise} config PostCSS Config - */ -const rc = withTypeScriptLoader((ctx, path, options) => { - /** - * @type {Object} The full Config Context - */ - ctx = createContext(ctx) - - /** - * @type {String} `process.cwd()` - */ - path = path ? resolve(path) : process.cwd() - - return config.lilconfig('postcss', options) - .search(path) - .then((result) => { - if (!result) { - throw new Error(`No PostCSS Config found in: ${path}`) - } - - return processResult(ctx, result) - }) -}) - -/** - * Autoload Config for PostCSS - * - * @author Michael Ciniawsky @michael-ciniawsky <michael.ciniawsky@gmail.com> - * @license MIT - * - * @module postcss-load-config - * @version 2.1.0 - * - * @requires comsiconfig - * @requires ./options - * @requires ./plugins - */ -module.exports = rc |
