Skip to content

Instantly share code, notes, and snippets.

@bramblex
bramblex / sql.js
Created July 30, 2018 01:18
sql generator for js
const { escape } = require('mysql')
function escapeValue(value) { return escape(value) }
function escapeName(name) { return '`' + name + '`'; }
// ================ export ================
function $limit(nu) {
return `LIMIT ${escapeValue(nu)}`
const { template } = require('./template')
function setEnv(env, paris) {
for (const [name, value] of Object.entries(paris)) {
let get
if (typeof value === 'string') {
@bramblex
bramblex / throttle.ts
Last active October 30, 2018 09:22
用于限流
export function throttle<R>(func: () => Promise<R>): () => Promise<R> {
let promise: Promise<R> | null = null
return () => {
if (promise) {
return promise
} else {
promise = func()
promise.finally(() => promise = null)
return promise
}
/* eslint-disable */
/*
一套基于 postMessage 的页面间通讯协议
*/
/*
interface Request {
id: number
type: 'req'
type BaseEventMap = { [event: string]: [] }
type EventListener<EventMap extends BaseEventMap, Event extends keyof EventMap>
= (...args: EventMap[Event]) => any
type EventListenerItem<EventMap extends BaseEventMap, Event extends keyof EventMap> = {
once: boolean
listener: EventListener<EventMap, Event>
}
import React, { PureComponent, createRef } from 'react';
/**
* @class ExtendClickArea
* @argument {PureComponent<{ extend: number, center: boolean }>}
* @description 用来自动扩展按钮的点击区域
**/
export default class ExtendClickArea extends PureComponent {
/** @type {{ width: number, height: number }} */
state = { width: 0, height: 0 };
/**
* @fileoverview
* - Using the 'QRCode for Javascript library'
* - Fixed dataset of 'QRCode for Javascript library' for support full-spec.
* - this library has no dependencies.
*
* @author davidshimjs
* @see <a href="http://www.d-project.com/" target="_blank">http://www.d-project.com/</a>
* @see <a href="http://jeromeetienne.github.com/jquery-qrcode/" target="_blank">http://jeromeetienne.github.com/jquery-qrcode/</a>
*/
// ==UserScript==
// @name lark-doc-lock
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://bytedance.feishu.cn/*
// @require https://github.com/bramblex/MonkeyBox/raw/master/monkey-box.user.js
// ==/UserScript==
import React, { createContext, useContext, useEffect } from 'react';
import './App.css';
interface LogData {
[key: string]: number | string;
}
interface LogLayerData {
name?: string;
log: LogData;
}
const acorn = require("acorn");
const astring = require("astring");
const estraverse = require("estraverse");
function withCancel(func) {
const signalName = "__$isCancel__";
const shouldCancelName = "__$shouldCancel__";
function transform(node) {
return estraverse.replace(node, {