-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
133 changed files
with
4,732 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
'ues strict'; | ||
|
||
module.exports = { | ||
write: true, | ||
plugin: 'autod-egg', | ||
prefix: '^', | ||
devprefix: '^', | ||
exclude: [ | ||
'test/fixtures', | ||
], | ||
devdep: [ | ||
'autod', | ||
'autod-egg' | ||
], | ||
keep: [ | ||
], | ||
semver: [ | ||
], | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
test/fixtures | ||
test/benchmark |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"extends": "eslint-config-egg" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
node_modules | ||
coverage | ||
*.log | ||
npm-debug.log | ||
.logs | ||
logs | ||
*.swp | ||
run | ||
*-run | ||
.idea | ||
.DS_Store | ||
.tmp | ||
docs/CONTRIBUTING.md | ||
docs/README.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
sudo: false | ||
language: node_js | ||
node_js: | ||
- '4' | ||
- '6' | ||
install: | ||
- npm i npminstall && npminstall | ||
script: | ||
- npm run ci | ||
after_script: | ||
- npm i codecov && codecov |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# Ordered by date of first contribution. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
|
||
0.0.1 / 2016-07-13 | ||
================== | ||
|
||
* init version |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
environment: | ||
matrix: | ||
- nodejs_version: '4' | ||
- nodejs_version: '6' | ||
|
||
install: | ||
- ps: Install-Product node $env:nodejs_version | ||
- npm i npminstall && npminstall | ||
|
||
test_script: | ||
- node --version | ||
- npm --version | ||
- npm run ci | ||
|
||
build: off |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# Summary | ||
|
||
* [介绍](README.md) | ||
* [快速入门](user_guide/quickstart.md) | ||
* 用户指南 | ||
* [上下文](app_dev/context/index.md) | ||
* [配置](app_dev/config/index.md) | ||
* [应用配置](app_dev/config/config.md) | ||
* [路由配置](app_dev/config/router.md) | ||
* 插件 | ||
* [安全](app_dev/plugins/security.md) | ||
* [Cookie](app_dev/plugins/cookie.md) | ||
* [模板渲染](app_dev/plugins/view.md) | ||
* [数据 Mock](app_dev/plugins/mock.md) | ||
* [缓存](app_dev/plugins/cache.md) | ||
* [日志](app_dev/plugins/logger.md) | ||
* [测试](app_dev/test.md) | ||
* 发布 | ||
* 开发者指南 | ||
* [基于 egg 开发框架](core_dev/app.md) | ||
* [loader](core_dev/loader.md) | ||
* [Agent](core_dev/agent.md) | ||
* [Extend](core_dev/extend.md) | ||
* [Plugin](core_dev/plugin.md) | ||
* [编写 View 插件](core_dev/view.md) | ||
* [进程的信号](core_dev/singals.md) | ||
* [版本号](core_dev/semver.md) | ||
* [API 文档](api/Egg.html) | ||
* [如何贡献](CONTRIBUTING.md) | ||
* [FAQ](faq.md) | ||
* CHANGELOG | ||
* [1.0.0](changelog/1.0.0.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# config | ||
|
||
`config/config.js` 也是系统的配置 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# 配置 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# 路由配置 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
## 上下文 | ||
|
||
上下文(context)被认为是koa框架中最好的抽象之一。在koa里,它本身具有很多好用的[api](https://github.com/koajs/koa/blob/master/docs/api/context.md)。egg结合实际业务开发场景,在保持这些api不变的同时还进行了扩展。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
cache.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
cookie | ||
===== | ||
|
||
## API | ||
|
||
* ctx.getCookie(name, opts) | ||
* ctx.setCookie(name, val, opts) | ||
* ctx.deleteCookie(name) | ||
|
||
## cookie options | ||
|
||
对于 cookie 的使用注意点: | ||
|
||
* 对于前端需要可见的数据,有两种情况 | ||
* 前端可以修改 signed: false, encrypt: false, httpOnly: false | ||
* 前端只能读,不允许写 signed: true, encrypt: false, httpOnly: false | ||
* 对于只是后端用的数据,使用 cookie 作为 store,那么设置 encrypt: true, signed: false, httpOnly:true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
logger.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
mock.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# RESTful API |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
security.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
view.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Egg 测试 | ||
|
||
没有测试的代码不是好应用。Egg 提供了完整的测试方案和工具,适合各种测试场景。 | ||
|
||
TBD |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
TBD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# 开发者手册 | ||
|
||
适合 egg 开发团队成员阅读, 如果你也想了解 egg 到底是如何实现的, 也不妨看看. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# AgentWorker 与 AppWorker | ||
|
||
TBD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# 如何基于 egg 开发框架 | ||
|
||
TBD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# 扩展 extend |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# egg loader |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# 插件 plugin |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# 如何正确的使用版本号 | ||
|
||
TBD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
## egg 进程的信号 | ||
|
||
TBD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,131 @@ | ||
# singleton 单例模式 | ||
|
||
egg 的许多插件都有单例模式的需求,例如:mysql, oss, mongodb 等等,我们常常会通过实现插件的方式来给 egg 加上这些功能。 | ||
但是由于这些单例模式往往又要支持多实例的形式,例如一个项目中可能用到多个 mysql 的数据库,用到多个 oss bucket, | ||
这时如果任由各个插件自己实现,各种配置和接口都会五花八门,因此 egg 提供了一套统一的通用单例实现实践。 | ||
|
||
## app.addSingleton(name, create) | ||
|
||
在 `app` 和 `agent` 实例上,egg 都提供了一个 `addSingleton` 的方法, | ||
通过这个方法,我们可以创建一个支持单实例、多实例和动态创建实例的单例。同时也能统一各个单例的配置。 | ||
|
||
### 用户配置和接口 | ||
|
||
假设我们要添加的单例名称为 `mysql`,我们可以通过 `app.addSingleton('mysql', createMysql)` 方法来创建 `app.mysql` 单例。 | ||
|
||
#### 配置 | ||
|
||
用户的配置中可以配置是单实例还是多实例,同时还可以配置这些实例的公共配置: | ||
|
||
```js | ||
// 单实例 | ||
exports.mysql = { | ||
client: { | ||
host: 'host', | ||
port: 'port', | ||
user: 'user', | ||
password: 'password', | ||
database: 'database', | ||
}, | ||
}; | ||
|
||
// 多实例 | ||
exports.mysql = { | ||
clients: { | ||
db1: { | ||
host: 'host', | ||
port: 'port', | ||
database: 'db1', | ||
}, | ||
db1: { | ||
host: 'host', | ||
port: 'port', | ||
database: 'db2', | ||
}, | ||
}, | ||
|
||
// 多实例共享的默认配置 | ||
default: { | ||
user: 'user', | ||
password: 'password', | ||
}, | ||
}; | ||
``` | ||
|
||
通过 `default` 指定的默认配置不仅仅可以在多实例的时候生效,在单实例以及后面将会提到的动态创建实例中也会生效,这样我们在编写插件的时候可以通过指定 `default` 参数来给所有的实例都设置这些默认配置。 | ||
|
||
#### 使用 | ||
|
||
由于大部分情况下,我们都只需要使用单实例,因此 egg 对单实例场景做了特殊优化,如果配置中配置成单实例了,那我们可以直接通过 `app.mysql` 获取到这个实例: | ||
|
||
```js | ||
const data = yield app.mysql.query('select * from table limit 10'); | ||
``` | ||
|
||
而当用户配置了多个实例的时候,我们需要通过配置中的 client key 来获取对应的实例: | ||
|
||
```js | ||
const db1 = app.mysql.get('db1'); | ||
const data = yield db1('select * from table limit 10'); | ||
``` | ||
|
||
有时候我们并没有办法在配置中就写明各个实例的配置,我们可以通过动态创建的方式来实现(注意,不管是用户配置成单实例还是多实例,动态创建的方法一定会存在,而且会继承配置中的默认配置)。 | ||
|
||
```js | ||
app.db3 = app.mysql.createInstance({ | ||
host: 'host', | ||
port: 'port', | ||
database: 'db3', | ||
}); | ||
``` | ||
|
||
### 插件示例 | ||
|
||
下面我们通过一个简单的示例插件来展示一下怎样通过 `app.addSingleton` 编写一个单例插件。 | ||
|
||
- create.js | ||
|
||
```js | ||
class DataService { | ||
constructor(config) { | ||
this.config = config; | ||
} | ||
|
||
* getConfig() { | ||
return this.config; | ||
} | ||
|
||
ready(done) { | ||
setTimeout(done, 1000); | ||
} | ||
} | ||
|
||
let count = 0; | ||
module.exports = function create(config, app) { | ||
const done = app.readyCallback(`DataService-${count++}`); | ||
const dataService = new DataService(config); | ||
dataService.ready(done); | ||
return dataService; | ||
}; | ||
``` | ||
|
||
- app.js | ||
|
||
```js | ||
const createDataService = require('./create'); | ||
module.exports = function(app) { | ||
app.addSingleton('dataService', createDataService); | ||
}; | ||
``` | ||
|
||
- agent.js | ||
|
||
```js | ||
const createDataService = require('./create'); | ||
module.exports = function(agent) { | ||
agent.addSingleton('dataService', createDataService); | ||
}; | ||
``` | ||
|
||
通过上面三个文件,我们就可以将 `DataService` 创建成 `[app|agent].dataService` 单例,并提供给用户上面描述的配置方式和接口。 | ||
更详细的使用方式可以参照 [egg-mysql](https://github.com/egg/egg-mysql) 的实现。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
## 编写 egg 的 view 插件 | ||
|
||
TBD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# FAQ |
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
|
||
@startuml | ||
digraph world { | ||
"onerror"; | ||
"userservice"; | ||
"userrole"; | ||
"session"; | ||
"i18n"; | ||
"validate"; | ||
"watcher"; | ||
"multipart"; | ||
"security" -> "session"; | ||
"development" -> "watcher"; | ||
"rest"; | ||
"static"; | ||
"cors" -> "security"; | ||
"logrotater"; | ||
"schedule"; | ||
} | ||
@enduml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
TBD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
'use strict'; | ||
|
||
module.exports = function* () { | ||
this.deleteCookie('remember'); | ||
this.redirect('/'); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
'use strict'; | ||
|
||
module.exports = function* () { | ||
if (this.getCookie('remember')) { | ||
this.body = '<p>Remembered :). Click to <a href="/forget">forget</a>!.</p>'; | ||
return; | ||
} | ||
|
||
this.body = `<form method="post" action="/remember"><p>Check to <label> | ||
<input type="checkbox" name="remember"/> remember me</label> | ||
<input type="submit" value="Submit"/>.</p></form>`; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
'use strict'; | ||
|
||
module.exports = function* () { | ||
const minute = 60000; | ||
if (this.request.body.remember) this.setCookie('remember', 1, { maxAge: minute }); | ||
this.redirect('/'); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
'use strict'; | ||
|
||
module.exports = app => { | ||
app.get('/', app.controller.home); | ||
app.get('/forget', app.controller.forget); | ||
app.post('/remember', app.controller.remember); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
'use strict'; | ||
|
||
exports.keys = 'my cooo00ooooool keys'; |
Oops, something went wrong.