Skip to content

Commit

Permalink
init the repo and integrate rrweb-snapshot
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuyz0112 committed Oct 6, 2018
0 parents commit f8079fb
Show file tree
Hide file tree
Showing 9 changed files with 126 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .gitignore
@@ -0,0 +1,4 @@
.vscode
node_modules
package-lock.json
build
4 changes: 4 additions & 0 deletions .prettierrc
@@ -0,0 +1,4 @@
{
"singleQuote": true,
"trailingComma": "all"
}
3 changes: 3 additions & 0 deletions README.md
@@ -0,0 +1,3 @@
# rrweb

Not ready yet
29 changes: 29 additions & 0 deletions package.json
@@ -0,0 +1,29 @@
{
"name": "rrweb",
"version": "0.1.0",
"description": "record and replay the web",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/rrweb-io/rrweb.git"
},
"keywords": [
"rrweb"
],
"author": "yanzhen@smartx.com",
"license": "MIT",
"bugs": {
"url": "https://github.com/rrweb-io/rrweb/issues"
},
"homepage": "https://github.com/rrweb-io/rrweb#readme",
"devDependencies": {
"tslint": "^4.5.1",
"typescript": "^3.1.1"
},
"dependencies": {
"rrweb-snapshot": "file:../snapshot"
}
}
3 changes: 3 additions & 0 deletions src/index.ts
@@ -0,0 +1,3 @@
import record from './record';

export { record };
35 changes: 35 additions & 0 deletions src/record.ts
@@ -0,0 +1,35 @@
import { snapshot } from 'rrweb-snapshot';
import { EventType, event } from './types';

function on(
type: string,
fn: EventListenerOrEventListenerObject,
target = document,
) {
target.addEventListener(type, fn);
}

function createEvent(type: EventType, data: any): event {
return {
type,
data,
timestamp: Date.now(),
};
}

function emit(e: event) {}

function record() {
on('DOMContentLoaded', () => {
emit(
createEvent(EventType.DomContentLoaded, { href: window.location.href }),
);
});
on('load', () => {
emit(createEvent(EventType.Load, null));
const node = snapshot(document);
emit(createEvent(EventType.FullSnapshot, { node }));
});
}

export default record;
12 changes: 12 additions & 0 deletions src/types.ts
@@ -0,0 +1,12 @@
export enum EventType {
DomContentLoaded,
Load,
FullSnapshot,
IncrementalSnapshot,
}

export type event = {
type: EventType;
timestamp: number;
data: any;
};
15 changes: 15 additions & 0 deletions tsconfig.json
@@ -0,0 +1,15 @@
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true,
"rootDir": "src",
"outDir": "build",
"lib": ["es6", "dom"]
},
"compileOnSave": true,
"exclude": ["test"],
"include": ["src", "index.d.ts"]
}
21 changes: 21 additions & 0 deletions tslint.json
@@ -0,0 +1,21 @@
{
"defaultSeverity": "error",
"extends": ["tslint:recommended"],
"jsRules": {},
"rules": {
"no-any": true,
"quotemark": [true, "single"],
"ordered-imports": false,
"object-literal-sort-keys": false,
"no-unused-variable": true,
"object-literal-key-quotes": false,
"variable-name": [
true,
"ban-keywords",
"check-format",
"allow-leading-underscore"
],
"arrow-parens": false
},
"rulesDirectory": []
}

0 comments on commit f8079fb

Please sign in to comment.