Skip to content

Commit a8f8e10

Browse files
authored
Merge pull request #65 from netlify/fix-module-export
Fix module API export
2 parents 152985e + cd2eb1b commit a8f8e10

8 files changed

+171
-38
lines changed

Diff for: README.md

+15-12
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ loginModal.close()
6060
loginModal.logout();
6161
```
6262

63+
#### A note on script tag versioning
64+
65+
The `v1` in the above URL is not pinned to the major version of the module API, and will only reflect breaking changes in the
66+
markup API.
67+
6368
### Module API
6469

6570
Netlify Identity Widget also has a [module api](https://www.npmjs.com/package/netlify-identity-widget):
@@ -71,33 +76,31 @@ yarn add netlify-identity-widget
7176
Import or require as usual:
7277

7378
```js
74-
import NetlifyIdentity from "netlify-identity-widget"
75-
// or
76-
const netlifyIdentity = require("netlify-identity-widget");
79+
const netlifyIdentity = require("netlify-identity-widget")
7780

7881
netlifyIdentity.init({
7982
container: "#netlify-modal" // defaults to document.body
8083
});
8184

82-
identity.open() // open the modal
85+
netlifyIdentity.open() // open the modal
8386

84-
identity.on('init', user => console.log(user))
85-
identity.on('login', login => console.log(user))
86-
identity.on('logout', () => console.log("Logged out"))
87-
identity.on('error', err => console.error("Logged out"))
88-
identity.on('open', () => console.log("Widget opened"))
89-
identity.on('close', () => console.log("Widget closed"))
87+
netlifyIdentity.on('init', user => console.log(user))
88+
netlifyIdentity.on('login', login => console.log(user))
89+
netlifyIdentity.on('logout', () => console.log("Logged out"))
90+
netlifyIdentity.on('error', err => console.error("Logged out"))
91+
netlifyIdentity.on('open', () => console.log("Widget opened"))
92+
netlifyIdentity.on('close', () => console.log("Widget closed"))
9093

9194
// Close the modal
9295
identity.close()
9396

9497
// Logout the user
95-
loginModal.logout();
98+
netlifyIdentity.logout();
9699

