@3imed-jaberi/deepfreeze 中文文档教程

发布于 4年前 浏览 35 项目主页 更新于 3年前

@3imed-jaberi/deepfreeze

构建状态覆盖状态NPM 版本许可证代码大小

The modern and amiable deep freeze, works with Map and Set ????

Features

  • ????Inspired by many solutions in a modern way.
  • Recursively Object.freeze() for objects, functions and arrays.
  • Support for Map and Set.
  • Add .isDeepFrozen() method for each frozen object.
  • Support Pure Deep Freeze through deep clone.
  • Handle primitives types natively.

Installation

# npm
$ npm install @3imed-jaberi/deepfreeze
# yarn
$ yarn add @3imed-jaberi/deepfreeze

Usage

这是一个如何使用的实际示例。

"use strict";

const deepfreeze = require("@3imed-jaberi/deepfreeze");

const object = {
  someBoolean: true,
  someNumber: 10,
  someString: "hello!",
  someObject: { foo: "bar", someNestedObject: { nested: "inObject" } },
  someArray: [false, 20, "bye!", { nested: "inArray" }],
  someMap: new Map(["item1", "item2"]),
  someSet: new Set(["item1", "item2"]),
};

const frozenObject = deepfreeze(object);

Object.isFrozen(frozenObject); // true
Object.isFrozen(frozenObject.someBoolean); // true
Object.isFrozen(frozenObject.someNumber); // true
Object.isFrozen(frozenObject.someString); // true
Object.isFrozen(frozenObject.someObject); // true
Object.isFrozen(frozenObject.someObject.foo); // true
Object.isFrozen(frozenObject.someObject.someNestedObject); // true
Object.isFrozen(frozenObject.someObject.someNestedObject.nested); // true
Object.isFrozen(frozenObject.someArray); // true
frozenObject.someArray.forEach((value) => {
  Object.isFrozen(value); // true
});
frozenObject.someMap.clear(); // Error: Map is read-only.
frozenObject.someSet.clear(); // Error: Set is read-only.

API

您可以将一些参数传递给冻结方法;

  • object — (Object) object to deep freeze.
  • options.isProd — (Boolean) ignore freezing in production (for better performance) (default to false).
  • options.pureFreeze — (Boolean) use lodash.cloneDeep to create a copy and use it dealing the freezing process (default to false).

如果传递的对象由我们的方法处理,一个名为 isDeepFrozen 的方法将作为属性插入到对象中。

License


麻省理工学院 © Imed Jaberi

@3imed-jaberi/deepfreeze

Build StatusCoverage StatusNPM versionLicenseCode Size

The modern and amiable deep freeze, works with Map and Set ????

Features

  • ???????? Inspired by many solutions in a modern way.
  • ???? Recursively Object.freeze() for objects, functions and arrays.
  • ???? Support for Map and Set.
  • ???? Add .isDeepFrozen() method for each frozen object.
  • ???? Support Pure Deep Freeze through deep clone.
  • ???? Handle primitives types natively.

Installation

# npm
$ npm install @3imed-jaberi/deepfreeze
# yarn
$ yarn add @3imed-jaberi/deepfreeze

Usage

This is a practical example of how to use.

"use strict";

const deepfreeze = require("@3imed-jaberi/deepfreeze");

const object = {
  someBoolean: true,
  someNumber: 10,
  someString: "hello!",
  someObject: { foo: "bar", someNestedObject: { nested: "inObject" } },
  someArray: [false, 20, "bye!", { nested: "inArray" }],
  someMap: new Map(["item1", "item2"]),
  someSet: new Set(["item1", "item2"]),
};

const frozenObject = deepfreeze(object);

Object.isFrozen(frozenObject); // true
Object.isFrozen(frozenObject.someBoolean); // true
Object.isFrozen(frozenObject.someNumber); // true
Object.isFrozen(frozenObject.someString); // true
Object.isFrozen(frozenObject.someObject); // true
Object.isFrozen(frozenObject.someObject.foo); // true
Object.isFrozen(frozenObject.someObject.someNestedObject); // true
Object.isFrozen(frozenObject.someObject.someNestedObject.nested); // true
Object.isFrozen(frozenObject.someArray); // true
frozenObject.someArray.forEach((value) => {
  Object.isFrozen(value); // true
});
frozenObject.someMap.clear(); // Error: Map is read-only.
frozenObject.someSet.clear(); // Error: Set is read-only.

API

You can pass some arguments to the freeze method;

  • object — (Object) object to deep freeze.
  • options.isProd — (Boolean) ignore freezing in production (for better performance) (default to false).
  • options.pureFreeze — (Boolean) use lodash.cloneDeep to create a copy and use it dealing the freezing process (default to false).

If the passed object handled by our method, a method called isDeepFrozen will be inserted as property to the object.

License


MIT © Imed Jaberi

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文