npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@ahcui/lib-jsext

v0.1.4

Published

前端JS扩展库

Downloads

148

Readme

前端javascript扩展

组织:ahcui
lib-jsext 是对原生javascript基础对象的扩展与常用函数局的封装。

当前版本: 0.1.2

特性

  • 对String对象进行扩展,支持format,trim,ltrim,rtrim
  • 对Date对象进行扩展,支持format,addDays
  • 增加命名空间(namespace)的支持,getNameSpace,setNameSpace
  • 增加对cookie的访问库addCookie,getCookie,delCookie,clearCookie,allCookie,以及系统开发中需要用到的默认cookie键名
  • 增加对浏览器正常/全屏的切换,默认为正常模式,screenSwitch
  • 增加对uri的处理,getJsonFromUrlParams,setJsonToUrlParams,getParameter,setParameter
  • 增加对dom元素class属性的设置功能,addClass,removeClass

升级内容

  • 升级命名空间注册函数setNameSpace的处理过程,修复在ES6规范下,window使用proxy对象后注册命名空间不正常的问题

入门指南

支持性

本组件采用umd规范,提供了尽可能多的使用支持性,umd规范支持性请自行百度。

可在浏览器中src引入,对javascript基础类型的扩展会自动执行,无需单独调用函数,其他对象均可访问,入口点为:window.AhcuiLibJSExt;

//暂无测试代码

可在nodejs环境下使用require("lib-jsext")引入,可用对String与Date类型的扩展(自动扩展)以及Uri对象函数,其他类型不可见,

const Uri= require("lib-jsext").Uri;

Uri.setJsonToUrlParams({'aa':1,"bb":2},"http://localhost/")

可在ES6下(es2015)完整使用

import {Uri,Class,Cookie,NameSpace,Screen} from "lib-jsext";

安装

npm

# 使用 npm    
npm install lib-jsext --save

引入

对于基础类型如 String,Date无需声明式引入,即无需这样(引入后会导致编译出现重复声明的错误,):

import {Date,String} from "lib-jsext";

对于使用到Class,Cooike,NameSpace,Screen,Uri的需要如下引入

import {Uri,Class,Cookie,NameSpace,Screen} from "lib-jsext";

文档

Class

/***

  • @author:zerostyle
  • @email: [email protected]
  • @date:20191024
  • @version:V1.1.0
  • @description:
  • 该模块开放函数在需要的地方引入即可,禁止全局引入,因为全局引入后您仍需要在每个使用的模块中单独引入
  • 软件中如有对该模块方法调用时,请将该模块在main.js中引入,即可在程序运行时就完成了对基础类型的扩展,
  • 如对此机制不明白的请查阅javascript相关文档
  • 1:addClass 添加dom元素中的class样式
  • 2:removeClass 移除dom元素中的class样式
  • @example:
  • let dom=document.getElementById("app")||jQuery("#app")[0];
  • addClass("classA",dom)
  • removeClass("classA",dom)
  • @interface:
  • addClass(string,HTMLElement)
  • removeClass(string,HTMLElement)

*/

库函数
//  添加className
function addClass(className, dom) 

// 删除className
function removeClass(className, dom)

Cookie

/***

  • @author: zerostyle
  • @email: [email protected]
  • @date:20180529
  • @version:V1.1.0
  • @description:
  • 封装对cookie操作的类库,并定义统一的cookie定义
  • 1:addCookie 添加cookie,名称不重名的前提下添加的cookie不会影响原有cookie,请参考cookie特性
  • 2:getCookie 通过cookie名称获取cookie值
  • 3:delCookie 通过cookie名称删除cookie值
  • 4:clearCookie 清除Cookie
  • 5:allCookie 读取所有保存的cookie字符串
  • 以上函数请注意参数

*/

库函数
  /**
	 *添加cookie,名称不重名的前提下添加的cookie不会影响原有cookie,请参考cookie特性
	 * @param {string} name cookie名称
	 * @param {string} value cookie值
	 * @param {Int32Array} hours cookie过期时间(小时),为0时不设定过期时间
	 * @param {string} path cookie作用路径,可为空,默认不设置
	 * @param {string} domain cookie作用域,可为空,默认不设置
	 * @returns {Cookie} this 为支持链式写法,返回自身
	 */
  addCookie: function(name, value, hours, path, domain)
  /**
	 * 通过cookie名称获取cookie值
	 * @param {string} name 要获取cookie的名称
	 * @returns {string} 获取的cookie值
	 */
  getCookie: function(name, domain = "", path)
  /**
	 * 通过cookie名称删除cookie值
	 * @param {string} name cookie名称
	 * @returns {Cookie} this 为支持链式写法,返回自身
	 */
  delCookie: function(name, path, domain = "")
  /**
	 * 清除Cookie
	 */
  clearCookie: function(path, domain)
  /**
	 * 读取所有保存的cookie字符串
	 * @returns {string} 返回cookie字符串
	 */
  allCookie: function()