97100
// Access the underlying gotrue instance.
98101
// Note that doing things directly through gotrue brings a risk of getting out of
99102
// sync between your state and the widgets state.
100-
identity.gotrue
103+
netlifyIdentity.gotrue
101104
```
102105

103106
## Localhost

Diff for: package.json

+19-17
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
{
22
"name": "netlify-identity-widget",
33
"version": "1.0.0",
4+
"releaseVersion": "v1",
45
"description": "Netlify Identity widget for easy integration",
56
"scripts": {
6-
"dev": "cross-env NODE_ENV=development webpack-dev-server --inline --progress",
7+
"dev": "cross-env NODE_ENV=development webpack-dev-server --inline --progress --config webpack.config.babel.js",
78
"start": "serve build -s -c 1",
8-
"prestart": "npm run build",
9-
"version": "npm run release",
10-
"prepublish": "npm run build",
11-
"build": "cross-env NODE_ENV=production webpack --progress",
9+
"prestart": "run-s build",
10+
"version": "run-s release",
11+
"prepublish": "run-s build",
12+
"build": "run-p build:*",
13+
"build:bundle": "cross-env NODE_ENV=production webpack --progress --config webpack.config.babel.js",
14+
"build:umd": "cross-env NODE_ENV=production webpack --progress --config webpack.umd.config.babel.js",
1215
"prebuild": "mkdirp build",
1316
"test": "eslint src",
1417
"release": "node ./script/release.js",
@@ -42,27 +45,26 @@
4245
"eslint-plugin-prettier": "^2.2.0",
4346
"eslint-plugin-react": "^7.0.0",
4447
"file-loader": "^0.11.1",
48+
"gotrue-js": "^0.9.8",
4549
"html-webpack-plugin": "^2.28.0",
4650
"json-loader": "^0.5.4",
4751
"mkdirp": "^0.5.1",
52+
"mobx": "^3.2.2",
53+
"mobx-preact": "^0.3.1",
54+
"npm-run-all": "^4.1.1",
55+
"postcss-cssnext": "^3.0.2",
56+
"postcss-import": "^10.0.0",
4857
"postcss-loader": "^2.0.3",
58+
"postcss-nested": "^2.1.2",
59+
"preact": "^8.1.0",
60+
"preact-compat": "^3.15.0",
4961
"prettier": "^1.6.1",
5062
"raw-loader": "^0.5.1",
51-
"semver": "^5.4.1",
63+
"serve": "^6.0.0",
5264
"source-map-loader": "^0.2.1",
5365
"url-loader": "^0.5.8",
5466
"webpack": "^3.0.0",
5567
"webpack-dev-server": "^2.4.4"
5668
},
57-
"dependencies": {
58-
"gotrue-js": "^0.9.8",
59-
"mobx": "^3.2.2",
60-
"mobx-preact": "^0.3.1",
61-
"postcss-cssnext": "^3.0.2",
62-
"postcss-import": "^10.0.0",
63-
"postcss-nested": "^2.1.2",
64-
"preact": "^8.1.0",
65-
"preact-compat": "^3.15.0",
66-
"serve": "^6.0.0"
67-
}
69+
"dependencies": {}
6870
}

Diff for: script/release.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/* eslint no-console: "off" */
22
const exec = require("child_process").execSync;
3-
const semver = require("semver");
4-
const version = "v" + semver(require("../package.json").version).major;
3+
const version = require("../package.json").releaseVersion;
54

65
console.log("Building new release for ", version);
76

Diff for: src/index.ejs

+10
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,16 @@
206206
}
207207
208208
</style>
209+
210+
<script>
211+
// Bind to events
212+
netlifyIdentity.on("init", user => console.log(user));
213+
netlifyIdentity.on("login", user => console.log(user));
214+
netlifyIdentity.on("logout", () => console.log("Logged out"));
215+
netlifyIdentity.on("error", err => console.error("Logged out"));
216+
netlifyIdentity.on("open", () => console.log("Widget opened"));
217+
netlifyIdentity.on("close", () => console.log("Widget closed"));
218+
</script>
209219
</head>
210220
<body>
211221
<div class="main">

Diff for: src/netlify-identity.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,9 @@ function init(options) {
212212
};
213213
setStyle(iframe, iframeStyle);
214214
iframe.src = "about:blank";
215-
const container = options.container ? document.querySelector : document.body;
215+
const container = options.container
216+
? document.querySelector(options.container)
217+
: document.body;
216218
container.appendChild(iframe);
217219
/* There's a certain case where we might have called setStyle before the iframe was ready.
218220
Make sure we take the last style and apply it */

Diff for: webpack.config.babel.js

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ module.exports = {
1212
context: path.resolve(__dirname, "src"),
1313
entry: {
1414
"netlify-identity-widget": "./index.js",
15-
"netlify-identity": "./netlify-identity.js"
1615
},
1716

1817
output: {

Diff for: webpack.umd.config.babel.js

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import baseConfig from "./webpack.config.babel.js";
2+
import path from "path";
3+
4+
const umdConfig = Object.assign({}, baseConfig, {
5+
entry: {
6+
"netlify-identity": "./netlify-identity.js"
7+
},
8+
9+
output: {
10+
path: path.resolve(__dirname, "build"),
11+
publicPath: "/",
12+
filename: "[name].js",
13+
library: "netlifyIdentity",
14+
libraryTarget: "umd",
15+
libraryExport: "default"
16+
}
17+
})
18+
19+
umdConfig.plugins.splice(2,1) // Remove html plugin
20+
21+
module.exports = umdConfig

0 commit comments

Comments
 (0)