feat: docker compose maybe
This commit is contained in:
71
node_modules/postcss-load-config/src/index.d.ts
generated
vendored
Normal file
71
node_modules/postcss-load-config/src/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,71 @@
|
||||
// based on @types/postcss-load-config@2.0.1
|
||||
// Type definitions for postcss-load-config 2.1
|
||||
import Processor from 'postcss/lib/processor';
|
||||
import { Plugin, ProcessOptions, Transformer } from 'postcss';
|
||||
import { Options as ConfigOptions } from "lilconfig";
|
||||
|
||||
declare function postcssrc(
|
||||
ctx?: postcssrc.ConfigContext,
|
||||
path?: string,
|
||||
options?: ConfigOptions
|
||||
): Promise<postcssrc.Result>;
|
||||
|
||||
declare namespace postcssrc {
|
||||
function sync(
|
||||
ctx?: ConfigContext,
|
||||
path?: string,
|
||||
options?: ConfigOptions
|
||||
): Result;
|
||||
|
||||
// In the ConfigContext, these three options can be instances of the
|
||||
// appropriate class, or strings. If they are strings, postcss-load-config will
|
||||
// require() them and pass the instances along.
|
||||
export interface ProcessOptionsPreload {
|
||||
parser?: string | ProcessOptions['parser'];
|
||||
stringifier?: string | ProcessOptions['stringifier'];
|
||||
syntax?: string | ProcessOptions['syntax'];
|
||||
}
|
||||
|
||||
// The remaining ProcessOptions, sans the three above.
|
||||
export type RemainingProcessOptions = Pick<
|
||||
ProcessOptions,
|
||||
Exclude<keyof ProcessOptions, keyof ProcessOptionsPreload>
|
||||
>;
|
||||
|
||||
// Additional context options that postcss-load-config understands.
|
||||
export interface Context {
|
||||
cwd?: string;
|
||||
env?: string;
|
||||
}
|
||||
|
||||
// The full shape of the ConfigContext.
|
||||
export type ConfigContext = Context &
|
||||
ProcessOptionsPreload &
|
||||
RemainingProcessOptions;
|
||||
|
||||
// Result of postcssrc is a Promise containing the filename plus the options
|
||||
// and plugins that are ready to pass on to postcss.
|
||||
export type ResultPlugin = Plugin | Transformer | Processor;
|
||||
|
||||
export interface Result {
|
||||
file: string;
|
||||
options: ProcessOptions;
|
||||
plugins: ResultPlugin[];
|
||||
}
|
||||
|
||||
export type ConfigPlugin = Transformer | Plugin | Processor;
|
||||
|
||||
export interface Config {
|
||||
parser?: string | ProcessOptions['parser'] | false;
|
||||
stringifier?: string | ProcessOptions['stringifier'] | false;
|
||||
syntax?: string | ProcessOptions['syntax'] | false;
|
||||
map?: string | false;
|
||||
from?: string;
|
||||
to?: string;
|
||||
plugins?: Array<ConfigPlugin | false> | Record<string, object | false>;
|
||||
}
|
||||
|
||||
export type ConfigFn = (ctx: ConfigContext) => Config | Promise<Config>;
|
||||
}
|
||||
|
||||
export = postcssrc;
|
188
node_modules/postcss-load-config/src/index.js
generated
vendored
Normal file
188
node_modules/postcss-load-config/src/index.js
generated
vendored
Normal file
@ -0,0 +1,188 @@
|
||||
'use strict'
|
||||
|
||||
const resolve = require('path').resolve
|
||||
|
||||
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: 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 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.js`,
|
||||
`.${moduleName}rc.cjs`,
|
||||
`${moduleName}.config.ts`,
|
||||
`${moduleName}.config.js`,
|
||||
`${moduleName}.config.cjs`
|
||||
],
|
||||
loaders: {
|
||||
...options.loaders,
|
||||
'.yaml': (filepath, content) => yaml.parse(content),
|
||||
'.yml': (filepath, content) => yaml.parse(content),
|
||||
'.ts': 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()
|
||||
|
||||
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)
|
||||
})
|
||||
})
|
||||
|
||||
rc.sync = withTypeScriptLoader((ctx, path, options) => {
|
||||
/**
|
||||
* @type {Object} The full Config Context
|
||||
*/
|
||||
ctx = createContext(ctx)
|
||||
|
||||
/**
|
||||
* @type {String} `process.cwd()`
|
||||
*/
|
||||
path = path ? resolve(path) : process.cwd()
|
||||
|
||||
const result = config.lilconfigSync('postcss', options).search(path)
|
||||
|
||||
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
|
47
node_modules/postcss-load-config/src/options.js
generated
vendored
Normal file
47
node_modules/postcss-load-config/src/options.js
generated
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
'use strict'
|
||||
|
||||
const req = require('./req.js')
|
||||
|
||||
/**
|
||||
* Load Options
|
||||
*
|
||||
* @private
|
||||
* @method options
|
||||
*
|
||||
* @param {Object} config PostCSS Config
|
||||
*
|
||||
* @return {Object} options PostCSS Options
|
||||
*/
|
||||
const options = (config, file) => {
|
||||
if (config.parser && typeof config.parser === 'string') {
|
||||
try {
|
||||
config.parser = req(config.parser, file)
|
||||
} catch (err) {
|
||||
throw new Error(`Loading PostCSS Parser failed: ${err.message}\n\n(@${file})`)
|
||||
}
|
||||
}
|
||||
|
||||
if (config.syntax && typeof config.syntax === 'string') {
|
||||
try {
|
||||
config.syntax = req(config.syntax, file)
|
||||
} catch (err) {
|
||||
throw new Error(`Loading PostCSS Syntax failed: ${err.message}\n\n(@${file})`)
|
||||
}
|
||||
}
|
||||
|
||||
if (config.stringifier && typeof config.stringifier === 'string') {
|
||||
try {
|
||||
config.stringifier = req(config.stringifier, file)
|
||||
} catch (err) {
|
||||
throw new Error(`Loading PostCSS Stringifier failed: ${err.message}\n\n(@${file})`)
|
||||
}
|
||||
}
|
||||
|
||||
if (config.plugins) {
|
||||
delete config.plugins
|
||||
}
|
||||
|
||||
return config
|
||||
}
|
||||
|
||||
module.exports = options
|
85
node_modules/postcss-load-config/src/plugins.js
generated
vendored
Normal file
85
node_modules/postcss-load-config/src/plugins.js
generated
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
'use strict'
|
||||
|
||||
const req = require('./req.js')
|
||||
|
||||
/**
|
||||
* Plugin Loader
|
||||
*
|
||||
* @private
|
||||
* @method load
|
||||
*
|
||||
* @param {String} plugin PostCSS Plugin Name
|
||||
* @param {Object} options PostCSS Plugin Options
|
||||
*
|
||||
* @return {Function} PostCSS Plugin
|
||||
*/
|
||||
const load = (plugin, options, file) => {
|
||||
try {
|
||||
if (
|
||||
options === null ||
|
||||
options === undefined ||
|
||||
Object.keys(options).length === 0
|
||||
) {
|
||||
return req(plugin, file)
|
||||
} else {
|
||||
return req(plugin, file)(options)
|
||||
}
|
||||
} catch (err) {
|
||||
throw new Error(`Loading PostCSS Plugin failed: ${err.message}\n\n(@${file})`)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Load Plugins
|
||||
*
|
||||
* @private
|
||||
* @method plugins
|
||||
*
|
||||
* @param {Object} config PostCSS Config Plugins
|
||||
*
|
||||
* @return {Array} plugins PostCSS Plugins
|
||||
*/
|
||||
const plugins = (config, file) => {
|
||||
let plugins = []
|
||||
|
||||
if (Array.isArray(config.plugins)) {
|
||||
plugins = config.plugins.filter(Boolean)
|
||||
} else {
|
||||
plugins = Object.keys(config.plugins)
|
||||
.filter((plugin) => {
|
||||
return config.plugins[plugin] !== false ? plugin : ''
|
||||
})
|
||||
.map((plugin) => {
|
||||
return load(plugin, config.plugins[plugin], file)
|
||||
})
|
||||
}
|
||||
|
||||
if (plugins.length && plugins.length > 0) {
|
||||
plugins.forEach((plugin, i) => {
|
||||
if (plugin.default) {
|
||||
plugin = plugin.default
|
||||
}
|
||||
|
||||
if (plugin.postcss === true) {
|
||||
plugin = plugin()
|
||||
} else if (plugin.postcss) {
|
||||
plugin = plugin.postcss
|
||||
}
|
||||
|
||||
if (
|
||||
// eslint-disable-next-line
|
||||
!(
|
||||
(typeof plugin === 'object' && Array.isArray(plugin.plugins)) ||
|
||||
(typeof plugin === 'object' && plugin.postcssPlugin) ||
|
||||
(typeof plugin === 'function')
|
||||
)
|
||||
) {
|
||||
throw new TypeError(`Invalid PostCSS Plugin found at: plugins[${i}]\n\n(@${file})`)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return plugins
|
||||
}
|
||||
|
||||
module.exports = plugins
|
10
node_modules/postcss-load-config/src/req.js
generated
vendored
Normal file
10
node_modules/postcss-load-config/src/req.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
// eslint-disable-next-line node/no-deprecated-api
|
||||
const { createRequire, createRequireFromPath } = require('module')
|
||||
|
||||
function req (name, rootFile) {
|
||||
const create = createRequire || createRequireFromPath
|
||||
const require = create(rootFile)
|
||||
return require(name)
|
||||
}
|
||||
|
||||
module.exports = req
|
Reference in New Issue
Block a user