{"id":28102276,"url":"https://github.com/serverless-devs/core","last_synced_at":"2025-11-07T06:02:59.258Z","repository":{"id":37144331,"uuid":"299179746","full_name":"Serverless-Devs/core","owner":"Serverless-Devs","description":":hammer: The core components related to Serverless Devs are used together with component.","archived":false,"fork":false,"pushed_at":"2025-04-22T06:11:06.000Z","size":5642,"stargazers_count":10,"open_issues_count":3,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-05T16:52:10.525Z","etag":null,"topics":["serverless","serverless-devs","serverless-devs-tool"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Serverless-Devs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-09-28T03:44:41.000Z","updated_at":"2023-03-03T17:20:34.000Z","dependencies_parsed_at":"2023-02-15T21:31:26.443Z","dependency_job_id":"1703d866-cd65-4b03-9d33-2c7c3915bed2","html_url":"https://github.com/Serverless-Devs/core","commit_stats":null,"previous_names":["serverless-devs/s-core"],"tags_count":244,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serverless-Devs%2Fcore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serverless-Devs%2Fcore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serverless-Devs%2Fcore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serverless-Devs%2Fcore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Serverless-Devs","download_url":"https://codeload.github.com/Serverless-Devs/core/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254015938,"owners_count":21999961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["serverless","serverless-devs","serverless-devs-tool"],"created_at":"2025-05-13T19:49:05.284Z","updated_at":"2025-11-07T06:02:54.209Z","avatar_url":"https://github.com/Serverless-Devs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=center\u003e \u003cimg src=\"https://images.devsapp.cn/devs-github/logo.jpg\" width=\"100%\"/\u003e \u003c/div\u003e\n\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@serverless-devs/s\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/@serverless-devs/core\" alt=\"npm version\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@serverless-devs/s\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/dy/@serverless-devs/core\" alt=\"npm download\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://nodejs.org/en/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/node-%3E%3D%2010.8.0-brightgreen\" alt=\"node.js version\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/Serverless-Devs/Serverless-Devs/blob/master/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/License-MIT-green\" alt=\"license\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nServerless Devs Core 是 Serverless Devs 的官方组件。由于该组件默认支持了包括[组件加载](./docs/common.md#loadComponent)、[日志输出](./docs/logger.md)、[组件参数转换](./docs/common.md#commandparse)、[状态上报](./docs/common.md#report)等在内的通用 Serverless Package 开发能力，所以，通过该组件可以帮助 Serverless Package 开发者快速实现 Serverless Devs 的组件开发。\n\n\n- [快速安装](#快速安装)\n- [使用方法](#使用方法)\n    - [decorator 使用方式](#decorator-使用方式)\n    - [类使用方式](#类使用方式)\n    - [效果展示](#效果展示)\n- [接口目录](#接口目录)\n- [项目贡献](#项目贡献)\n- [开源许可](#开源许可)\n- [交流社区](#交流社区)\n\n\n# 快速安装\n\n组件开发者需要先进行 Node.js(\u003e=10.8.0) 与 NPM 包管理工具的安装，然后通过`npm`指令即可完成`@serverless-devs/core`的安装，例如：\n\n```\nnpm i @serverless-devs/core -S\n```\n\n# 使用方法\n\nServerless Devs Core 提供了[decorator 使用方式](#decorator-使用方式)和[类使用方式](#类使用方式)等两种使用方法。其中[decorator 使用方式](#decorator-使用方式)是官方所推荐和鼓励的使用方法。\n\n以`logger`能力为例，decorator 使用方式的案例代码为：\n\n## decorator 使用方式\n\n```typescript\nconst { HLogger, ILogger } = require('@serverless-devs/core');\n\nclass LoggerDemo {\n  @HLogger('S-CORE') logger: ILogger;\n\n  getDefaultLog() {\n    this.logger.info('abc');\n  }\n}\n```\n\n## 类使用方式\n\n以`logger`能力为例，类使用方式的案例代码可以有两种方法。\n\n- 方法1：\n    ```typescript\n    const { Logger } = require('@serverless-devs/core');\n    function loggerDemo() {\n      const logger = new Logger('S-CORE');\n      logger.info('abc');\n    }\n    ```\n- 方法2：\n    ```typescript\n    const { Logger } = require('@serverless-devs/core');\n    \n    function loggerDemo() {\n      Logger.info('S-CORE', 'abc');\n    }\n    ```\n\n\n## 效果展示\n\n无论是上面的哪种使用方法，最终的效果如下：\n\n![Demo](https://example-static.oss-cn-beijing.aliyuncs.com/github-static/render1635502865479.gif)\n\n\n# 接口目录\n\n- [common](./docs/common.md): 通用接口\n    - [request](./docs/common.md#request)/[downloadRequest](./docs/common.md#downloadrequest): HTTP 请求\n    - [report](./docs/common.md#report) : 组件上报/错误上报\n    - [loadComponent](./docs/common.md#loadComponent) : 组件加载\n    - [loadApplication](./docs/common.md#loadApplication) : 应用加载\n    - [spinner](./docs/common.md#spinner) : 状态展示\n    - [zip](./docs/common.md#zip)/[unzip](./docs/common.md#unzip) : 打包/解包\n    - [help](./docs/common.md#help): 显示文档帮助信息\n    - [commadParse](./docs/common.md#commandparse) : 命令行参数解析工具\n    - [getCredential](./docs/common.md#getCredential)/[setCredential](./docs/common.md#setCredential) : 获取/创建密钥信息\n    - [decryptCredential](./docs/common.md#decryptCredential) : 用于解密密钥信息\n    - [getState](./docs/common.md#getState)/[setState](./docs/common.md#setState) : 获取/设置状态信息\n    - [validateProps](./docs/common.md#validateProps) : 检验 `inputs` 的 `Properties` 属性格式\n    - [modifyProps](./docs/common.md#modifyProps) : 修改 `s.yml` 文件的 `Properties` 属性\n    - [installDependency](./docs/common.md#installDependency) : 安装依赖\n    - [getYamlContent](./docs/common.md#getYamlContent) : 用于获取文件内容\n    - [....](./docs/common.md) : 更多内容可以参考[common通用接口文档](./docs/common.md)\n- [logger](./docs/logger.md): 日志相关接口\n    - [log](./docs/logger.md#log) : 打印到终端(具备显示不同颜色的能力)\n    - [debug/info/warn/error](./docs/logger.md#levels) : 打印到本地文件以及终端中\n\n\n# 项目贡献\n\n我们非常希望您可以和我们一起贡献这个项目。贡献内容包括不限于代码的维护、应用/组件的贡献、文档的完善等，更多详情可以参考[ 🏆 贡献指南](./CONTRIBUTING.md)。\n\n# 开源许可\n\nServerless Devs 遵循 [MIT License](./LICENSE) 开源许可。\n\n位于`node_modules`和外部目录中的所有文件都是本软件使用的外部维护库，具有自己的许可证；我们建议您阅读它们，因为它们的条款可能与[MIT License](./LICENSE)的条款不同。\n\n# 交流社区\n\n您如果有关于错误的反馈或者未来的期待，您可以在 [Issues](https://github.com/Serverless-Devs/core/issues) 中进行反馈和交流。如果您想要加入我们的讨论组或者了解 Serverless Devs Core 的最新动态，您可以通过以下渠道进行：\n\n\u003cp align=\"center\"\u003e\n\n| \u003cimg src=\"https://serverless-article-picture.oss-cn-hangzhou.aliyuncs.com/1635407298906_20211028074819117230.png\" width=\"200px\" \u003e | \u003cimg src=\"https://serverless-article-picture.oss-cn-hangzhou.aliyuncs.com/1635407044136_20211028074404326599.png\" width=\"200px\" \u003e | \u003cimg src=\"https://serverless-article-picture.oss-cn-hangzhou.aliyuncs.com/1635407252200_20211028074732517533.png\" width=\"200px\" \u003e |\n|--- | --- | --- |\n| \u003ccenter\u003e关注微信公众号：`serverless`\u003c/center\u003e | \u003ccenter\u003e联系微信小助手：`xiaojiangwh`\u003c/center\u003e | \u003ccenter\u003e加入钉钉交流群：`33947367`\u003c/center\u003e | \n\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserverless-devs%2Fcore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fserverless-devs%2Fcore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserverless-devs%2Fcore/lists"}