mirror of
https://github.com/idanoo/GoScrobble
synced 2025-07-01 13:42:20 +00:00
0.2.0 - Mid migration
This commit is contained in:
parent
139e6a915e
commit
7e38fdbd7d
42393 changed files with 5358157 additions and 62 deletions
131
web/node_modules/postcss-load-config/src/index.js
generated
vendored
Normal file
131
web/node_modules/postcss-load-config/src/index.js
generated
vendored
Normal file
|
@ -0,0 +1,131 @@
|
|||
'use strict'
|
||||
|
||||
const resolve = require('path').resolve
|
||||
|
||||
const config = require('cosmiconfig')
|
||||
|
||||
const loadOptions = require('./options.js')
|
||||
const loadPlugins = require('./plugins.js')
|
||||
|
||||
/**
|
||||
* Process the result from cosmiconfig
|
||||
*
|
||||
* @param {Object} ctx Config Context
|
||||
* @param {Object} result Cosmiconfig result
|
||||
*
|
||||
* @return {Object} PostCSS Config
|
||||
*/
|
||||
const processResult = (ctx, result) => {
|
||||
let file = result.filepath || ''
|
||||
let config = result.config || {}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 = (ctx, path, options) => {
|
||||
/**
|
||||
* @type {Object} The full Config Context
|
||||
*/
|
||||
ctx = createContext(ctx)
|
||||
|
||||
/**
|
||||
* @type {String} `process.cwd()`
|
||||
*/
|
||||
path = path ? resolve(path) : process.cwd()
|
||||
|
||||
return config('postcss', options)
|
||||
.search(path)
|
||||
.then((result) => {
|
||||
if (!result) {
|
||||
throw new Error(`No PostCSS Config found in: ${path}`)
|
||||
}
|
||||
|
||||
return processResult(ctx, result)
|
||||
})
|
||||
}
|
||||
|
||||
rc.sync = (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('postcss', options).searchSync(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
web/node_modules/postcss-load-config/src/options.js
generated
vendored
Normal file
47
web/node_modules/postcss-load-config/src/options.js
generated
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
'use strict'
|
||||
|
||||
const req = require('import-cwd')
|
||||
|
||||
/**
|
||||
* 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)
|
||||
} 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)
|
||||
} 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)
|
||||
} 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
web/node_modules/postcss-load-config/src/plugins.js
generated
vendored
Normal file
85
web/node_modules/postcss-load-config/src/plugins.js
generated
vendored
Normal file
|
@ -0,0 +1,85 @@
|
|||
'use strict'
|
||||
|
||||
const req = require('import-cwd')
|
||||
|
||||
/**
|
||||
* 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)
|
||||
} else {
|
||||
return req(plugin)(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
|
Loading…
Add table
Add a link
Reference in a new issue