Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 53 additions & 1 deletion packages-exp/firebase-exp/rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import resolveModule from '@rollup/plugin-node-resolve';
import rollupTypescriptPlugin from 'rollup-plugin-typescript2';
import sourcemaps from 'rollup-plugin-sourcemaps';
import typescript from 'typescript';
import alias from '@rollup/plugin-alias';

const external = Object.keys(pkg.dependencies || {});
const plugins = [sourcemaps(), resolveModule(), json(), commonjs()];
Expand All @@ -32,6 +33,15 @@ const typescriptPlugin = rollupTypescriptPlugin({
typescript
});

const typescriptPluginCDN = rollupTypescriptPlugin({
typescript,
tsconfigOverride: {
compilerOptions: {
declaration: false
}
}
});

/**
* Individual Component Builds
*/
Expand Down Expand Up @@ -77,4 +87,46 @@ const componentBuilds = pkg.components
})
.reduce((a, b) => a.concat(b), []);

export default [...appBuilds, ...componentBuilds];
/**
* CDN script builds
*/
const FIREBASE_APP_URL = `https://www.gstatic.com/firebasejs/${pkg.version}/firebase-app.js`;
const cdnBuilds = [
{
input: 'app/index.cdn.ts',
output: {
file: 'firebase-app.js',
sourcemap: true,
format: 'es'
},
plugins: [...plugins, typescriptPluginCDN]
},
...pkg.components
.filter(component => component !== 'app')
.map(component => {
// It is needed for handling sub modules, for example firestore/lite which should produce firebase-firestore-lite.js
// Otherwise, we will create a directory with '/' in the name.
const componentName = component.replace('/', '-');

return {
input: `${component}/index.ts`,
output: {
file: `firebase-${componentName}.js`,
sourcemap: true,
format: 'es'
},
plugins: [
...plugins,
typescriptPluginCDN,
alias({
entries: {
'@firebase/app': FIREBASE_APP_URL
}
})
],
external: [FIREBASE_APP_URL]
};
})
];

export default [...appBuilds, ...componentBuilds, ...cdnBuilds];
55 changes: 54 additions & 1 deletion packages-exp/firebase-exp/rollup.config.release.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import resolveModule from '@rollup/plugin-node-resolve';
import rollupTypescriptPlugin from 'rollup-plugin-typescript2';
import sourcemaps from 'rollup-plugin-sourcemaps';
import typescript from 'typescript';
import alias from '@rollup/plugin-alias';

// remove -exp from dependencies name
const deps = Object.keys(pkg.dependencies || {}).map(name =>
Expand All @@ -38,6 +39,15 @@ const typescriptPlugin = rollupTypescriptPlugin({
transformers: [importPathTransformer]
});

const typescriptPluginCDN = rollupTypescriptPlugin({
typescript,
tsconfigOverride: {
compilerOptions: {
declaration: false
}
}
});

/**
* Individual Component Builds
*/
Expand Down Expand Up @@ -84,4 +94,47 @@ const componentBuilds = pkg.components
})
.reduce((a, b) => a.concat(b), []);

export default [...appBuilds, ...componentBuilds];
/**
* CDN script builds
*/
const FIREBASE_APP_URL = `https://www.gstatic.com/firebasejs/${pkg.version}/firebase-app.js`;
const cdnBuilds = [
{
input: 'app/index.cdn.ts',
output: {
file: 'firebase-app.js',
sourcemap: true,
format: 'es'
},
plugins: [...plugins, typescriptPluginCDN]
},
...pkg.components
.filter(component => component !== 'app')
.map(component => {
const pkg = require(`./${component}/package.json`);
// It is needed for handling sub modules, for example firestore/lite which should produce firebase-firestore-lite.js
// Otherwise, we will create a directory with '/' in the name.
const componentName = component.replace('/', '-');

return {
input: `${component}/index.ts`,
output: {
file: `firebase-${componentName}.js`,
sourcemap: true,
format: 'es'
},
plugins: [
...plugins,
typescriptPluginCDN,
alias({
entries: {
'@firebase/app': FIREBASE_APP_URL,
'@firebase/installations': '@firebase/installations-exp'
}
})
],
external: [FIREBASE_APP_URL]
};
})
];
export default [...appBuilds, ...componentBuilds, ...cdnBuilds];