公开对象

/***
 * 定义cookie键名信息
 */
const CookieDef = {
  /**
	 * 用户名键名
	 */
  userName: "username",

  /**
	 * 密码键名
	 */
  passwd: "password",

  /**
	 * token授权
	 */
  token: "token",
  /**
	 * 默认有效时间
	 */
  hours: 12,
  /**
	 * 默认作用路径
	 */
  path: "/",

  /**
	 * 默认作用域
	 */
  domain: "",
};

NameSpace

/***

  • @author: zerostyle
  • @email: [email protected]
  • @date:20191024
  • @version:V1.1.0
  • @description:
  • 为了规范化前端开发,并解决越来越多的前端模块带来的自由组合、嵌入,多版本共存等问题,避免全局变量污染带来的可访问性问题,
  • @example:
  • 注册命名空间:
  • zerostyle.software.modules.user.rules=Object|Array|Function;
  • @interface:
  • const namespace="zerostyle.software.modules.user.rules";
  • setNameSpace(string,obj);
  • getNameSpace(string); */
库函数
/**
 * 使用一个字符串创建一个命名空间(如:"zerostyle.software.modules.user.rules"),并可指定该命名空间最后一层名称空间指向的对象(如:"zerostyle.software.modules.user.rules=obj)
 * @param {String} namespace 要设置的 命名空间 字符串,一般在系统内可以使用本文件声明中的常量namespace作为基础地址,以避免拼写错误或便于升级维护,如`${namespace}.你的其他名称空间`
 * @param {Object} obj 命名空间最后一层的空间名称指向的对象(指向的是obj对象,而非他的结构复制),该参数允许为空,若空则默认为{}对象,
 */
function setNameSpace(namespace, obj)
/**
* 根据一个命名空间字符串获取该命名空间的对象,如不存在则返回null,如果存在则返回到该空间的指针引用
* @param {String} namespace 要获取的命名空间字符串,一般在系统内可以使用本文件声明中的常量namespace作为基础地址,以避免拼写错误或便于升级维护,如`${namespace}.你的其他名称空间`
* @param {bool} create 如果该命名空间不存在的话是否创建
*/
function getNameSpace(namespace, create)

Screen

/***

  • @author: zerostyle
  • @email: [email protected]
  • @date:20191024
  • @version:V1.1.0
  • @description:
  • 该模块开放函数在需要的地方引入即可,禁止全局引入,因为全局引入后您仍需要在每个使用的模块中单独引入
  • 该模块为浏览器全屏模式与正常模式开关函数,内置状态机制,初始为正常模式,有如下功能:
  • 1:screenSwitch 根据当前状态(如全屏)切换为另一种状态(如正常)
  • @example:
  • @interface:
  • screenSwitch() */
function screenSwitch()

Uri

/***

  • @author: zerostyle
  • @email: [email protected]
  • @date:20191024
  • @version:V1.1.0
  • @description:
  • 该模块开放函数在需要的地方引入即可,禁止全局引入,因为全局引入后您仍需要在每个使用的模块中单独引入
  • 该模块处理string类型的url(非windox.location对象),有如下功能:
  • 1:getJsonFromUrlParams 将入参url的参数序列化为json,
  • 2:setJsonToUrlParams 将入参的json对象拼入入参的url之后
  • 3:getParameter 从入参的url中获取名称为入参name的参数值
  • 4:setParameter 将入参的url中设置名称为入参arg的参数值为入参arg_val,此函数一次只能设置一个参数
  • @example:
  • @interface:
  • getJsonFromUrlParams(string),
  • setJsonToUrlParams(json,string),
  • getParameter(string,string),
  • setParameter(string,string,string),
  • /

库函数

/**
* 从url中提取参数,并构造json对象
* @param {*} url
*/
function getJsonFromUrlParams(url)
/**
* 将json的对象作为参数放入url,返回url;如:http://localhost/index?a=1&b=2
* @param {*} jsonParams
* @param {*} url
*/
function setJsonToUrlParams(jsonParams, url)
/**
* 从url中获取指定的参数值
* @param {*} name
* @param {*} url
*/
function getParameter(name, url)
/**
* 向url中设置指定的参数名与参数值
* @param {*} arg 要设置的参数名
* @param {*} arg_val 要设置的参数值
* @param {*} url 指定的URL
*/
function setParameter(arg, arg_val, url)