diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..31bbeda --- /dev/null +++ b/.npmignore @@ -0,0 +1 @@ +# not lib diff --git a/dist/single-spa-angular1.dist.js b/dist/single-spa-angular1.dist.js deleted file mode 100644 index 128ca0c..0000000 --- a/dist/single-spa-angular1.dist.js +++ /dev/null @@ -1,176 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.defaultAngular1App = defaultAngular1App; -exports.scriptsWillBeLoaded = scriptsWillBeLoaded; -exports.scriptsWereLoaded = scriptsWereLoaded; -exports.applicationWillMount = applicationWillMount; -exports.applicationWasMounted = applicationWasMounted; -exports.applicationWillUnmount = applicationWillUnmount; -exports.applicationWasUnmounted = applicationWasUnmounted; -function defaultAngular1App(config) { - if (!config) throw new Error('must provide a config object as the first parameter'); - if (typeof config.rootElementGetter !== 'function') throw new Error('must provide a function \'rootElementGetter\' that returns the root element to bootstrap'); - if (typeof config.publicRoot !== 'string') throw new Error('must provide a string called \'publicRoot\''); - if (typeof config.rootAngularModule !== 'string') throw new Error('must provide a string called rootAngularModule'); - - var app = {}; - app.scriptsWillBeLoaded = function () { - return scriptsWillBeLoaded.apply(config, arguments); - }; - app.scriptsWereLoaded = function () { - return scriptsWereLoaded.apply(config, arguments); - }; - app.applicationWillMount = function () { - return applicationWillMount.apply(config, arguments); - }; - app.mountApplication = function () { - return mountApplication.apply(config, arguments); - }; - app.applicationWasMounted = function () { - return applicationWasMounted.apply(config, arguments); - }; - app.applicationWillUnmount = function () { - return applicationWillUnmount.apply(config, arguments); - }; - app.applicationWasUnmounted = function () { - return applicationWasUnmounted.apply(config, arguments); - }; - return app; -} - -function scriptsWillBeLoaded() { - var config = this; - return new Promise(function (resolve) { - //single-spa owns the base tag, but angular doesn't like that much. This is the workaround. - config.nativeGetElementsByTagName = document.getElementsByTagName; - document.getElementsByTagName = function (query) { - if (query === 'base') { - return []; - } else { - return config.nativeGetElementsByTagName.apply(this, arguments); - } - }; - resolve(); - }); -} - -function scriptsWereLoaded() { - var config = this; - - var appAngular = undefined; - function waitForAngularGlobal(callback) { - if (appAngular) { - callback(appAngular); - } else if (window.angular) { - appAngular = window.angular; - callback(appAngular); - } else { - setTimeout(function () { - waitForAngularGlobal(callback); - }, 3); - } - } - config.angularPromise = function () { - return new Promise(function (resolve) { - waitForAngularGlobal(function (angular) { - return resolve(angular); - }); - }); - }; - - return new Promise(function (resolve) { - config.angularPromise().then(function (angular) { - config.jQuery = window.jQuery; - angular.module(config.rootAngularModule).factory('SingleSpaPrefixURLsInterceptor', function () { - return { - request: function request(requestConfig) { - requestConfig.url = window.singlespa.prependUrl(config.publicRoot, requestConfig.url); - return requestConfig; - } - }; - }); - - angular.module(config.rootAngularModule).config(function ($httpProvider, $locationProvider) { - $httpProvider.interceptors.push('SingleSpaPrefixURLsInterceptor'); - }); - resolve(); - }).catch(function (ex) { - throw ex; - }); - }); -} - -function applicationWillMount() { - var config = this; - return new Promise(function (resolve) { - window.jQuery = config.jQuery; - document.getElementsByTagName = function (query) { - if (query === 'base') { - return []; - } else { - return config.nativeGetElementsByTagName.apply(this, arguments); - } - }; - resolve(); - }); -} - -function applicationWasMounted() { - var config = this; - if (config.numMounts) { - config.numMounts++; - } else { - config.numMounts = 1; - } - return new Promise(function (resolve) { - config.angularPromise().then(function (angular) { - //leak global - window.angular = angular; - - //bootstrap - var element = config.rootElementGetter(); - var numMountsAutoMounted = document.querySelector('[ng-app]') ? 1 : 0; - if (config.numMounts > numMountsAutoMounted) { - //we need to bootstrap - angular.bootstrap(element, [config.rootAngularModule]); - } else if (document.documentElement.getAttribute('ng-app')) { - angular.bootstrap(element, [document.documentElement.getAttribute('ng-app')]); - } - resolve(); - }).catch(function (ex) { - throw ex; - }); - }); -} - -function applicationWillUnmount() { - var config = this; - return new Promise(function (resolve) { - config.angularPromise().then(function (angular) { - var rootScope = angular.injector(['ng']).get('$rootScope'); - rootScope.$destroy(); - delete window.angular; - delete window.jQuery; - resolve(); - }).catch(function (ex) { - throw ex; - }); - }); -} - -function applicationWasUnmounted() { - var config = this; - return new Promise(function (resolve) { - document.getElementsByTagName = config.nativeGetElementsByTagName; - resolve(); - }); -} - -function removeRedundantSlashes(str) { - return str.replace(/[\/]+/g, '/'); -} - -//# sourceMappingURL=single-spa-angular1.dist.js.map \ No newline at end of file diff --git a/dist/single-spa-angular1.dist.js.map b/dist/single-spa-angular1.dist.js.map deleted file mode 100644 index 788a71f..0000000 --- a/dist/single-spa-angular1.dist.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/single-spa-angular1.js"],"names":[],"mappings":"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","file":"single-spa-angular1.dist.js","sourcesContent":["export function defaultAngular1App(config) {\n if (!config) throw new Error('must provide a config object as the first parameter');\n if (typeof config.rootElementGetter !== 'function') throw new Error(`must provide a function 'rootElementGetter' that returns the root element to bootstrap`);\n if (typeof config.publicRoot !== 'string') throw new Error(`must provide a string called 'publicRoot'`);\n if (typeof config.rootAngularModule !== 'string') throw new Error(`must provide a string called rootAngularModule`);\n\n let app = {};\n app.scriptsWillBeLoaded = function() { return scriptsWillBeLoaded.apply(config, arguments) }\n app.scriptsWereLoaded = function() { return scriptsWereLoaded.apply(config, arguments); }\n app.applicationWillMount = function() { return applicationWillMount.apply(config, arguments); }\n app.mountApplication = function() { return mountApplication.apply(config, arguments); }\n app.applicationWasMounted = function() { return applicationWasMounted.apply(config, arguments); }\n app.applicationWillUnmount = function() { return applicationWillUnmount.apply(config, arguments); }\n app.applicationWasUnmounted = function() { return applicationWasUnmounted.apply(config, arguments); }\n return app;\n}\n\nexport function scriptsWillBeLoaded() {\n const config = this;\n return new Promise(function (resolve) {\n //single-spa owns the base tag, but angular doesn't like that much. This is the workaround.\n config.nativeGetElementsByTagName = document.getElementsByTagName;\n document.getElementsByTagName = function(query) {\n if (query === 'base') {\n return [];\n } else {\n return config.nativeGetElementsByTagName.apply(this, arguments);\n }\n }\n resolve();\n });\n}\n\nexport function scriptsWereLoaded() {\n var config = this;\n\n let appAngular;\n function waitForAngularGlobal(callback) {\n if (appAngular) {\n callback(appAngular);\n } else if (window.angular) {\n appAngular = window.angular;\n callback(appAngular);\n } else {\n setTimeout(function() {\n waitForAngularGlobal(callback);\n }, 3);\n }\n }\n config.angularPromise = function() {\n return new Promise(function (resolve) {\n waitForAngularGlobal((angular) => resolve(angular));\n })\n }\n\n return new Promise(function(resolve) {\n config.angularPromise()\n .then(function(angular) {\n config.jQuery = window.jQuery;\n angular.module(config.rootAngularModule).factory('SingleSpaPrefixURLsInterceptor', function() {\n return {\n request: function(requestConfig) {\n requestConfig.url = window.singlespa.prependUrl(config.publicRoot, requestConfig.url);\n return requestConfig;\n }\n };\n });\n\n angular.module(config.rootAngularModule).config(function($httpProvider, $locationProvider) {\n $httpProvider.interceptors.push('SingleSpaPrefixURLsInterceptor');\n });\n resolve();\n })\n .catch((ex) => {\n throw ex;\n });\n });\n}\n\nexport function applicationWillMount() {\n const config = this;\n return new Promise(function (resolve) {\n window.jQuery = config.jQuery;\n document.getElementsByTagName = function(query) {\n if (query === 'base') {\n return [];\n } else {\n return config.nativeGetElementsByTagName.apply(this, arguments);\n }\n }\n resolve();\n });\n}\n\nexport function applicationWasMounted() {\n const config = this;\n if (config.numMounts) {\n config.numMounts++;\n } else {\n config.numMounts = 1;\n }\n return new Promise(function (resolve) {\n config.angularPromise()\n .then((angular) => {\n //leak global\n window.angular = angular;\n\n //bootstrap\n let element = config.rootElementGetter()\n let numMountsAutoMounted = document.querySelector('[ng-app]') ? 1 : 0;\n if (config.numMounts > numMountsAutoMounted) {\n //we need to bootstrap\n angular.bootstrap(element, [config.rootAngularModule]);\n } else if (document.documentElement.getAttribute('ng-app')) {\n angular.bootstrap(element, [document.documentElement.getAttribute('ng-app')]);\n }\n resolve()\n })\n .catch((ex) => {\n throw ex;\n });\n });\n}\n\nexport function applicationWillUnmount() {\n const config = this;\n return new Promise(function (resolve) {\n config.angularPromise()\n .then((angular) => {\n let rootScope = angular.injector(['ng']).get('$rootScope');\n rootScope.$destroy();\n delete window.angular;\n delete window.jQuery;\n resolve()\n })\n .catch((ex) => {\n throw ex;\n });\n })\n}\n\nexport function applicationWasUnmounted() {\n const config = this;\n return new Promise(function (resolve) {\n document.getElementsByTagName = config.nativeGetElementsByTagName;\n resolve();\n })\n}\n\nfunction removeRedundantSlashes(str) {\n return str.replace(/[\\/]+/g, '/');\n}\n"]} \ No newline at end of file