svelte-preprocess
Advanced tools
Comparing version 3.2.0-alpha.2 to 3.2.0
@@ -1,2 +0,2 @@ | ||
## [3.1.4](https://github.com/kaisermann/svelte-preprocess/compare/v3.1.3...v3.1.4) (2019-10-23) | ||
# [3.2.0](https://github.com/kaisermann/svelte-preprocess/compare/v3.1.1...v3.2.0) (2019-10-28) | ||
@@ -6,2 +6,4 @@ | ||
* 🐛 import less cjs instead of es6 ([bf8627f](https://github.com/kaisermann/svelte-preprocess/commit/bf8627f3f4bde0d598769a67de10194bbcf04701)) | ||
* 🐛 Try to only include files with local paths ([a167f6e](https://github.com/kaisermann/svelte-preprocess/commit/a167f6e4cc4802f86cc14fe38bbacf7e9db02729)) | ||
* don't try to include local files that doesn't exist ([52594eb](https://github.com/kaisermann/svelte-preprocess/commit/52594eb79e7533a442fd7063ef1e2e269269dbc3)) | ||
@@ -11,20 +13,2 @@ | ||
## [3.1.3](https://github.com/kaisermann/svelte-preprocess/compare/v3.1.2...v3.1.3) (2019-10-23) | ||
### Bug Fixes | ||
* :bug: Try to only include files with local paths ([4c2c4e3](https://github.com/kaisermann/svelte-preprocess/commit/4c2c4e317e8de62bc161e7a1626892f08e98ce82)) | ||
## [3.1.2](https://github.com/kaisermann/svelte-preprocess/compare/v3.1.1...v3.1.2) (2019-09-25) | ||
### Bug Fixes | ||
* 🐛 import less cjs instead of es6 ([bf8627f](https://github.com/kaisermann/svelte-preprocess/commit/bf8627f3f4bde0d598769a67de10194bbcf04701)) | ||
## [3.1.1](https://github.com/kaisermann/svelte-preprocess/compare/v3.1.0...v3.1.1) (2019-09-10) | ||
@@ -109,3 +93,3 @@ | ||
## [2.14.4](https://github.com/kaisermann/svelte-preprocess/compare/v2.14.3...v2.14.4) (2019-07-03) | ||
## [2.14.4](https://github.com/kaisermann/svelte-preprocess/compare/v2.14.3...v2.14.4) (2019-07-06) | ||
@@ -119,3 +103,3 @@ | ||
## [2.14.3](https://github.com/kaisermann/svelte-preprocess/compare/v2.14.2...v2.14.3) (2019-07-01) | ||
## [2.14.3](https://github.com/kaisermann/svelte-preprocess/compare/v2.14.1...v2.14.3) (2019-07-01) | ||
@@ -126,10 +110,2 @@ | ||
* 🐛 pass less [@imports](https://github.com/imports) as dependencies to svelte ([55e9d28](https://github.com/kaisermann/svelte-preprocess/commit/55e9d28fd03a2a1bf07c4d1b9ec3517fe2ce0cb3)) | ||
## [2.14.2](https://github.com/kaisermann/svelte-preprocess/compare/v2.14.1...v2.14.2) (2019-06-29) | ||
### Bug Fixes | ||
* pug mixin elseif ([#45](https://github.com/kaisermann/svelte-preprocess/issues/45)) ([98ad9ca](https://github.com/kaisermann/svelte-preprocess/commit/98ad9ca996c70da25666e4f1e9286d4dfd15fb36)) | ||
@@ -160,5 +136,32 @@ | ||
# [2.12.0](https://github.com/kaisermann/svelte-preprocess/compare/v2.7.1...v2.12.0) (2019-06-03) | ||
# [2.12.0](https://github.com/kaisermann/svelte-preprocess/compare/v2.11.0...v2.12.0) (2019-06-03) | ||
### Features | ||
* prepend scss with data property ([#36](https://github.com/kaisermann/svelte-preprocess/issues/36)) ([dfa2b2a](https://github.com/kaisermann/svelte-preprocess/commit/dfa2b2a24124c94c3d3af6e63eff8963489f7caa)) | ||
# [2.11.0](https://github.com/kaisermann/svelte-preprocess/compare/v2.10.0...v2.11.0) (2019-05-29) | ||
### Features | ||
* 🎸 add svelte pug mixins ([#38](https://github.com/kaisermann/svelte-preprocess/issues/38)) ([543ab75](https://github.com/kaisermann/svelte-preprocess/commit/543ab7557bd8e8172ea52e89355101d3c88a38ba)) | ||
# [2.10.0](https://github.com/kaisermann/svelte-preprocess/compare/v2.9.1...v2.10.0) (2019-05-27) | ||
### Features | ||
* 🎸 add support for typescript type checking ([#37](https://github.com/kaisermann/svelte-preprocess/issues/37)) ([e6dd744](https://github.com/kaisermann/svelte-preprocess/commit/e6dd7441db64906f79d7105723e23a8ef949e2d5)) | ||
## [2.9.1](https://github.com/kaisermann/svelte-preprocess/compare/v2.9.0...v2.9.1) (2019-05-27) | ||
### Bug Fixes | ||
@@ -169,8 +172,13 @@ | ||
# [2.9.0](https://github.com/kaisermann/svelte-preprocess/compare/v2.8.0...v2.9.0) (2019-05-15) | ||
# [2.8.0](https://github.com/kaisermann/svelte-preprocess/compare/v2.7.1...v2.8.0) (2019-05-15) | ||
### Features | ||
* 🎸 add support for typescript type checking ([#37](https://github.com/kaisermann/svelte-preprocess/issues/37)) ([e6dd744](https://github.com/kaisermann/svelte-preprocess/commit/e6dd7441db64906f79d7105723e23a8ef949e2d5)) | ||
* 🎸 add svelte pug mixins ([#38](https://github.com/kaisermann/svelte-preprocess/issues/38)) ([543ab75](https://github.com/kaisermann/svelte-preprocess/commit/543ab7557bd8e8172ea52e89355101d3c88a38ba)) | ||
* 🎸 add typescript preprocessor ([c195aa1](https://github.com/kaisermann/svelte-preprocess/commit/c195aa183b60899603d72743432de501b23f6087)) | ||
* prepend scss with data property ([#36](https://github.com/kaisermann/svelte-preprocess/issues/36)) ([dfa2b2a](https://github.com/kaisermann/svelte-preprocess/commit/dfa2b2a24124c94c3d3af6e63eff8963489f7caa)) | ||
@@ -177,0 +185,0 @@ |
@@ -1,125 +0,1 @@ | ||
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const strip_indent_1 = __importDefault(require("strip-indent")); | ||
const package_json_1 = require("svelte/package.json"); | ||
const utils_1 = require("./utils"); | ||
const SVELTE_MAJOR_VERSION = +package_json_1.version[0]; | ||
const ALIAS_OPTION_OVERRIDES = { | ||
sass: { | ||
indentedSyntax: true, | ||
}, | ||
}; | ||
function autoPreprocess({ onBefore, aliases, markupTagName = 'template', preserve = [], ...rest } = {}) { | ||
markupTagName = markupTagName.toLocaleLowerCase(); | ||
const optionsCache = {}; | ||
const transformers = rest.transformers || rest; | ||
const markupPattern = new RegExp(`<${markupTagName}([\\s\\S]*?)>([\\s\\S]*)<\\/${markupTagName}>`); | ||
if (aliases && aliases.length) { | ||
utils_1.addLanguageAlias(aliases); | ||
} | ||
const getTransformerOptions = (lang, alias) => { | ||
if (utils_1.isFn(transformers[alias])) | ||
return transformers[alias]; | ||
if (utils_1.isFn(transformers[lang])) | ||
return transformers[lang]; | ||
if (optionsCache[alias] != null) | ||
return optionsCache[alias]; | ||
const opts = {}; | ||
if (typeof transformers[lang] === 'object') { | ||
Object.assign(opts, transformers[lang]); | ||
} | ||
if (lang !== alias) { | ||
Object.assign(opts, ALIAS_OPTION_OVERRIDES[alias] || null); | ||
if (typeof transformers[alias] === 'object') { | ||
Object.assign(opts, transformers[alias]); | ||
} | ||
} | ||
return (optionsCache[alias] = opts); | ||
}; | ||
const getTransformerTo = (targetLanguage) => async (svelteFile) => { | ||
const { content, filename, lang, alias, dependencies } = await utils_1.parseFile(svelteFile, targetLanguage); | ||
if (preserve.includes(lang) || preserve.includes(alias)) { | ||
return; | ||
} | ||
if (lang === targetLanguage) { | ||
return { code: content, dependencies }; | ||
} | ||
if (transformers[lang] === false || transformers[alias] === false) { | ||
utils_1.throwUnsupportedError(alias, filename); | ||
} | ||
const transformed = await utils_1.runTransformer(lang, getTransformerOptions(lang, alias), { content: strip_indent_1.default(content), filename }); | ||
return { | ||
...transformed, | ||
dependencies: utils_1.concat(dependencies, transformed.dependencies), | ||
}; | ||
}; | ||
const scriptTransformer = getTransformerTo('javascript'); | ||
const cssTransformer = getTransformerTo('css'); | ||
const markupTransformer = getTransformerTo('html'); | ||
return { | ||
async markup({ content, filename }) { | ||
if (utils_1.isFn(onBefore)) { | ||
// istanbul ignore next | ||
if (SVELTE_MAJOR_VERSION >= 3) { | ||
console.warn('[svelte-preprocess] For svelte >= v3, instead of onBefore(), prefer to prepend a preprocess object to your array of preprocessors'); | ||
} | ||
content = await onBefore({ content, filename }); | ||
} | ||
const templateMatch = content.match(markupPattern); | ||
/** If no <template> was found, just return the original markup */ | ||
if (!templateMatch) { | ||
return { code: content }; | ||
} | ||
const [fullMatch, attributesStr, templateCode] = templateMatch; | ||
/** Transform an attribute string into a key-value object */ | ||
const attributes = attributesStr | ||
.split(/\s+/) | ||
.filter(Boolean) | ||
.reduce((acc, attr) => { | ||
const [name, value] = attr.split('='); | ||
// istanbul ignore next | ||
acc[name] = value ? value.replace(/['"]/g, '') : true; | ||
return acc; | ||
}, {}); | ||
/** Transform the found template code */ | ||
let { code, map, dependencies } = await markupTransformer({ | ||
content: templateCode, | ||
attributes, | ||
filename, | ||
}); | ||
code = | ||
content.slice(0, templateMatch.index) + | ||
code + | ||
content.slice(templateMatch.index + fullMatch.length); | ||
return { code, map, dependencies }; | ||
}, | ||
script: scriptTransformer, | ||
async style({ content, attributes, filename }) { | ||
let { code, map, dependencies } = await cssTransformer({ | ||
content, | ||
attributes, | ||
filename, | ||
}); | ||
if (transformers.postcss) { | ||
const transformed = await utils_1.runTransformer('postcss', transformers.postcss, { content: code, map, filename }); | ||
code = transformed.code; | ||
map = transformed.map; | ||
dependencies = utils_1.concat(dependencies, transformed.dependencies); | ||
} | ||
if (attributes.global) { | ||
const transformed = await utils_1.runTransformer('globalStyle', null, { | ||
content: code, | ||
map, | ||
filename, | ||
}); | ||
code = transformed.code; | ||
map = transformed.map; | ||
} | ||
return { code, map, dependencies }; | ||
}, | ||
}; | ||
} | ||
exports.autoPreprocess = autoPreprocess; | ||
"use strict";var __importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0});const strip_indent_1=__importDefault(require("strip-indent")),package_json_1=require("svelte/package.json"),utils_1=require("./utils"),SVELTE_MAJOR_VERSION=+package_json_1.version[0],ALIAS_OPTION_OVERRIDES={sass:{indentedSyntax:!0}};function autoPreprocess({onBefore:a,aliases:b,markupTagName:d="template",preserve:e=[],...c}={}){d=d.toLocaleLowerCase();const f={},g=c.transformers||c,h=new RegExp(`<${d}([\\s\\S]*?)>([\\s\\S]*)<\\/${d}>`);b&&b.length&&utils_1.addLanguageAlias(b);const i=(a,b)=>{if(utils_1.isFn(g[b]))return g[b];if(utils_1.isFn(g[a]))return g[a];if(null!=f[b])return f[b];const c={};return"object"==typeof g[a]&&Object.assign(c,g[a]),a!==b&&(Object.assign(c,ALIAS_OPTION_OVERRIDES[b]||null),"object"==typeof g[b]&&Object.assign(c,g[b])),f[b]=c},j=a=>async b=>{const{content:c,filename:d,lang:f,alias:h,dependencies:j}=await utils_1.parseFile(b,a);if(!(e.includes(f)||e.includes(h))){if(f===a)return{code:c,dependencies:j};(!1===g[f]||!1===g[h])&&utils_1.throwUnsupportedError(h,d);const b=await utils_1.runTransformer(f,i(f,h),{content:strip_indent_1.default(c),filename:d});return{...b,dependencies:utils_1.concat(j,b.dependencies)}}},k=j("javascript"),l=j("css"),m=j("html");return{async markup({content:b,filename:c}){utils_1.isFn(a)&&(3<=SVELTE_MAJOR_VERSION&&console.warn("[svelte-preprocess] For svelte >= v3, instead of onBefore(), prefer to prepend a preprocess object to your array of preprocessors"),b=await a({content:b,filename:c}));const d=b.match(h);if(!d)return{code:b};const[e,f,g]=d,i=f.split(/\s+/).filter(Boolean).reduce((a,b)=>{const[c,d]=b.split("=");return a[c]=!d||d.replace(/['"]/g,""),a},{});let{code:j,map:k,dependencies:l}=await m({content:g,attributes:i,filename:c});return j=b.slice(0,d.index)+j+b.slice(d.index+e.length),{code:j,map:k,dependencies:l}},script:k,async style({content:a,attributes:b,filename:c}){let{code:d,map:e,dependencies:f}=await l({content:a,attributes:b,filename:c});if(g.postcss){const a=await utils_1.runTransformer("postcss",g.postcss,{content:d,map:e,filename:c});d=a.code,e=a.map,f=utils_1.concat(f,a.dependencies)}if(b.global){const a=await utils_1.runTransformer("globalStyle",null,{content:d,map:e,filename:c});d=a.code,e=a.map}return{code:d,map:e,dependencies:f}}}}exports.autoPreprocess=autoPreprocess; |
@@ -1,30 +0,1 @@ | ||
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const autoProcess_1 = require("./autoProcess"); | ||
const pug_1 = __importDefault(require("./processors/pug")); | ||
const coffeescript_1 = __importDefault(require("./processors/coffeescript")); | ||
const typescript_1 = __importDefault(require("./processors/typescript")); | ||
const less_1 = __importDefault(require("./processors/less")); | ||
const scss_1 = __importDefault(require("./processors/scss")); | ||
const stylus_1 = __importDefault(require("./processors/stylus")); | ||
const postcss_1 = __importDefault(require("./processors/postcss")); | ||
const globalStyle_1 = __importDefault(require("./processors/globalStyle")); | ||
// crazy es6/cjs export mix for backward compatibility | ||
// default auto processor | ||
exports.default = exports = module.exports = autoProcess_1.autoPreprocess; | ||
// stand-alone processors to be included manually */ | ||
// Markup | ||
exports.pug = (opts) => pug_1.default(opts); | ||
// Script | ||
exports.coffeescript = (opts) => coffeescript_1.default(opts); | ||
exports.typescript = (opts) => typescript_1.default(opts); | ||
// Style | ||
exports.less = (opts) => less_1.default(opts); | ||
exports.scss = (opts) => scss_1.default(opts); | ||
exports.sass = (opts) => scss_1.default(opts); | ||
exports.stylus = (opts) => stylus_1.default(opts); | ||
exports.postcss = (opts) => postcss_1.default(opts); | ||
exports.globalStyle = () => globalStyle_1.default(); | ||
"use strict";var __importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0});const autoProcess_1=require("./autoProcess"),pug_1=__importDefault(require("./processors/pug")),coffeescript_1=__importDefault(require("./processors/coffeescript")),typescript_1=__importDefault(require("./processors/typescript")),less_1=__importDefault(require("./processors/less")),scss_1=__importDefault(require("./processors/scss")),stylus_1=__importDefault(require("./processors/stylus")),postcss_1=__importDefault(require("./processors/postcss")),globalStyle_1=__importDefault(require("./processors/globalStyle"));exports.default=exports=module.exports=autoProcess_1.autoPreprocess,exports.pug=a=>pug_1.default(a),exports.coffeescript=a=>coffeescript_1.default(a),exports.typescript=a=>typescript_1.default(a),exports.less=a=>less_1.default(a),exports.scss=a=>scss_1.default(a),exports.sass=a=>scss_1.default(a),exports.stylus=a=>stylus_1.default(a),exports.postcss=a=>postcss_1.default(a),exports.globalStyle=()=>globalStyle_1.default(); |
@@ -1,23 +0,1 @@ | ||
"use strict"; | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; | ||
result["default"] = mod; | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const utils_1 = require("../utils"); | ||
exports.default = (options) => ({ | ||
async script(svelteFile) { | ||
const { default: transformer } = await Promise.resolve().then(() => __importStar(require('../transformers/coffeescript'))); | ||
const { content, filename, lang, dependencies } = await utils_1.parseFile(svelteFile, 'javascript'); | ||
if (lang !== 'coffeescript') | ||
return { code: content }; | ||
const transformed = await transformer({ content, filename, options }); | ||
return { | ||
...transformed, | ||
dependencies: utils_1.concat(dependencies, transformed.dependencies), | ||
}; | ||
}, | ||
}); | ||
"use strict";var __importStar=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b};Object.defineProperty(exports,"__esModule",{value:!0});const utils_1=require("../utils");exports.default=a=>({async script(b){const{default:c}=await Promise.resolve().then(()=>__importStar(require("../transformers/coffeescript"))),{content:d,filename:e,lang:f,dependencies:g}=await utils_1.parseFile(b,"javascript");if("coffeescript"!==f)return{code:d};const h=await c({content:d,filename:e,options:a});return{...h,dependencies:utils_1.concat(g,h.dependencies)}}}); |
@@ -1,19 +0,1 @@ | ||
"use strict"; | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; | ||
result["default"] = mod; | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.default = () => { | ||
return { | ||
async style({ content, attributes, filename }) { | ||
const { default: transformer } = await Promise.resolve().then(() => __importStar(require('../transformers/globalStyle'))); | ||
if (!attributes.global) | ||
return { code: content }; | ||
return transformer({ content, filename }); | ||
}, | ||
}; | ||
}; | ||
"use strict";var __importStar=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=()=>({async style({content:a,attributes:b,filename:c}){const{default:d}=await Promise.resolve().then(()=>__importStar(require("../transformers/globalStyle")));return b.global?d({content:a,filename:c}):{code:a}}}); |
@@ -1,27 +0,1 @@ | ||
"use strict"; | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; | ||
result["default"] = mod; | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const utils_1 = require("../utils"); | ||
exports.default = (options) => ({ | ||
async style(svelteFile) { | ||
const { default: transformer } = await Promise.resolve().then(() => __importStar(require('../transformers/less'))); | ||
const { content, filename, lang, dependencies } = await utils_1.parseFile(svelteFile, 'css'); | ||
if (lang !== 'less') | ||
return { code: content }; | ||
const transformed = await transformer({ | ||
content, | ||
filename, | ||
options, | ||
}); | ||
return { | ||
...transformed, | ||
dependencies: utils_1.concat(dependencies, transformed.dependencies), | ||
}; | ||
}, | ||
}); | ||
"use strict";var __importStar=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b};Object.defineProperty(exports,"__esModule",{value:!0});const utils_1=require("../utils");exports.default=a=>({async style(b){const{default:c}=await Promise.resolve().then(()=>__importStar(require("../transformers/less"))),{content:d,filename:e,lang:f,dependencies:g}=await utils_1.parseFile(b,"css");if("less"!==f)return{code:d};const h=await c({content:d,filename:e,options:a});return{...h,dependencies:utils_1.concat(g,h.dependencies)}}}); |
@@ -1,23 +0,1 @@ | ||
"use strict"; | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; | ||
result["default"] = mod; | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const utils_1 = require("../utils"); | ||
/** Adapted from https://github.com/TehShrike/svelte-preprocess-postcss */ | ||
exports.default = (options) => ({ | ||
async style(svelteFile) { | ||
const { default: transformer } = await Promise.resolve().then(() => __importStar(require('../transformers/postcss'))); | ||
const { content, filename, dependencies } = await utils_1.parseFile(svelteFile, 'css'); | ||
/** If manually passed a plugins array, use it as the postcss config */ | ||
const transformed = await transformer({ content, filename, options }); | ||
return { | ||
...transformed, | ||
dependencies: utils_1.concat(dependencies, transformed.dependencies), | ||
}; | ||
}, | ||
}); | ||
"use strict";var __importStar=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b};Object.defineProperty(exports,"__esModule",{value:!0});const utils_1=require("../utils");exports.default=a=>({async style(b){const{default:c}=await Promise.resolve().then(()=>__importStar(require("../transformers/postcss"))),{content:d,filename:e,dependencies:f}=await utils_1.parseFile(b,"css"),g=await c({content:d,filename:e,options:a});return{...g,dependencies:utils_1.concat(f,g.dependencies)}}}); |
@@ -1,15 +0,1 @@ | ||
"use strict"; | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; | ||
result["default"] = mod; | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.default = (options) => ({ | ||
async markup({ content, filename }) { | ||
const { default: transformer } = await Promise.resolve().then(() => __importStar(require('../transformers/pug'))); | ||
return transformer({ content, filename, options }); | ||
}, | ||
}); | ||
"use strict";var __importStar=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=a=>({async markup({content:b,filename:c}){const{default:d}=await Promise.resolve().then(()=>__importStar(require("../transformers/pug")));return d({content:b,filename:c,options:a})}}); |
@@ -1,34 +0,1 @@ | ||
"use strict"; | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; | ||
result["default"] = mod; | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const utils_1 = require("../utils"); | ||
exports.default = (options) => ({ | ||
async style(svelteFile) { | ||
const { default: transformer } = await Promise.resolve().then(() => __importStar(require('../transformers/scss'))); | ||
const { content, filename, lang, alias, dependencies } = await utils_1.parseFile(svelteFile, 'css'); | ||
if (lang !== 'scss') | ||
return { code: content }; | ||
options = { | ||
includePaths: utils_1.getIncludePaths(filename), | ||
...options, | ||
}; | ||
if (alias === 'sass') { | ||
options.indentedSyntax = true; | ||
} | ||
const transformed = await transformer({ | ||
content, | ||
filename, | ||
options, | ||
}); | ||
return { | ||
...transformed, | ||
dependencies: utils_1.concat(dependencies, transformed.dependencies), | ||
}; | ||
}, | ||
}); | ||
"use strict";var __importStar=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b};Object.defineProperty(exports,"__esModule",{value:!0});const utils_1=require("../utils");exports.default=a=>({async style(b){const{default:c}=await Promise.resolve().then(()=>__importStar(require("../transformers/scss"))),{content:d,filename:e,lang:f,alias:g,dependencies:h}=await utils_1.parseFile(b,"css");if("scss"!==f)return{code:d};a={includePaths:utils_1.getIncludePaths(e),...a},"sass"===g&&(a.indentedSyntax=!0);const i=await c({content:d,filename:e,options:a});return{...i,dependencies:utils_1.concat(h,i.dependencies)}}}); |
@@ -1,27 +0,1 @@ | ||
"use strict"; | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; | ||
result["default"] = mod; | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const utils_1 = require("../utils"); | ||
exports.default = (options) => ({ | ||
async style(svelteFile) { | ||
const { default: transformer } = await Promise.resolve().then(() => __importStar(require('../transformers/stylus'))); | ||
const { content, filename, lang, dependencies } = await utils_1.parseFile(svelteFile, 'css'); | ||
if (lang !== 'stylus') | ||
return { code: content }; | ||
options = { | ||
paths: utils_1.getIncludePaths(filename), | ||
...options, | ||
}; | ||
const transformed = await transformer({ content, filename, options }); | ||
return { | ||
...transformed, | ||
dependencies: utils_1.concat(dependencies, transformed.dependencies), | ||
}; | ||
}, | ||
}); | ||
"use strict";var __importStar=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b};Object.defineProperty(exports,"__esModule",{value:!0});const utils_1=require("../utils");exports.default=a=>({async style(b){const{default:c}=await Promise.resolve().then(()=>__importStar(require("../transformers/stylus"))),{content:d,filename:e,lang:f,dependencies:g}=await utils_1.parseFile(b,"css");if("stylus"!==f)return{code:d};a={paths:utils_1.getIncludePaths(e),...a};const h=await c({content:d,filename:e,options:a});return{...h,dependencies:utils_1.concat(g,h.dependencies)}}}); |
@@ -1,23 +0,1 @@ | ||
"use strict"; | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; | ||
result["default"] = mod; | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const utils_1 = require("../utils"); | ||
exports.default = (options) => ({ | ||
async script(svelteFile) { | ||
const { default: transformer } = await Promise.resolve().then(() => __importStar(require('../transformers/typescript'))); | ||
const { content, filename, lang, dependencies } = await utils_1.parseFile(svelteFile, 'javascript'); | ||
if (lang !== 'typescript') | ||
return { code: content }; | ||
const transformed = await transformer({ content, filename, options }); | ||
return { | ||
...transformed, | ||
dependencies: utils_1.concat(dependencies, transformed.dependencies), | ||
}; | ||
}, | ||
}); | ||
"use strict";var __importStar=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b};Object.defineProperty(exports,"__esModule",{value:!0});const utils_1=require("../utils");exports.default=a=>({async script(b){const{default:c}=await Promise.resolve().then(()=>__importStar(require("../transformers/typescript"))),{content:d,filename:e,lang:f,dependencies:g}=await utils_1.parseFile(b,"javascript");if("typescript"!==f)return{code:d};const h=await c({content:d,filename:e,options:a});return{...h,dependencies:utils_1.concat(g,h.dependencies)}}}); |
@@ -1,15 +0,1 @@ | ||
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const coffeescript_1 = __importDefault(require("coffeescript")); | ||
const transformer = ({ content, filename, options, }) => { | ||
const { js: code, sourceMap: map } = coffeescript_1.default.compile(content, { | ||
filename, | ||
sourceMap: true, | ||
...options, | ||
}); | ||
return { code, map }; | ||
}; | ||
exports.default = transformer; | ||
"use strict";var __importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0});const coffeescript_1=__importDefault(require("coffeescript")),transformer=({content:a,filename:b,options:c})=>{const{js:d,sourceMap:e}=coffeescript_1.default.compile(a,{filename:b,sourceMap:!0,...c});return{code:d,map:e}};exports.default=transformer; |
@@ -1,26 +0,1 @@ | ||
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const postcss_1 = __importDefault(require("postcss")); | ||
const globalifyPlugin = (root) => { | ||
root.walkAtRules(/keyframes$/, (atrule) => { | ||
if (!atrule.params.startsWith('-global-')) { | ||
atrule.params = '-global-' + atrule.params; | ||
} | ||
}); | ||
root.walkRules((rule) => { | ||
if (rule.parent && rule.parent.name === 'keyframes') { | ||
return; | ||
} | ||
rule.selectors = rule.selectors.map((selector) => selector.startsWith(':global') ? selector : `:global(${selector})`); | ||
}); | ||
}; | ||
const transformer = async ({ content, filename }) => { | ||
const { css, map: newMap } = await postcss_1.default() | ||
.use(globalifyPlugin) | ||
.process(content, { from: filename, map: true }); | ||
return { code: css, map: newMap }; | ||
}; | ||
exports.default = transformer; | ||
"use strict";var __importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0});const postcss_1=__importDefault(require("postcss")),globalifyPlugin=a=>{a.walkAtRules(/keyframes$/,a=>{a.params.startsWith("-global-")||(a.params="-global-"+a.params)}),a.walkRules(a=>{a.parent&&"keyframes"===a.parent.name||(a.selectors=a.selectors.map(a=>a.startsWith(":global")?a:`:global(${a})`))})},transformer=async({content:a,filename:b})=>{const{css:c,map:d}=await postcss_1.default().use(globalifyPlugin).process(a,{from:b,map:!0});return{code:c,map:d}};exports.default=transformer; |
@@ -1,24 +0,1 @@ | ||
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const less_1 = __importDefault(require("less")); | ||
const utils_1 = require("../utils"); | ||
const transformer = async ({ content, filename, options, }) => { | ||
options = { | ||
paths: utils_1.getIncludePaths(filename), | ||
...options, | ||
}; | ||
const { css, map, imports } = await less_1.default.render(content, { | ||
sourceMap: {}, | ||
filename, | ||
...options, | ||
}); | ||
return { | ||
code: css, | ||
map, | ||
dependencies: imports, | ||
}; | ||
}; | ||
exports.default = transformer; | ||
"use strict";var __importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0});const less_1=__importDefault(require("less")),utils_1=require("../utils"),transformer=async({content:a,filename:b,options:c})=>{c={paths:utils_1.getIncludePaths(b),...c};const{css:d,map:e,imports:f}=await less_1.default.render(a,{sourceMap:{},filename:b,...c});return{code:d,map:e,dependencies:f}};exports.default=transformer; |
@@ -1,55 +0,1 @@ | ||
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; | ||
result["default"] = mod; | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const postcss_1 = __importDefault(require("postcss")); | ||
const process = async ({ plugins, parser, syntax }, content, filename, sourceMap) => { | ||
const { css, map, messages } = await postcss_1.default(plugins).process(content, { | ||
from: filename, | ||
map: { | ||
prev: sourceMap, | ||
}, | ||
parser, | ||
syntax, | ||
}); | ||
const dependencies = messages.reduce((acc, msg) => { | ||
// istanbul ignore if | ||
if (msg.type !== 'dependency') | ||
return acc; | ||
acc.push(msg.file); | ||
return acc; | ||
}, []); | ||
return { code: css, map, dependencies }; | ||
}; | ||
/** Adapted from https://github.com/TehShrike/svelte-preprocess-postcss */ | ||
const transformer = async ({ content, filename, options, map = undefined, }) => { | ||
if (options && Array.isArray(options.plugins)) { | ||
return process(options, content, filename, map); | ||
} | ||
try { | ||
/** If not, look for a postcss config file */ | ||
const { default: postcssLoadConfig } = await Promise.resolve().then(() => __importStar(require(`postcss-load-config`))); | ||
options = await postcssLoadConfig(options, options ? options.configFilePath : undefined); | ||
} | ||
catch (e) { | ||
/** Something went wrong, do nothing */ | ||
// istanbul ignore next | ||
if (e.code === 'MODULE_NOT_FOUND') { | ||
console.error(`[svelte-preprocess] PostCSS configuration was not passed. If you expect to load it from a file, make sure to install "postcss-load-config" and try again ʕ•ᴥ•ʔ`); | ||
} | ||
else { | ||
console.error(e); | ||
} | ||
return { code: content, map, dependencies: [] }; | ||
} | ||
return process(options, content, filename, map); | ||
}; | ||
exports.default = transformer; | ||
"use strict";var __importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}},__importStar=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b};Object.defineProperty(exports,"__esModule",{value:!0});const postcss_1=__importDefault(require("postcss")),process=async({plugins:a,parser:b,syntax:c},d,e,f)=>{const{css:g,map:h,messages:i}=await postcss_1.default(a).process(d,{from:e,map:{prev:f},parser:b,syntax:c}),j=i.reduce((a,b)=>"dependency"===b.type?(a.push(b.file),a):a,[]);return{code:g,map:h,dependencies:j}},transformer=async({content:a,filename:b,options:c,map:d=void 0})=>{if(c&&Array.isArray(c.plugins))return process(c,a,b,d);try{const{default:a}=await Promise.resolve().then(()=>__importStar(require(`postcss-load-config`)));c=await a(c,c?c.configFilePath:void 0)}catch(b){return"MODULE_NOT_FOUND"===b.code?console.error(`[svelte-preprocess] PostCSS configuration was not passed. If you expect to load it from a file, make sure to install "postcss-load-config" and try again ʕ•ᴥ•ʔ`):console.error(b),{code:a,map:d,dependencies:[]}}return process(c,a,b,d)};exports.default=transformer; |
@@ -1,10 +0,2 @@ | ||
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const detect_indent_1 = __importDefault(require("detect-indent")); | ||
const pug_1 = __importDefault(require("pug")); | ||
// Mixins to use svelte template features | ||
const GET_MIXINS = (identationType) => `mixin if(condition) | ||
"use strict";var __importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0});const detect_indent_1=__importDefault(require("detect-indent")),pug_1=__importDefault(require("pug")),GET_MIXINS=a=>`mixin if(condition) | ||
%_| {#if !{condition}} | ||
@@ -41,13 +33,2 @@ %_block | ||
mixin debug(variables) | ||
%_| {@debug !{variables}}`.replace(/%_/g, identationType === 'tab' ? '\t' : ' '); | ||
const transformer = async ({ content, filename, options, }) => { | ||
options = { | ||
doctype: 'html', | ||
filename, | ||
...options, | ||
}; | ||
const { type: identationType } = detect_indent_1.default(content); | ||
const code = pug_1.default.render(`${GET_MIXINS(identationType)}\n${content}`, options); | ||
return { code }; | ||
}; | ||
exports.default = transformer; | ||
%_| {@debug !{variables}}`.replace(/%_/g,"tab"===a?"\t":" "),transformer=async({content:a,filename:b,options:c})=>{c={doctype:"html",filename:b,...c};const{type:d}=detect_indent_1.default(a),e=pug_1.default.render(`${GET_MIXINS(d)}\n${a}`,c);return{code:e}};exports.default=transformer; |
@@ -1,28 +0,1 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const utils_1 = require("../utils"); | ||
let sass; | ||
const transformer = async ({ content, filename, options, }) => { | ||
if (sass == null) { | ||
({ default: sass } = await utils_1.importAny('node-sass', 'sass')); | ||
} | ||
options = { | ||
sourceMap: true, | ||
includePaths: utils_1.getIncludePaths(filename), | ||
...options, | ||
outFile: filename + '.css', | ||
}; | ||
options.data = options.data ? options.data + content : content; | ||
return new Promise((resolve, reject) => { | ||
sass.render(options, (err, result) => { | ||
if (err) | ||
return reject(err); | ||
resolve({ | ||
code: result.css.toString(), | ||
map: result.map ? result.map.toString() : undefined, | ||
dependencies: result.stats.includedFiles, | ||
}); | ||
}); | ||
}); | ||
}; | ||
exports.default = transformer; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const utils_1=require("../utils");let sass;const transformer=async({content:a,filename:b,options:c})=>(null==sass&&({default:sass}=await utils_1.importAny("node-sass","sass")),c={sourceMap:!0,includePaths:utils_1.getIncludePaths(b),...c,outFile:b+".css"},c.data=c.data?c.data+a:a,new Promise((a,b)=>{sass.render(c,(c,d)=>c?b(c):void a({code:d.css.toString(),map:d.map?d.map.toString():void 0,dependencies:d.stats.includedFiles}))}));exports.default=transformer; |
@@ -1,30 +0,1 @@ | ||
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const stylus_1 = __importDefault(require("stylus")); | ||
const utils_1 = require("../utils"); | ||
const transformer = ({ content, filename, options, }) => { | ||
options = { | ||
paths: utils_1.getIncludePaths(filename), | ||
...options, | ||
}; | ||
return new Promise((resolve, reject) => { | ||
const style = stylus_1.default(content, { | ||
filename, | ||
...options, | ||
}).set('sourcemap', options.sourcemap); | ||
style.render((err, css) => { | ||
// istanbul ignore next | ||
if (err) | ||
reject(err); | ||
resolve({ | ||
code: css, | ||
map: style.sourcemap, | ||
dependencies: style.deps(filename), | ||
}); | ||
}); | ||
}); | ||
}; | ||
exports.default = transformer; | ||
"use strict";var __importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0});const stylus_1=__importDefault(require("stylus")),utils_1=require("../utils"),transformer=({content:a,filename:b,options:c})=>(c={paths:utils_1.getIncludePaths(b),...c},new Promise((d,e)=>{const f=stylus_1.default(a,{filename:b,...c}).set("sourcemap",c.sourcemap);f.render((a,c)=>{a&&e(a),d({code:c,map:f.sourcemap,dependencies:f.deps(b)})})}));exports.default=transformer; |
@@ -1,168 +0,1 @@ | ||
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const fs_1 = require("fs"); | ||
const path_1 = require("path"); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
function createFormatDiagnosticsHost(cwd) { | ||
return { | ||
getCanonicalFileName: (fileName) => fileName, | ||
getCurrentDirectory: () => cwd, | ||
getNewLine: () => typescript_1.default.sys.newLine, | ||
}; | ||
} | ||
function formatDiagnostics(diagnostics, basePath) { | ||
if (Array.isArray(diagnostics)) { | ||
return typescript_1.default.formatDiagnosticsWithColorAndContext(diagnostics, createFormatDiagnosticsHost(basePath)); | ||
} | ||
return typescript_1.default.formatDiagnostic(diagnostics, createFormatDiagnosticsHost(basePath)); | ||
} | ||
function getFilenameExtension(filename) { | ||
filename = path_1.basename(filename); | ||
const lastDotIndex = filename.lastIndexOf('.'); | ||
if (lastDotIndex <= 0) | ||
return ''; | ||
return filename.substr(lastDotIndex + 1); | ||
} | ||
function isSvelteFile(filename) { | ||
const importExtension = getFilenameExtension(filename); | ||
return importExtension === 'svelte' || importExtension === 'html'; | ||
} | ||
const IMPORTEE_PATTERN = /['"](.*?)['"]/; | ||
function isValidSvelteImportDiagnostic(filename, diagnostic) { | ||
// TS2307: 'cannot find module' | ||
if (diagnostic.code !== 2307) | ||
return true; | ||
const importeeMatch = diagnostic.messageText.match(IMPORTEE_PATTERN); | ||
// istanbul ignore if | ||
if (!importeeMatch) | ||
return true; | ||
let [, importeePath] = importeeMatch; | ||
/** if we're not dealing with a relative path, assume the file exists */ | ||
if (importeePath[0] !== '.') | ||
return false; | ||
/** if the importee is not a svelte file, do nothing */ | ||
if (!isSvelteFile(importeePath)) | ||
return true; | ||
importeePath = path_1.resolve(path_1.dirname(filename), importeePath); | ||
return fs_1.existsSync(importeePath) === false; | ||
} | ||
const TS_TRANSFORMERS = { | ||
before: [ | ||
(context) => { | ||
const visit = (node) => { | ||
if (typescript_1.default.isImportDeclaration(node)) { | ||
const importedFilename = node.moduleSpecifier.getText().slice(1, -1); | ||
// istanbul ignore else | ||
if (isSvelteFile(importedFilename)) { | ||
return typescript_1.default.createImportDeclaration(node.decorators, node.modifiers, node.importClause, node.moduleSpecifier); | ||
} | ||
} | ||
return typescript_1.default.visitEachChild(node, child => visit(child), context); | ||
}; | ||
return (node) => typescript_1.default.visitNode(node, visit); | ||
}, | ||
], | ||
}; | ||
function compileFileFromMemory(compilerOptions, { filename, content }) { | ||
let code = content; | ||
let map; | ||
const realHost = typescript_1.default.createCompilerHost(compilerOptions, true); | ||
const dummyFilePath = filename; | ||
const dummySourceFile = typescript_1.default.createSourceFile(dummyFilePath, code, typescript_1.default.ScriptTarget.Latest); | ||
const host = { | ||
fileExists: (filePath) => filePath === dummyFilePath || realHost.fileExists(filePath), | ||
directoryExists: realHost.directoryExists && realHost.directoryExists.bind(realHost), | ||
getCurrentDirectory: realHost.getCurrentDirectory.bind(realHost), | ||
getDirectories: realHost.getDirectories.bind(realHost), | ||
getCanonicalFileName: (fileName) => realHost.getCanonicalFileName(fileName), | ||
getNewLine: realHost.getNewLine.bind(realHost), | ||
getDefaultLibFileName: realHost.getDefaultLibFileName.bind(realHost), | ||
getSourceFile: (fileName, languageVersion, onError, shouldCreateNewSourceFile) => fileName === dummyFilePath | ||
? dummySourceFile | ||
: realHost.getSourceFile(fileName, languageVersion, onError, shouldCreateNewSourceFile), | ||
readFile: (filePath) => | ||
// istanbul ignore next | ||
filePath === dummyFilePath ? content : realHost.readFile(filePath), | ||
useCaseSensitiveFileNames: () => realHost.useCaseSensitiveFileNames(), | ||
writeFile: (fileName, data) => { | ||
if (fileName.endsWith('.map')) { | ||
map = data; | ||
} | ||
else { | ||
code = data; | ||
} | ||
}, | ||
}; | ||
const program = typescript_1.default.createProgram([dummyFilePath], compilerOptions, host); | ||
const emitResult = program.emit(undefined, undefined, undefined, undefined, TS_TRANSFORMERS); | ||
// collect diagnostics without svelte import errors | ||
const diagnostics = [ | ||
...emitResult.diagnostics, | ||
...typescript_1.default.getPreEmitDiagnostics(program), | ||
].filter(diagnostic => isValidSvelteImportDiagnostic(filename, diagnostic)); | ||
return { code, map, diagnostics }; | ||
} | ||
const transformer = ({ content, filename, options, }) => { | ||
// default options | ||
const compilerOptionsJSON = { | ||
moduleResolution: 'node', | ||
sourceMap: true, | ||
strict: true, | ||
target: 'es6', | ||
}; | ||
let basePath = process.cwd(); | ||
if (options.tsconfigFile !== false || options.tsconfigDirectory) { | ||
const fileDirectory = (options.tsconfigDirectory || | ||
path_1.dirname(filename)); | ||
const tsconfigFile = (options.tsconfigFile || | ||
typescript_1.default.findConfigFile(fileDirectory, typescript_1.default.sys.fileExists)); | ||
basePath = path_1.dirname(tsconfigFile); | ||
const { error, config } = typescript_1.default.readConfigFile(tsconfigFile, typescript_1.default.sys.readFile); | ||
if (error) { | ||
throw new Error(formatDiagnostics(error, basePath)); | ||
} | ||
Object.assign(compilerOptionsJSON, config.compilerOptions); | ||
} | ||
Object.assign(compilerOptionsJSON, options.compilerOptions); | ||
const { errors, options: convertedCompilerOptions, } = typescript_1.default.convertCompilerOptionsFromJson(compilerOptionsJSON, basePath); | ||
if (errors.length) { | ||
throw new Error(formatDiagnostics(errors, basePath)); | ||
} | ||
const compilerOptions = { | ||
...convertedCompilerOptions, | ||
allowNonTsExtensions: true, | ||
}; | ||
if (compilerOptions.target === typescript_1.default.ScriptTarget.ES3 || | ||
compilerOptions.target === typescript_1.default.ScriptTarget.ES5) { | ||
throw new Error(`Svelte only supports es6+ syntax. Set your 'compilerOptions.target' to 'es6' or higher.`); | ||
} | ||
let code, map, diagnostics; | ||
if (options.transpileOnly || compilerOptions.transpileOnly) { | ||
({ outputText: code, sourceMapText: map, diagnostics } = typescript_1.default.transpileModule(content, { | ||
fileName: filename, | ||
compilerOptions: compilerOptions, | ||
reportDiagnostics: options.reportDiagnostics !== false, | ||
})); | ||
} | ||
else { | ||
({ code, map, diagnostics } = compileFileFromMemory(compilerOptions, { | ||
filename, | ||
content, | ||
})); | ||
} | ||
if (diagnostics.length > 0) { | ||
// could this be handled elsewhere? | ||
const formattedDiagnostics = formatDiagnostics(diagnostics, basePath); | ||
console.log(formattedDiagnostics); | ||
} | ||
return { | ||
code, | ||
map, | ||
diagnostics, | ||
dependencies: [], | ||
}; | ||
}; | ||
exports.default = transformer; | ||
"use strict";var __importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0});const fs_1=require("fs"),path_1=require("path"),typescript_1=__importDefault(require("typescript"));function createFormatDiagnosticsHost(a){return{getCanonicalFileName:a=>a,getCurrentDirectory:()=>a,getNewLine:()=>typescript_1.default.sys.newLine}}function formatDiagnostics(a,b){return Array.isArray(a)?typescript_1.default.formatDiagnosticsWithColorAndContext(a,createFormatDiagnosticsHost(b)):typescript_1.default.formatDiagnostic(a,createFormatDiagnosticsHost(b))}function getFilenameExtension(a){a=path_1.basename(a);const b=a.lastIndexOf(".");return 0>=b?"":a.substr(b+1)}function isSvelteFile(a){const b=getFilenameExtension(a);return"svelte"===b||"html"===b}const IMPORTEE_PATTERN=/['"](.*?)['"]/;function isValidSvelteImportDiagnostic(a,b){if(2307!==b.code)return!0;const c=b.messageText.match(IMPORTEE_PATTERN);if(!c)return!0;let[,d]=c;return!("."!==d[0])&&(!isSvelteFile(d)||(d=path_1.resolve(path_1.dirname(a),d),!1===fs_1.existsSync(d)))}const TS_TRANSFORMERS={before:[a=>{const b=c=>{if(typescript_1.default.isImportDeclaration(c)){const a=c.moduleSpecifier.getText().slice(1,-1);if(isSvelteFile(a))return typescript_1.default.createImportDeclaration(c.decorators,c.modifiers,c.importClause,c.moduleSpecifier)}return typescript_1.default.visitEachChild(c,a=>b(a),a)};return a=>typescript_1.default.visitNode(a,b)}]};function compileFileFromMemory(a,{filename:b,content:c}){let d,e=c;const f=typescript_1.default.createCompilerHost(a,!0),g=b,h=typescript_1.default.createSourceFile(g,e,typescript_1.default.ScriptTarget.Latest),i={fileExists:a=>a===g||f.fileExists(a),directoryExists:f.directoryExists&&f.directoryExists.bind(f),getCurrentDirectory:f.getCurrentDirectory.bind(f),getDirectories:f.getDirectories.bind(f),getCanonicalFileName:a=>f.getCanonicalFileName(a),getNewLine:f.getNewLine.bind(f),getDefaultLibFileName:f.getDefaultLibFileName.bind(f),getSourceFile:(a,b,c,d)=>a===g?h:f.getSourceFile(a,b,c,d),readFile:a=>a===g?c:f.readFile(a),useCaseSensitiveFileNames:()=>f.useCaseSensitiveFileNames(),writeFile:(a,b)=>{a.endsWith(".map")?d=b:e=b}},j=typescript_1.default.createProgram([g],a,i),k=j.emit(void 0,void 0,void 0,void 0,TS_TRANSFORMERS),l=[...k.diagnostics,...typescript_1.default.getPreEmitDiagnostics(j)].filter(a=>isValidSvelteImportDiagnostic(b,a));return{code:e,map:d,diagnostics:l}}const transformer=({content:a,filename:b,options:c})=>{const d={moduleResolution:"node",sourceMap:!0,strict:!0,target:"es6"};let e=process.cwd();if(!1!==c.tsconfigFile||c.tsconfigDirectory){const a=c.tsconfigDirectory||path_1.dirname(b),f=c.tsconfigFile||typescript_1.default.findConfigFile(a,typescript_1.default.sys.fileExists);e=path_1.dirname(f);const{error:g,config:h}=typescript_1.default.readConfigFile(f,typescript_1.default.sys.readFile);if(g)throw new Error(formatDiagnostics(g,e));Object.assign(d,h.compilerOptions)}Object.assign(d,c.compilerOptions);const{errors:f,options:g}=typescript_1.default.convertCompilerOptionsFromJson(d,e);if(f.length)throw new Error(formatDiagnostics(f,e));const h={...g,allowNonTsExtensions:!0};if(h.target===typescript_1.default.ScriptTarget.ES3||h.target===typescript_1.default.ScriptTarget.ES5)throw new Error(`Svelte only supports es6+ syntax. Set your 'compilerOptions.target' to 'es6' or higher.`);let i,j,k;if(c.transpileOnly||h.transpileOnly?({outputText:i,sourceMapText:j,diagnostics:k}=typescript_1.default.transpileModule(a,{fileName:b,compilerOptions:h,reportDiagnostics:!1!==c.reportDiagnostics})):({code:i,map:j,diagnostics:k}=compileFileFromMemory(h,{filename:b,content:a})),0<k.length){const a=formatDiagnostics(k,e);console.log(a)}return{code:i,map:j,diagnostics:k,dependencies:[]}};exports.default=transformer; |
@@ -1,2 +0,1 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}); |
@@ -1,136 +0,1 @@ | ||
"use strict"; | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; | ||
result["default"] = mod; | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const fs_1 = require("fs"); | ||
const path_1 = require("path"); | ||
const LANG_DICT = new Map([ | ||
['pcss', 'css'], | ||
['postcss', 'css'], | ||
['sass', 'scss'], | ||
['styl', 'stylus'], | ||
['js', 'javascript'], | ||
['coffee', 'coffeescript'], | ||
['ts', 'typescript'], | ||
]); | ||
const throwError = (msg) => { | ||
throw new Error(`[svelte-preprocess] ${msg}`); | ||
}; | ||
exports.concat = (...arrs) => arrs.reduce((acc, a) => (a ? acc.concat(a) : acc), []); | ||
exports.throwUnsupportedError = (lang, filename) => throwError(`Unsupported script language '${lang}' in file '${filename}'`); | ||
exports.isFn = (maybeFn) => typeof maybeFn === 'function'; | ||
exports.resolveSrc = (importerFile, srcPath) => path_1.resolve(path_1.dirname(importerFile), srcPath); | ||
exports.getSrcContent = (file) => { | ||
return new Promise((resolve, reject) => { | ||
fs_1.readFile(file, (error, data) => { | ||
// istanbul ignore if | ||
if (error) | ||
reject(error); | ||
else | ||
resolve(data.toString()); | ||
}); | ||
}); | ||
}; | ||
async function doesFileExist(file) { | ||
return new Promise(resolve => fs_1.access(file, 0, err => resolve(!err))); | ||
} | ||
exports.parseFile = async ({ attributes, filename, content }, language) => { | ||
const dependencies = []; | ||
if (attributes.src) { | ||
// istanbul ignore if | ||
if (typeof attributes.src !== 'string') { | ||
throw new Error('src attribute must be string'); | ||
} | ||
let path = attributes.src; | ||
/** Only try to get local files (path starts with ./ or ../) */ | ||
if (path.match(/^(https?:)?\/\//) == null) { | ||
path = exports.resolveSrc(filename, path); | ||
if (await doesFileExist(path)) { | ||
content = await exports.getSrcContent(path); | ||
dependencies.push(path); | ||
} | ||
} | ||
} | ||
const { lang, alias } = exports.getLanguage(attributes, language); | ||
return { | ||
filename, | ||
attributes, | ||
content, | ||
lang, | ||
alias, | ||
dependencies, | ||
}; | ||
}; | ||
exports.addLanguageAlias = (entries) => entries.forEach(entry => LANG_DICT.set(...entry)); | ||
/** Paths used by preprocessors to resolve @imports */ | ||
exports.getIncludePaths = (fromFilename) => [ | ||
process.cwd(), | ||
fromFilename.length && path_1.dirname(fromFilename), | ||
'node_modules', | ||
].filter(Boolean); | ||
exports.getLanguage = (attributes, defaultLang) => { | ||
let lang = defaultLang; | ||
if (attributes.lang) { | ||
// istanbul ignore if | ||
if (typeof attributes.lang !== 'string') { | ||
throw new Error('lang attribute must be string'); | ||
} | ||
lang = attributes.lang; | ||
} | ||
else if (attributes.type) { | ||
// istanbul ignore if | ||
if (typeof attributes.type !== 'string') { | ||
throw new Error('type attribute must be string'); | ||
} | ||
lang = attributes.type.replace(/^(text|application)\/(.*)$/, '$2'); | ||
} | ||
else if (attributes.src) { | ||
// istanbul ignore if | ||
if (typeof attributes.src !== 'string') { | ||
throw new Error('src attribute must be string'); | ||
} | ||
const parts = path_1.basename(attributes.src).split('.'); | ||
lang = parts.length > 1 ? parts.pop() : defaultLang; | ||
} | ||
return { | ||
lang: LANG_DICT.get(lang) || lang, | ||
alias: lang, | ||
}; | ||
}; | ||
const TRANSFORMERS = {}; | ||
exports.runTransformer = async (name, options, { content, map, filename }) => { | ||
if (typeof options === 'function') { | ||
return options({ content, map, filename }); | ||
} | ||
try { | ||
if (!TRANSFORMERS[name]) { | ||
await Promise.resolve().then(() => __importStar(require(`./transformers/${name}`))).then(mod => { | ||
// istanbul ignore else | ||
TRANSFORMERS[name] = mod.default; | ||
}); | ||
} | ||
return TRANSFORMERS[name]({ | ||
content, | ||
filename, | ||
map, | ||
options: typeof options === 'boolean' ? null : options, | ||
}); | ||
} | ||
catch (e) { | ||
throwError(`Error transforming '${name}'.\n\nMessage:\n${e.message}\n\nStack:\n${e.stack}`); | ||
} | ||
}; | ||
exports.importAny = async (...modules) => { | ||
try { | ||
const mod = await modules.reduce((acc, moduleName) => acc.catch(() => Promise.resolve().then(() => __importStar(require(moduleName)))), Promise.reject()); | ||
return mod; | ||
} | ||
catch (e) { | ||
throw new Error(`Cannot find any of modules: ${modules}`); | ||
} | ||
}; | ||
"use strict";var __importStar=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b};Object.defineProperty(exports,"__esModule",{value:!0});const fs_1=require("fs"),path_1=require("path"),LANG_DICT=new Map([["pcss","css"],["postcss","css"],["sass","scss"],["styl","stylus"],["js","javascript"],["coffee","coffeescript"],["ts","typescript"]]),throwError=a=>{throw new Error(`[svelte-preprocess] ${a}`)};exports.concat=(...a)=>a.reduce((b,c)=>c?b.concat(c):b,[]),exports.throwUnsupportedError=(a,b)=>throwError(`Unsupported script language '${a}' in file '${b}'`),exports.isFn=a=>"function"==typeof a,exports.resolveSrc=(a,b)=>path_1.resolve(path_1.dirname(a),b),exports.getSrcContent=a=>new Promise((b,c)=>{fs_1.readFile(a,(a,d)=>{a?c(a):b(d.toString())})});async function doesFileExist(a){return new Promise(b=>fs_1.access(a,0,a=>b(!a)))}exports.parseFile=async({attributes:a,filename:b,content:c},d)=>{const e=[];if(a.src){if("string"!=typeof a.src)throw new Error("src attribute must be string");let d=a.src;null==d.match(/^(https?:)?\/\//)&&(d=exports.resolveSrc(b,d),(await doesFileExist(d))&&(c=await exports.getSrcContent(d),e.push(d)))}const{lang:f,alias:g}=exports.getLanguage(a,d);return{filename:b,attributes:a,content:c,lang:f,alias:g,dependencies:e}},exports.addLanguageAlias=a=>a.forEach(a=>LANG_DICT.set(...a)),exports.getIncludePaths=a=>[process.cwd(),a.length&&path_1.dirname(a),"node_modules"].filter(Boolean),exports.getLanguage=(a,b)=>{let c=b;if(a.lang){if("string"!=typeof a.lang)throw new Error("lang attribute must be string");c=a.lang}else if(a.type){if("string"!=typeof a.type)throw new Error("type attribute must be string");c=a.type.replace(/^(text|application)\/(.*)$/,"$2")}else if(a.src){if("string"!=typeof a.src)throw new Error("src attribute must be string");const d=path_1.basename(a.src).split(".");c=1<d.length?d.pop():b}return{lang:LANG_DICT.get(c)||c,alias:c}};const TRANSFORMERS={};exports.runTransformer=async(a,b,{content:c,map:d,filename:e})=>{if("function"==typeof b)return b({content:c,map:d,filename:e});try{return TRANSFORMERS[a]||(await Promise.resolve().then(()=>__importStar(require(`./transformers/${a}`))).then(b=>{TRANSFORMERS[a]=b.default})),TRANSFORMERS[a]({content:c,filename:e,map:d,options:"boolean"==typeof b?null:b})}catch(b){throwError(`Error transforming '${a}'.\n\nMessage:\n${b.message}\n\nStack:\n${b.stack}`)}},exports.importAny=async(...a)=>{try{const b=await a.reduce((a,b)=>a.catch(()=>Promise.resolve().then(()=>__importStar(require(b)))),Promise.reject());return b}catch(b){throw new Error(`Cannot find any of modules: ${a}`)}}; |
{ | ||
"name": "svelte-preprocess", | ||
"version": "3.2.0-alpha.2", | ||
"version": "3.2.0", | ||
"license": "MIT", | ||
@@ -39,3 +39,3 @@ "main": "dist/index.js", | ||
"minify": "babel-minify dist -d dist", | ||
"prepublishOnly2": "npm run build && npm run minify && npm run release && npm run tag" | ||
"prepublishOnly": "npm run build && npm run minify && npm run release && npm run tag" | ||
}, | ||
@@ -57,2 +57,3 @@ "auto-changelog": { | ||
"@types/node": "^12.7.8", | ||
"@types/stylus": "^0.48.31", | ||
"@typescript-eslint/eslint-plugin": "^2.3.1", | ||
@@ -59,0 +60,0 @@ "@typescript-eslint/parser": "^2.3.1", |
@@ -42,3 +42,3 @@ # Svelte Preprocess | ||
- `less`: `npm install -D less` | ||
- `sass`: `npm install -D node-sass` | ||
- `sass`: `npm install -D node-sass` or `npm install -D sass` | ||
- `pug`: `npm install -D pug` | ||
@@ -45,0 +45,0 @@ - `stylus`: `npm install -D stylus` |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 3 instances in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
54719
27
216
19