/
githubmirror
/
meteor
Обзор
Документация
Войти
/
githubmirror
/
meteor
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
devel
tools/tests/apps/modules/packages/modules-test-plugin/plugin.js
68 строк
2 KB
Ben Newman
Allow .npm/package/node_modules to be compiled in Meteor packages.
05 май 2019, 01:08
Не верифицирован
05 май 2019, 01:08
5d0a120
Код
Авторство
О чём код?
import { invariant } from "ts-invariant"; invariant( typeof process.versions.node === "string", "Meteor plugins should only run in Node.js", ); invariant( require.resolve("ts-invariant"), "/node_modules/meteor/meteor-test-plugin/node_modules/ts-invariant/lib/invariant.js", ); // This verifies that babel-plugin-transform-strict-mode is enabled. let expected; try { console.log(arguments.callee.toString()); } catch (e) { expected = e; } invariant(expected instanceof TypeError); invariant(/callee/.test(expected.message), expected.message); Plugin.registerCompiler({ extensions: ["arson"] }, () => new ArsonCompiler); class ArsonCompiler { // This verifies that the babel-plugin-transform-class-properties plugin // enabled by package.json is respected. expectedName = "compile-arson"; processFilesForTarget(inputFiles) { invariant(this.expectedName === "compile-arson", this.expectedName); invariant(inputFiles.length > 0); let vueCheckCount = 0; inputFiles.forEach(file => { const arson = file.require("arson"); let encoded = file.getContentsAsString(); const decoded = arson.decode(encoded); decoded.self = decoded; encoded = arson.encode(decoded); file.addJavaScript({ path: file.getPathInPackage() + ".js", data: [ 'module.exportDefault(require("arson").decode(', " " + JSON.stringify(encoded), "));", "" ].join("\n"), hash: file.getSourceHash() }); if (file.getPackageName() === "modules-test-plugin") { const vueCompilerId = file.resolve("vue-template-compiler"); // Make sure resolution does not use the "browser" field of // vue-template-compiler/package.json. const base = vueCompilerId.split("/").pop(); invariant(base === "index.js", base); ++vueCheckCount; } }); invariant(vueCheckCount > 0); } }