Skip to content

Commit

Permalink
fix: make synthetic-shadow resolvable by module-resolver (#1281)
Browse files Browse the repository at this point in the history
* fix: make synthetic-shadow resolvable by module-resolver
* feat: add synthetic runtime module
  • Loading branch information
jodarove authored and Diego Ferreiro Val committed May 27, 2019
1 parent 35c5de5 commit 37f8cf2
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 10 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
"mime-types": "~2.1.21",
"prettier": "^1.16.4",
"rollup": "~1.7.4",
"rollup-plugin-cleanup":"~3.1.1",
"rollup-plugin-compat": "0.21.4",
"rollup-plugin-node-resolve": "^4.0.0",
"rollup-plugin-replace": "^2.1.0",
Expand Down
6 changes: 6 additions & 0 deletions packages/@lwc/synthetic-shadow/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@
"build:playground": "rollup -c playground/rollup.config.js",
"serve:playground": "node playground/server.js"
},
"lwc": {
"modules": {
"@lwc/synthetic-shadow": "dist/modules/es2017/shadow.js",
"@lwc/synthetic-shadow-runtime": "dist/modules/es2017/shadow.runtime.js"
}
},
"devDependencies": {
"express": "^4.15.2"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,30 @@
* SPDX-License-Identifier: MIT
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
*/
const typescript = require('typescript');
const path = require('path');
const typescript = require('rollup-plugin-typescript');

const rollupTypescript = require('rollup-plugin-typescript');
const rollupCleanup = require('rollup-plugin-cleanup');
const { version } = require('../../package.json');
const { generateTargetName } = require('./util');

const entry = path.resolve(__dirname, '../../src/index.ts');
const commonJSDirectory = path.resolve(__dirname, '../../dist/commonjs');
const modulesDirectory = path.resolve(__dirname, '../../dist/modules');

const banner = `/**\n * Copyright (C) 2018 salesforce.com, inc.\n */`;
const banner = `/* proxy-compat-disable */`;
const footer = `/** version: ${version} */`;

function rollupConfig(config) {
const { format, target } = config;
function wrapModule() {
return {
renderChunk(code) {
return `${banner}\nexport default function enableSyntheticShadow() {\n${code}\n}`;
},
};
}

function rollupConfig(config) {
const { format, target, wrap } = config;
const targetName = generateTargetName(config);
const targetDirectory = (format === 'es' ? modulesDirectory : commonJSDirectory) + `/${target}`;

Expand All @@ -32,11 +40,19 @@ function rollupConfig(config) {
banner,
footer,
},
plugins: [typescript({ target: target, typescript: require('typescript') })],
plugins: [
wrap && wrapModule(),
rollupTypescript({ target, typescript }),
rollupCleanup({ comments: 'none', extensions: ['js', 'ts'], sourcemap: false }),
].filter(Boolean),
};
}

module.exports = [
// Wrap encloses de module into a function so it can be conditionally enabled at runtime
// This is very useful for testing.
rollupConfig({ format: 'es', target: 'es2017', wrap: true }),

rollupConfig({ format: 'es', target: 'es2017' }),
rollupConfig({ format: 'cjs', target: 'es2017' }),
rollupConfig({ format: 'cjs', target: 'es5' }),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const { generateTargetName } = require('./util');
const input = path.resolve(__dirname, '../../src/index.ts');
const outputDir = path.resolve(__dirname, '../../dist/umd');

const banner = `/**\n * Copyright (C) 2017 salesforce.com, inc.\n */`;
const banner = `/* proxy-compat-disable */`;
const footer = `/** version: ${version} */`;

function rollupConfig(config) {
Expand Down
10 changes: 8 additions & 2 deletions packages/@lwc/synthetic-shadow/scripts/rollup/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,14 @@ const COMPAT_SUFFIX = '_compat';
const DEBUG_SUFFIX = '_debug';
const PROD_SUFFIX = '.min';

function generateTargetName({ prod, proddebug }) {
return ['shadow', proddebug ? DEBUG_SUFFIX : '', prod ? '.min' : '', '.js'].join('');
function generateTargetName({ prod, proddebug, wrap }) {
return [
'shadow',
wrap ? '.runtime' : '',
proddebug ? DEBUG_SUFFIX : '',
prod ? '.min' : '',
'.js',
].join('');
}

module.exports = {
Expand Down
42 changes: 41 additions & 1 deletion yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1495,6 +1495,11 @@
libnpm "^2.0.1"
write-file-atomic "^2.3.0"

"@lwc/errors@0.40.1":
version "0.40.1"
resolved "https://registry.yarnpkg.com/@lwc/errors/-/errors-0.40.1.tgz#5894c4883b408bfb0d4e6214f9fa5cdd2715f94a"
integrity sha512-ixWUAVNgpZP3+5KqxK5EP0nSeYGBGXKmp6Bf0VZ5kqV+qMtUCyq+/CBPiKjuFXieAiBtPbz+BJd3CzEwzSbz/w==

"@lwc/jest-transformer@0.40.1":
version "0.40.1"
resolved "https://registry.yarnpkg.com/@lwc/jest-transformer/-/jest-transformer-0.40.1.tgz#7ae45c2be8a291cf2e697b1f1df49e4ddf9dcca2"
Expand Down Expand Up @@ -6609,6 +6614,15 @@ js-base64@^2.1.9:
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz#748911fb04f48a60c4771b375cac45a80df11c03"
integrity sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==

js-cleanup@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/js-cleanup/-/js-cleanup-1.0.1.tgz#1d38080c7ee92e1d2d2b94054d0a33c48951e0df"
integrity sha512-wyHeWKqbcQV78/tiMJ6pgJrkG7p2u3b2xX9IJFvvurpJL9/++89dHfkUebhWvSMS84LG0uQ7BnG5GGyAzY21Ag==
dependencies:
magic-string "^0.25.1"
perf-regexes "^1.0.1"
skip-regex "^1.0.2"

"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
Expand Down Expand Up @@ -7442,7 +7456,7 @@ magic-string@^0.22.4:
dependencies:
vlq "^0.2.2"

magic-string@^0.25.2:
magic-string@^0.25.1, magic-string@^0.25.2:
version "0.25.2"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.2.tgz#139c3a729515ec55e96e69e82a11fe890a293ad9"
integrity sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg==
Expand Down Expand Up @@ -8612,6 +8626,11 @@ pend@~1.2.0:
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=

perf-regexes@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/perf-regexes/-/perf-regexes-1.0.1.tgz#6da1d62f5a94bf9353a0451bccacf69068b75d0b"
integrity sha512-L7MXxUDtqr4PUaLFCDCXBfGV/6KLIuSEccizDI7JxT+c9x1G1v04BQ4+4oag84SHaCdrBgQAIs/Cqn+flwFPng==

performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
Expand Down Expand Up @@ -9669,6 +9688,14 @@ rimraf@^2.6.0:
dependencies:
glob "^7.1.3"

rollup-plugin-cleanup@~3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/rollup-plugin-cleanup/-/rollup-plugin-cleanup-3.1.1.tgz#d012faab5e212b1c4bfa8144ace70fc6ac7b3315"
integrity sha512-wMS9JQm4ShvlMqno1pOfqvh0yYgNLO2ZgmzDsVvKuDt4XCn+9DcMoUwRQ5t9p9b113dR5FhPFFUHnvvQ/yuEtA==
dependencies:
js-cleanup "^1.0.1"
rollup-pluginutils "^2.3.3"

rollup-plugin-compat@0.21.4:
version "0.21.4"
resolved "https://registry.npmjs.org/rollup-plugin-compat/-/rollup-plugin-compat-0.21.4.tgz#5b6841e3d92442e61bfab737f3751f3ba5ef3f7d"
Expand Down Expand Up @@ -9722,6 +9749,14 @@ rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.4.1, rollup-pluginutils@^2.5.0:
estree-walker "^0.6.0"
micromatch "^3.1.10"

rollup-pluginutils@^2.3.3:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.7.1.tgz#a7915ce8b12c177364784bf38a1590cc6c2c8250"
integrity sha512-3nRf3buQGR9qz/IsSzhZAJyoK663kzseps8itkYHr+Z7ESuaffEPfgRinxbCRA0pf0gzLqkNKkSb8aNVTq75NA==
dependencies:
estree-walker "^0.6.0"
micromatch "^3.1.10"

rollup-pluginutils@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz#7ec95b3573f6543a46a6461bd9a7c544525d0fc0"
Expand Down Expand Up @@ -10037,6 +10072,11 @@ sisteransi@^1.0.0:
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.0.tgz#77d9622ff909080f1c19e5f4a1df0c1b0a27b88c"
integrity sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ==

skip-regex@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/skip-regex/-/skip-regex-1.0.2.tgz#ac655d77e7c771ac2b9f37585fea37bff56ad65b"
integrity sha512-pEjMUbwJ5Pl/6Vn6FsamXHXItJXSRftcibixDmNCWbWhic0hzHrwkMZo0IZ7fMRH9KxcWDFSkzhccB4285PutA==

slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
Expand Down

0 comments on commit 37f8cf2

Please sign in to comment.