Skip to content
Open
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
35 changes: 33 additions & 2 deletions build.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import shell from 'shelljs';
import chalk from 'chalk';
import fs from 'fs';
import path from 'path';

const PACKAGE = `okta-angular`;
const NPM_DIR = `dist`;
Expand All @@ -12,6 +13,34 @@ const ESM2020_DIR = `${NPM_DIR}/esm2020`;
const FESM2020_DIR = `${NPM_DIR}/fesm2020`;
const OUT_DIR = `${NPM_DIR}/package`;

const renameRecursively = (dir, extFrom, extTo) => {
const files = fs.readdirSync(dir);
for (const file of files) {
if (fs.statSync(path.join(dir, file)).isDirectory()) {
renameRecursively(path.join(dir, file), extFrom, extTo);
} else if (file.endsWith('.' + extFrom)) {
// rename .js -> .mjs
const newName = file.split('.').slice(0, -1).concat([extTo]).join('.');
const pathFrom = path.join(dir, file);
const pathTo = path.join(dir, newName);
fs.renameSync(pathFrom, pathTo);
} else if (file.endsWith('.' + extFrom + '.map')) {
// rename .js.map -> .mjs.map
const origName = file.split('.').slice(0, -2).concat([extFrom]).join('.');
const origNameNew = file.split('.').slice(0, -2).concat([extTo]).join('.');
const newName = file.split('.').slice(0, -2).concat([extTo, 'map']).join('.');
const pathFrom = path.join(dir, file);
const pathTo = path.join(dir, newName);
fs.renameSync(pathFrom, pathTo);

// replace .js -> .mjs in map contents
const data = fs.readFileSync(pathTo, 'utf8');
const newData = data.replace(`"file":"${origName}"`, `"file":"${origNameNew}"`);
fs.writeFileSync(pathTo, newData, 'utf8');
}
}
};

shell.echo(`Start building...`);

shell.rm(`-Rf`, `${NPM_DIR}/*`);
Expand Down Expand Up @@ -40,13 +69,14 @@ shell.echo(chalk.green(`AoT compilation completed`));

shell.echo(`Copy ES2015 for package`);
shell.cp(`-Rf`, [`${NPM_DIR}/src/`, `${NPM_DIR}/*.js`, `${NPM_DIR}/*.js.map`], `${ESM2015_DIR}`);
renameRecursively(ESM2015_DIR, 'js', 'mjs');
shell.rm(`-Rf`, `${ESM2015_DIR}/src/**/*.d.ts`);

/* BUNDLING PACKAGE */
shell.echo(`Start bundling`);

shell.echo(`Produce FESM2015 version`);
if (shell.exec(`rollup -c rollup.es.config.js -i ${NPM_DIR}/${PACKAGE}.js -o ${FESM2015_DIR}/${PACKAGE}.js`).code !== 0) {
if (shell.exec(`rollup -c rollup.es.config.js -i ${NPM_DIR}/${PACKAGE}.js -o ${FESM2015_DIR}/${PACKAGE}.mjs`).code !== 0) {
shell.echo(chalk.red(`Error: FESM2015 version failed`));
shell.exit(1);
}
Expand All @@ -57,10 +87,11 @@ if (shell.exec(`ngc -p ${OUT_DIR}/tsconfig-build.json --target es2020 -d false -
shell.exit(1);
}
shell.cp(`-Rf`, [`${NPM_DIR}/src/`, `${NPM_DIR}/*.js`, `${NPM_DIR}/*.js.map`], `${ESM2020_DIR}`);
renameRecursively(ESM2020_DIR, 'js', 'mjs');
shell.rm(`-Rf`, `${ESM2020_DIR}/src/**/*.d.ts`);

shell.echo(`Produce FESM2020 version`);
if (shell.exec(`rollup -c rollup.es.config.js -i ${NPM_DIR}/${PACKAGE}.js -o ${FESM2020_DIR}/${PACKAGE}.js`).code !== 0) {
if (shell.exec(`rollup -c rollup.es.config.js -i ${NPM_DIR}/${PACKAGE}.js -o ${FESM2020_DIR}/${PACKAGE}.mjs`).code !== 0) {
shell.echo(chalk.red(`Error: FESM2020 version failed`));
shell.exit(1);
}
Expand Down
24 changes: 12 additions & 12 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
"private": true,
"version": "6.1.0",
"description": "Angular support for Okta",
"module": "./dist/fesm2015/okta-angular.js",
"fesm2015": "./dist/fesm2015/okta-angular.js",
"esm2015": "./dist/esm2015/okta-angular.js",
"es2015": "./dist/fesm2015/okta-angular.js",
"fesm2020": "./dist/fesm2020/okta-angular.js",
"esm2020": "./dist/esm2020/okta-angular.js",
"es2020": "./dist/fesm2020/okta-angular.js",
"module": "./dist/fesm2015/okta-angular.mjs",
"fesm2015": "./dist/fesm2015/okta-angular.mjs",
"esm2015": "./dist/esm2015/okta-angular.mjs",
"es2015": "./dist/fesm2015/okta-angular.mjs",
"fesm2020": "./dist/fesm2020/okta-angular.mjs",
"esm2020": "./dist/esm2020/okta-angular.mjs",
"es2020": "./dist/fesm2020/okta-angular.mjs",
"types": "./dist/okta-angular.d.ts",
"type": "module",
"exports": {
Expand All @@ -18,11 +18,11 @@
},
".": {
"types": "./dist/okta-angular.d.ts",
"esm2020": "./dist/esm2020/okta-angular.js",
"es2020": "./dist/fesm2020/okta-angular.js",
"es2015": "./dist/fesm2015/okta-angular.js",
"node": "./dist/fesm2015/okta-angular.js",
"default": "./dist/fesm2020/okta-angular.js"
"esm2020": "./dist/esm2020/okta-angular.mjs",
"es2020": "./dist/fesm2020/okta-angular.mjs",
"es2015": "./dist/fesm2015/okta-angular.mjs",
"node": "./dist/fesm2015/okta-angular.mjs",
"default": "./dist/fesm2020/okta-angular.mjs"
}
},
"scripts": {
Expand Down